Cloud Software Group, Inc. EBX®
TIBCO EBX® ドキュメント

EBX® 5.9 から EBX® 6 への移行ガイド

はじめに

この章では、EBX® 5.9 から EBX® 6 に移行するための主な情報を提供します。サポートされる環境の変更や下位互換性の問題など、追加の詳細については、EBX® 6 リリースノートのバージョンアップグレードセクションに記載されています。

以下も参照してください。

ハードウェア要件

メモリ要件

メモリの全体量は以前のバージョンと同じままでかまいませんが、アプリケーションサーバーとオペレーティングシステムの間で異なる方法でディスパッチする必要があります。詳細については、メモリ管理セクションを参照してください。

ディスク容量の要件

この新しいバージョンは、メモリからインデックスをオフロードして、永続的な方法で格納します。追加のディスク容量が必要です。詳細については、ディスクセクションを参照してください。

その他のハードウェア要件

パフォーマンスとチューニング > 環境の他のセクションを注意深く読んでください。

カスタム Java コードのパフォーマンス

新しいスケーラブルなアーキテクチャは、既存のカスタム Java コードのパフォーマンスに影響を与えます。EBX® 5 で動作していた一部のシナリオは、このバージョンでは同様に機能しない可能性があり、お客様の対応が必要になる場合があります。これは、すべてのデータをメモリにキャッシュでき、ガベージコレクターがスムーズに機能する中規模のリポジトリに特に当てはまります。

主キーによる繰り返しルックアップ

カスタム EBX® インメモリインデックス内のキャッシュにデータを完全に含めることができる小さなテーブルを考えてみましょう。ランダムなテーブルルックアップを使用してレコードに繰り返しアクセスする方が安価でした (ただし、これは一般的にデータベースと情報検索のアクセスパターンとして推奨されていません)。この新しいバージョンでは、新しい SQL 機能を利用して、これらのアクセスを書き直す必要があります。たとえば、「ネストされたループ」結合を実行する Java コードの場合 (テーブル A の RequestResult を繰り返し、テーブル B の osd:tableRef を検索)、このバージョンでは、SQL 結合によるクエリを使用することで、より適切に処理されるようになります。

類似リクエストの繰り返し作成

EBX® には、特にクエリリクエストの送信済みインスタンスの最適化に役立つ ApacheCalcite フレームワークが組み込まれています。ただし、クエリの最適化にはそれ自体にコストがかかります。このオーバーヘッドは、クエリの実行に比べて一般的に低く (そして十分に回収されます)、場合によっては、特にループが 1 つのパラメーターのみが異なる多数のクエリを生成した場合に加算される可能性があります。その場合は、パラメーター化されたリクエスト (Request.setXPathParameterを参照) またはパラメーター化されたクエリ (Query.setParameterを参照) を使用します。

プログラムによるアクセスルール

プログラムによるアクセスルールは、Java インターフェイス AccessRule の実装に関係します。クエリの実行時に、テーブルにこのようなルールを設定することは、レコードごとにメソッド getPermission を実行することを意味します。このような実行は、インデックスに対して最適化するという目的を無効にします。

可能であれば、これらのプログラムによるアクセス ルールを新しいスクリプト化されたレコード アクセス権ルールに置き換えます。

プログラムラベル

プログラムラベルは、Java インターフェイス TableRefDisplayUILabelRenderer、および ConstraintEnumeration の実装に関係します。クエリの実行時に、外部キーフィールドにこのようなルールを設定することは、レコードごとにメソッド displayOccurrence を実行することを意味します。このような実行は、インデックスに対して最適化するという目的を無効にします。可能な場合は、パターン文字列を使用してください。

プログラムフィルター

プログラムによるフィルターは、Java インターフェイス AdaptationFilter の実装に関連しています。クエリの実行時に、このフィルターを使用すると、レコードごとにメソッド accept が実行されます。このような実行は、インデックスに対する最適化の目的を無効にします。可能であれば、プログラムによるフィルターを新しい SQL クエリに置き換えます。

依存関係が不明な制約

大規模なデータセットへの依存関係が不明な制約は、検証リクエストごとにチェックされるため、避けてください。詳細については、データ検証を参照してください。

不要なインデックスの更新

トランザクション (Procedure および TableTrigger の Java 実装) のパフォーマンスを改善するには、不要なインデックスの更新を回避する必要があります。詳細については、不要なインデックスの更新を参照してください。

継承されたフィールド

検索の制限事項で説明されているように、継承されたフィールドは新しいインデックスの最適化の恩恵を受けることができません。可能な限り、これらのフィールドをリンクされたフィールドに変換することをお勧めします。

EBX® 5 リポジトリのアップグレード

このリリースでは、リレーショナルデータベースの内部永続性の形式と構造が再設計され、大量のデータ、および多数のデータスペースとスナップショットをサポートできるようになりました。リポジトリの移行はサーバーの起動時に自動的に行われますが、使用するデータモデルを事前にクリーンアップする必要があります。

EBX® リポジトリをアップグレードするには、以下の表に詳述されている手順を実行します。

注意

リポジトリの EBX® 6.x への移行は最終的なものです。リポジトリがバージョン 6 で開始されると、バージョン 5.9 で開始することは禁止されます。これは、移行する前に 5.9 リポジトリのバックアップを作成する必要があることを意味します。

注意

サポートされているケースは、5.9.x リポジトリからの移行のみです。リポジトリが古いバージョンの場合は、最初に 5.9.x EBX® を展開してリポジトリで実行し、次の手順を実行できるようにする必要があります。

ステップ 1 - サーバーのシャットダウン

EBX® 5.9 アプリケーションサーバーインスタンスをシャットダウンします。

ステップ 2 – リポジトリのバックアップ

EBX® 5.9 リポジトリ、つまり現在のリポジトリプレフィックス (ebx.persistence.table.prefix) で始まる名前のリレーショナルデータベースオブジェクトをバックアップします。

次の手順を容易にするために、EBX® ログをバックアップして削除するか、別のフォルダーに移動します。

ステップ 3 – サーバーの再起動

EBX® 5.9 アプリケーションサーバーインスタンスを再起動します。

ステップ 4 – データスペースとワークフローのクリーンアップ

閉じたデータスペースは移行されません (つまり、削除されます)。このようなデータスペースを保持する場合は、移行する前に再度開く必要があります。それらを保持するつもりがない場合は、それらを削除してパージ (削除) することをお勧めします。

移行の期間を短縮するには、完了したワークフローをすべて削除し、ワークフロー履歴をクリーンアップすることを検討してください。

ステップ 5 – データモデルのクリーンアップ

自動移行では、リポジトリデータセットで使用されるすべてのデータモデルがエラーなしでコンパイルされる必要があります。この厳格なポリシーは、データの意図しない損失を防ぎ、サーバーの起動時に一貫したリポジトリ状態に到達するために採用されています。

このステップの目標は、リポジトリ内の少なくとも 1 つのデータセットで使用されるすべてのデータモデルにエラーがないことを確認することです。

これを確実に行うには、最初にデータモデルのコンパイルレポートを読む必要があります。

  1. データモデルのコンパイルレポートは、サーバーの起動から次の行まで、「カーネル」ログに表示されます。

    ******** EBX(R) started and initialized. ********

  2. ログのこの部分では、データモデルのコンパイルレポートは次のように始まります。

    ****** Schema

  3. エラーメッセージは次で始まります。

    error [

注意:データモデルのコンパイルレポートは、[管理] > [テクニカル構成] > [モジュールとデータモデル] ページへの Web アクセスからも入手できます。各レポートは個別に展開する必要があります。

データモデルにエラーがある場合は、修正する必要があります。または、これらのデータセットが使用されなくなった場合、エラーのあるデータモデルに基づいてデータセットを削除できます (ただし、データモデルに基づいてデータセットを定義するすべてのデータスペースのデータセットを削除する必要があることに注意してください。別の方法として、カスタムプロパティを使用することもできます。EBX® 6 に展開する場合、スキーマまたはスキーマのリストに基づいてすべてのデータセットをグローバルに除外します。ステップ 11 を参照)。

すべてのクリーンアップが完了したことを確認したら、ログを削除し、ステップ 3 (アプリケーションサーバーを再起動) に戻って、エラーのあるデータモデルがないことを確認します。

注意:DAMA アドオンが使用されている場合:DAMA 1.8.x で非推奨としてマークされた API は、DAMA 2.0.0 では使用できなくなりました。データモデルがこれらの非推奨の API を宣言している場合は、コンパイルエラーを防ぐために、最新の API を使用するようにデータモデルを更新してください。

非推奨の API とその代替品のリストについては、Digital Asset Manager のドキュメントを参照してください。

ステップ 6 – アドオンが使用されている場合のクリーンアップ

EBX® 5.9 環境に展開されたアドオンが含まれている場合は、追加の手動介入が必要です。詳細については、次のセクションを参照してください。

ステップ 7 – サーバーのシャットダウン

EBX® 5.9 アプリケーションサーバーインスタンスをシャットダウンします。

ステップ 8 – リポジトリのバックアップ (「クリーンな」リポジトリ)

ステップ 2 の説明に従って、EBX® 5.9 リポジトリのバックアップを繰り返します。

ステップ 9 – EBX® 6 に対する Java コンパイル

一部のクラスが EBX® 6 のインターフェイスに変換されているため、すべてのカスタム Java コードを新しいバージョンに対して再コンパイルする必要があります (それ以外の場合、実行時に java.lang.IncompatibleClassChangeError エラーが発生します)。

この手順では、リリースノートに記載されている下位互換性の問題とアドオンからの問題を評価する機会を提供します。

ステップ 10 – コードを使用した EBX® 6 の展開

アプリケーションサーバーに展開されているすべての ebx*.warebx.jar ファイルを、EBX® 6 で提供される新しいアーティファクトに置き換えます。詳細については、Java EE 展開を参照してください。

EBX® アドオンを使用する場合は、すべての ebx-addon-*.war ファイルと ebx-addons.jar ファイルを EBX® 6 に準拠した新しいバンドルで提供されるファイルに置き換えます。

ステップ 11 – EBX® 6 の起動と自動移行

EBX® 6 で展開されたアプリケーションサーバーインスタンスを再起動します。

少なくともデータモデルにまだエラーがある場合、自動移行は自動的に停止され、ログにはこれらのエラーに関係するデータセットの詳細が示されます。修正を容易にするために、ログには、プロパティ ebx.migration.5to6.excludeAllDatasetsOnDataModels に失敗したスキーマの場所を予期された形式でフィードする提案も提供されます。次のステップとして、2 つのオプションがあります。

  • これらのデータセットを移行から除外することに同意する場合は、このプロパティを ebx.properties にコピーします。

  • この提案を受け入れない場合は、ステップ 3 に戻る必要があります。

注意

どちらの場合も、ディレクトリ ${ebx.repository.directory}/indexes-(...)/ を削除して、次回の移行に支障がないようにしてください。

エラーのあるデータモデルがない場合、データベーススキーマとデータは自動的に移行されます。データの量によっては、このプロセスに時間がかかる場合があります。

アドオンを使用した EBX® 5.9 リポジトリのアップグレード

このセクションでは、上記のステップ 6 について詳しく説明します。この手順により、廃止されたアドオンに依存するカスタムデータモデルがなくなります。

注意

次のアドオンは、EBX® 6 ではサポートされなくなりました。

  • TIBCO EBX Match and Cleanse (コードネーム daqa):Match and Merge に名前が変更され、新しいアドオン (コードネーム mame) に置き換えられました。

  • TIBCO EBX Rules Portfolio Add-on (コードネーム rpfl):新しいコアスクリプトに徐々に置き換えられています。

  • TIBCO EBX Information Governance Add-on (コードネーム igov)。

  • TIBCO EBX Add-on for Oracle Hyperion EPM (コードネーム hmfh)。

  • TIBCO EBX Graph View Add-on (コードネーム gram)。

  • TIBCO EBX Activity Monitoring Add-on (コードネーム mtrn)。

注意

自動移行の最後のステップでは、上記の廃止されたアドオンによって作成されたデータセットが削除されます。また、このデータスペースがアドオンによって作成された場合は、データスペースも削除されます (通常、これらのデータスペースには、ユーザーインターフェイスの [管理] エリアからアクセスします)。

データモデルのインクルード

このサブステップにより、すべてのカスタムデータモデルに廃止されたアドオンデータモデルが含まれなくなります。

この問題は daqa アドオンでのみ発生するため、このセクションの例として、これを使用します。

データモデルのインクルードを探すには、データモデルのコンパイルレポートを読む必要があります。

  1. データモデルのコンパイルレポートは、サーバーの起動から次の行まで、すべて「カーネル」ログに表示されます。

    ******** EBX(R) started and initialized. ********

  2. ログのこの部分では、データモデルのコンパイルレポートは次のように始まります。

    ****** Schema

  3. daqa に属するデータモデルを含めると、レポートに次のテキストが表示されます。

    Include: Module: ebx-addon-daqa

注意:データモデルのコンパイルレポートは、[管理] > [テクニカル構成] > [モジュールとデータモデル] ページへの Web アクセスからも入手できます。各レポートは個別に展開する必要があります。

データモデルがモジュール ebx-addon-daqa を使用している場合は、次の手順を実行する必要があります。

  1. モジュール ebx-addon-daqa (/WEB_INF/ebx/schema/ebx-addon-daqa-types.xsd) のデータモデルを指定する include コマンドを削除します。

  2. 定義するデータ型 (主に DaqaMetaData) に基づいてエレメントを削除します。

  3. 削除されたエレメント (インデックスなど) を使用した他のデータモデル機能を変更します。

アドオンによって変更されるデータモデル

データモデルは、schema/annotation/appinfo の下にプロパティ osd:addon を定義している場合、特定のアドオンによって強化できます。結果として、カスタムデータモデルがサポートされなくなったアドオンを参照している場合は、このプロパティを削除する必要があります (これが行われない場合、データモデルのコンパイルレポートに警告が追加されます)。

アドオン Java クラスを使用したデータモデル

カスタムデータモデルが廃止されたアドオンによって提供される Java 拡張機能を使用する場合、この拡張機能を削除する必要があります。網羅的ではないリストは次のとおりです。