0

昨日から、WSO2 Data Service Server の DB2 データ ソースの問題に直面しています。毎晩、データベースでメンテナンスを行うスケジュールシェルスクリプトスクリプトがありますが、ある時点でDB2上のすべての接続をドロップする必要があり、WSO2が接続プールを再度バインドする必要があると予想されますが、これが完了するとこれが得られますエラー:

ネストされた例外: - com.ibm.db2.jcc.c.DisconnectException: [ibm][db2][jcc][t4][2030][11211] 通信エラーが検出されました。使用されている通信プロトコル: TCP/IP。使用されている通信 API: SOCKETS。エラーが検出された場所: T4Agent.sendRequest()。エラーを検出した通信関数:OutputStream.flush()。プロトコル固有のエラー コード Broken pipe, *, 0. Message: Broken pipe

原因: javax.xml.stream.XMLStreamException: DS 障害メッセージ: 「SQLQuery.processNormalQuery」のエラー

それを期待するのは間違っていますか、それとも接続が切断された後にこのエラーが発生するのは自然ですか?

ありがとう。

4

1 に答える 1

0

ええ、DB2 が接続をドロップすると接続プール内のデータベース接続が無効になるため、エラーが発生することが予想されます。そのため、データ サービスへの最初のリクエストは失敗します。これを処理するには、データ ソースで「validationQuery」オプションを使用してこの問題を解決します。「select 1 from sysibm.sysdummy1」のようなクエリを検証クエリとして使用できます。このクエリは、接続プールから接続が使用される前に毎回呼び出されます。

乾杯、アンジャナ。

于 2012-08-08T09:01:07.877 に答える