WebSphere Enterprise Service Bus for z/OS バージョン 6.2.0 オペレーティング・システム: z/OS


リポジトリーからのリレーションシップ・インスタンス・データの除去

リレーションシップを使用するアプリケーションは、リポジトリー内のリレーションシップ・スキーマと データを関連付けています。リポジトリーは、リレーションシップ・インスタンス・データを保持するように構成されたデータベースです。 このようなアプリケーションを実動サーバーからアンインストールしても、サーバーは、リレーションシップ・スキーマとデータをリポジトリーから除去しません。 これらを除去するには、既存のリレーションシップ・スキーマを手動で除去する必要があります。

始める前に

リレーションシップ・スキーマを使用するアプリケーションが、そのスキーマにアクセスするすべてのサーバーからアンインストールされていることを確認します。

このタスクについて

リレーションシップを含むアプリケーションをインストールすると、サーバーは、テーブル、索引、シーケンス、およびストアード・プロシージャーを含む、対応するデータベース・スキーマ・オブジェクトを作成します。 実行時、このテーブルには、リレーションシップ・インスタンス・データが設定されます。リレーションシップを含むアプリケーションをアンインストールする場合、テーブルおよびインスタンス・データは、データベースから除去されません。 この設計は、リレーションシップまたはロール定義の変更後にアプリケーションの再インストールを試みる場合に問題を起こすことがあります。
注: WebSphere® Integration Developer の Unit Test Environment (UTE) テスト・サーバーを使用する場合、アプリケーション・プロジェクトを除去すると、リレーションシップ・スキーマとデータがリポジトリーから除去されます。

同じリレーションシップを持つアプリケーションを再インストールする場合、古いスキーマは再利用されます。 ただし、リレーションシップまたはロール定義を変更して、既存のスキーマと互換性がなくなるようにした場合、リレーションシップ・サービスは、例外を throw して、リレーションシップのインストールを終了します。 ログには、以下の例外とメッセージが示されます。

RelationshipServiceException("table <tablename> already exists, but the table schema is different from current role definition")

この問題を解決するには、リポジトリーのデータベース・プラットフォームが提供するツールを使用して、既存のリレーションシップ・スキーマ成果物を手動で除去し、アプリケーションを再インストールします。

既存のリレーションシップ・スキーマをリポジトリーから除去するには、以下のステップを実行します。

手順
  1. データベースのロケーションを探します。 データベースのロケーションは、データベース・プラットフォームによって異なります。
    オプション 説明
    データベース・プラットフォーム ロケーション
    Derby WASHOME¥derby¥databases¥RepositoryDB
    その他のデータベース ロケーションは、サーバーのインストールおよびプロファイル作成時に構成されます。例えば、サーバーを自動的に構成し、デフォルト・データベース名を選択した場合、データベースの名前は WPRCSDB となります。

    DB2® for i5/OS® の場合、参照先コンテナーは、データベースではなくコレクションです。これは、インストールおよびプロファイル作成中に構成されたデータベース名ではなく、コレクション名です。つまり、デフォルトの WPRCSDB という名前のデータベースではなく、コレクションです。

  2. リレーションシップを構成するデータベース成果物を削除します。 指定のリレーションシップのデータベース・オブジェクトをすべて削除するには、データベース・プラットフォームのツールを使用して、以下のステップを実行します。
    1. 以下のステップでデータベースからデータを除去する前に、データベースのバックアップを作成します。
      注: DB2 for i5/OS の場合、データを除去する前にコレクションのバックアップを作成してください。
    2. リレーションシップ・テーブルを検索します。 リレーションシップのインストール時に、以下のテーブルが作成されます。
      テーブル フォーマット
      リレーションシップ・プロパティー用に 1 つのテーブル _<relname>_P_uniqueidentifier
      各リレーションシップのインスタンス ID の生成用に 1 つのテーブル (Derby) _<relname>_S_uniqueidentifier
      アプリケーション固有の各ロールのロール・プロパティー用に 1 つのテーブル _<relname>_<rolename>_P_uniqueidentifier
      アプリケーション固有のロールごとに 1 つのテーブル (静的リレーションシップの場合は、汎用ロール用にも 1 つのテーブルが作成されます) _<relname>_<rolename>_RT_uniqueidentifier
      制約事項: リレーションシップ名は、先頭の 4 文字のみが使用されます。 複数のリレーションシップ用のテーブルをデータベースが保持している場合は、リレーションシップ名を先頭の 4 文字以内で区別する必要があります。
    3. ストアード・プロシージャーを検索します。 ストアード・プロシージャー・オブジェクトの形式は以下のとおりです。

      _<relname>_RS_uniqueidentifier または _<relname>_<rolename>_RS
      _uniqueidentifier

    4. シーケンスを検索します。 シーケンス・オブジェクトの形式は、以下のとおりです。

      _<relname>_S_uniqueidentifier

      制約事項: Derby では、シーケンスはサポートされません。
    5. データベース・プラットフォームのツールを使用して、以下を削除します。
      1. テーブル
      2. ストアード・プロシージャー
      3. シーケンス (Derby を除く)

タスクの結果

リレーションシップ・インスタンス・データが、データベース・リポジトリーから除去されます。

次のタスク

以上で、アプリケーションを再インストールできます。

task タスク・トピック

ご利用条件 | フィードバック


タイムスタンプ・アイコン 最終更新: 2010/07/05


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.zseries.doc/doc/tadm_relmgr_remove_relinstdata.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています (http://www.eclipse.org)。