Linux プラットフォーム上で WebSphere
Application Server から DB2 データベースにアクセスする際に、ループバックの設定が必要になる場合があります。
Linux システムにはセマフォーの問題があり、以下の構成のいずれかでご使用の DB2 データベースへの JDBC アクセスが妨げられる可能性があります。
- DB2 Universal JDBC タイプ 2 ドライバーを使用したローカル DB2 データベースへの接続
- DB2 Universal JDBC タイプ 2 ドライバーを使用した、WebSphere
Application Server と同じマシン上にインストールされた DB2 Connect を介しての DB2 for z/OS へのアクセス。この問題は、DB2 Connect によって、ローカル・クライアントがエージェント内での実行を制限されている場合にのみ発生します。(つまり、DB2_IN_APP_PROCESS 設定がデフォルト値ではない場合か、設定が「Yes」の場合に発生します。この値を「No」に設定して問題を修正し、次の手順を実行しないようにしてください。)
この問題が発生すると、JVM ログに DB2 不整合接続例外
SQL1224 が頻繁に表示されます。ただし、SQL 例外コードにはさまざまな種類があるため、不整合接続が発生した場合は DB2 トレース・ログを確認してください。次のエラー・データが表示される場合は、Linux のセマフォーの動作に問題があります。
'71' -SQLCC_ERR_CONN_CLOSED_BY_PARTNER and SQLCODE -XXXX
この問題に対処するには、データベースにループバックを設定します。
例えば、データベースが
WAS、ホスト名が
LHOST、
データベース・サービス・ポート番号が
50000 である場合は、DB2 コマンド行ウィンドウから次のコマンドを発行します。
db2 catalog TCPIP node RHOST remote LHOST server 50000
db2 uncatalog db WAS
db2 catalog db WAS as WASAlias at node loop authentication server
//If you connect to WASAlias, it is connect through loopback;
//If you connect to WAS, it is "normal" connect.
db2 catalog db WASAlias as WAS at node RHOST
カタログ・エントリーを検査するには、DB2 コマンド行ウィンドウから次のコマンドを発行します。
db2 connect to WAS user xxx
passwd: xxx