マルチユーザー開発のトラブルシューティング
この項では、いくつかの一般的な問題とその解決法方について説明します。
マスターOracle BIリポジトリで保持される孤立したロック
ユーザーが変更をネットワークに公開するコマンドを発行することでロックを設定した場合、それは公開が完了するまでクリアされません。そのユーザーがそれを忘れて2週間の休暇をとってしまった場合、MUD管理者はそのロックを解除できます。
ロックは、マスター・ディレクトリの非表示のシステム・ファイルに格納されます。ロック・ファイルが見つからない場合は、Windowsのエクスプローラで「ツール」を選択し、「フォルダ オプション」を選択します。「表示」メニューで、「すべてのファイルとフォルダを表示する」オプションが選択されていることを確認します。
ロック・ファイルは、マスターOracle BIリポジトリと同じ名前を持ち、.lck
拡張子が付きます。ロック・ファイルを削除すると、リポジトリのロックが解除されます。
この図は、リポジトリ・ロック・ファイルを示しています。
他のユーザーで削除されたオブジェクト
必要なオブジェクトを他のMUD開発者が削除した場合、次のオプションを選択できます。
-
以前のバージョンにロールバックして、当初からのすべての変更を再適用します。一般的には、ロールバックの最も簡単な方法は、履歴ログで履歴をたどることです。変更をロールバックするには、「ファイル」、「マルチユーザー」を選択し、次に「履歴」を選択します。エントリを選択し、「アクション」を使用して、「表示」を選択します。
マルチユーザー開発の履歴の表示と削除を参照してください。
-
削除されたオブジェクトを再作成し、将来のマージでそれが同じオブジェクトとして処理されるように等化します。
チェックアウト後にプロジェクトがない場合に必要な物理表および結合
物理オブジェクトは明示的にプロジェクトに属しているわけではありません。物理オブジェクトはプロジェクトの論理ファクト表にマップされ、それがチェックアウト時に抽出されているのです。
ローカルの抽出時に必要な物理オブジェクトを取得するには、必要な物理オブジェクトへのマッピングを持つ追加プロジェクトをチェックアウトします。そのようなプロジェクトがない場合、リポジトリ全体を編集してプロジェクトで論理ファクト表へのマッピングを作成する必要があります。MUD管理者はオフラインでリポジトリの変更を行うことができます。次のチェックアウトでその物理オブジェクトを含める必要があります。
前回のセッションで追加されたオブジェクトがチェックアウトされたリポジトリにない
最近追加されたオブジェクトがチェックアウトされたリポジトリにない場合、マージおよび公開する前にオブジェクトをプロジェクトに追加することを忘れた可能性があります。プロジェクト内のオブジェクトまたはプロジェクトから推測されたオブジェクト(ディメンションや物理オブジェクトなど)のみが、抽出されるリポジトリに含まれます。
この問題を解決するには、そのオブジェクトをマスター・リポジトリのプロジェクトに追加するようにMUD管理者に依頼します。
#1の追加によるオブジェクトの名前の変更
2つのオブジェクトが同じ完全修飾名で異なる内部アップグレードIDを使用してマージされている場合に、このような状況が発生します。このような状況でマージ・ロジックは、これらのオブジェクトは意味的に異なるオブジェクトと判断し、オブジェクトの名前を変更して一意性を保持します。
この問題を解決するには、equalizerpds
ユーティリティを実行します。これは、2つのリポジトリで同じ完全修飾名を持つオブジェクトが同じアップグレードIDを持つようにアップグレードIDを再割当てするユーティリティです。その後、再度マージを試行してください。2つのオブジェクトは、名前が変更されることなく、マージされます。
オブジェクトの等化を参照してください。
前のバージョンへのロールバック
マルチユーザー開発環境では、適切なチェックポイントでOracle BIリポジトリのバックアップ・コピーを保存します。破損が発生する可能性のある操作が実行されるたびに、新しいバックアップがマスター・ディレクトリに保存されます。これはOracle BIリポジトリの名前を持ち、拡張子は3桁のインクリメント整数です。個々の開発者も、開発中はいつでもOracle BIリポジトリ・ファイルのコピーを作成できます。
開発者のサンドボックスでは、チェックアウトされたプロジェクトの元のバージョンはoriginalrpd_name.rpd
という名前で保存されています。開発者が変更を廃棄すると、自動的にこのバージョンが使用されます。
また、次のステップを実行して、古いバージョンを参照したりロールバックすることもできます。
-
Oracle BIサーバーを開きます(リポジトリは開きません)。
-
「ファイル」メニューから、「マルチユーザー」、「履歴」を選択します。
-
目的のバージョンを選択してから、「アクション」→「表示」→「リポジトリ」を選択します。
-
「ファイル」→「名前を付けてコピー」を選択して、そのバージョンを新しい名前に保存します。
-
古いバージョンを使用して最新のバージョンを置き換えるか、マスター・リポジトリを古いバージョンで置き換えます。
マスターMUDリポジトリの手動更新
マルチユーザー開発(MUD)環境におけるOracle BIリポジトリの開発の過程で、マスター・リポジトリを手動で変更する必要がある可能性があります。MUDプロセスは高度に制御されており、MUDの履歴ログ・ファイル(.mhl
)にはアカウンティング情報が格納されているため、手動のステップを実行する際には注意が必要です。マスター・リポジトリに対して手動で作業するには、MUDディレクトリとは別のディレクトリにあるリポジトリで作業する必要があります。その後、マスターOracle BIリポジトリと、MUDディレクトリにある最新バージョンのリポジトリの両方を置き換える必要があります。
たとえば、master.rpdという名前のリポジトリを手動で更新するには、次のステップを実行します。
-
MUDディレクトリからマスター・リポジトリ(
master.rpd
)をローカル・ディレクトリにコピーします。 -
Oracle BIサーバーを使用して、マスター・リポジトリ(master.rpd)のローカル・コピーに必要な変更を加えます。
-
手動編集が完了したら、master.rpdをMUDディレクトリのmaster.rpdとしてコピーします。例:
copy c:\local\master.rpd c:\mud\master.rpd
-
MUDディレクトリで、バージョン番号(たとえば、
master.7011
)を持つ最新のリポジトリを特定します。 -
master.rpd
をMUDディレクトリにコピーし、リポジトリの最新バージョンを上書きします。例:copy c:\local\master.rpd c:\mud\master.7011
最新バージョンの置換
この例では、古いバージョンをコピーして最新バージョンを置き換える方法を説明します。現在はバージョン1000であり、バージョン900にロールバックするとします。この状況では、repository.900、repository.1000およびrepository.rpd (現在のバージョン)の3つのファイルがあります。ロールバックを実行するには、repository.900のコピーを作成し、その名前をrepository.1001に変更します。これにより、バージョン履歴にrepository.1000を保持できます。その後、repository.900をrepository.rpdにコピーします。