EJBDEPLOY リレーションシップ – トラブルシューティングのヒント

この情報を使用して、EJBDEPLOY 問題のトラブルシューティングを実行してください。

[z/OS]

DB2 for z/OS バージョン 7.x

EJBDeploy によって DB2 for z/OS バージョン 7.x 内のデータの関係が作成されるときに、 問題が発生する可能性があります。 EJBDeploy は、相互に関連する EJB の 2 つの 1 次キーの複合を持つテーブルを作成します。 複合キーが 254 文字より長い場合、 DB2 for z/OS V7.x がこの関係を受け入れず、次のエラーが発生する可能性があります。
DSNT408I SQLCODE = -613, ERROR:  THE PRIMARY KEY OR A UNIQUE CONSTRAINT 
IS TOO LONG OR HAS TOO MANY COLUMNS                                         
DSNT418I SQLSTATE   = 54008 SQLSTATE RETURN CODE
この問題は、2 つの関連する Bean 用に作成された 1 次キーが、 ストリングになっている 1 次キーを持つ場合に発生する可能性があります。 この結果、長さの合計が 500 になる 2 つの可変長 (250) 1 次キーからなる複合が作成されます。 これは、DB2 for z/OS バージョン 7.x での最大値である 254 を超えます。
このような問題が起こらないように、 トップダウン・マッピング利用する際に考慮すべきことは、以下のとおりです。
  • トップダウン・マッピングはガイドラインであり、DBA で検討する必要があります。
  • EJBDeploy によってトップダウンで作成されるスキーマは、 テスト用にのみ設計されたものであり、実際のスキーマのガイドラインが必要です。 meet-in-the-middle マッピングを使用した場合には、 このような問題は起こりません。
  • 複合キー制約の問題は、キーの最大長が 2K である DB2 V8 を使用した場合には起こりません。

EJBDEPLOY_JVM_ARGS:

EJBDEPLOY_JVM_ARGS プロパティーを設定して、 EJB (ejbdeploy.sh) をデプロイするコードに渡される Java 仮想マシン (JVM) オプションをオーバーライドします。 このプロパティーを、以下のロケーションのいずれかに設定します。 deploymentmanager/bin/setupCmdLine.sh または appServerHome/bin/setupCmdLine.sh

例えば、以下は、修飾されていない SQL を生成するように指定します。

export EJBDEPLOY_JVM_ARGS="-DEJBDEPLOY_GENERATE_UNQUALIFIED_SQL=true" 

1 次キー用に定義されたコンバーターが、その外部キー値で起動されない

1 次キー・フィールドのデータベース列へのマッピングでは、キー値を変換するのにコンバーターが使用される場合があります。 コンテナー管理パーシスタンス (CMP) Bean がその 1 次キーをマップするのにコンバーターを使用し、その Bean が、相手側の Bean が外部キーを保持しているという関係を持つ場合、その外部キーのマッピングではコンバーターが使用されません。

1 次キー用に定義されたコンバーターが、その外部キー値で起動されないことを示す、以下のエラーが発生する可能性があります。 ejbDeploy コマンドの実行中に、以下のメッセージを受け取ります。
Java datatype1 から Database datatype2 までに型マッピングが定義されていません。
ランタイム中に、アプリケーションが関係の相手側に CMP Bean を検出しませんでした。

この制限を回避するためには、独自の外部キーをデータベース表に作成し、関係の相手側のエンタープライズ Bean 上の 1 次キー用に定義されたものと同じコンバーターを使用するマッピングを作成します。


トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_ejbdeploy390
ファイル名:rtrb_ejbdeploy390.html