7

接続要求の数が多い場合、Oracle データ ソースは null 接続を返します。私は暗黙のキャッシュを有効にしています。オラクルの仕様によると、null は ConnectionWaitTimeout が設定されている場合にのみ返されます。キャッシュ プロパティで ConnectionWaitTimeout の値が設定されていません。

これは仕様が言っていることです

接続待機タイムアウト

接続が要求され、アクティブな MaxLimit 接続が既に存在する場合のキャッシュ動作を指定します。ConnectionWaitTimeout が 0 より大きい場合、各接続要求は、指定された秒数の間、または接続がキャッシュに返されるまで待機します。タイムアウトが経過する前にキャッシュに接続が返されない場合、接続リクエストは null を返します。

デフォルト: 0 (タイムアウトなし)

データソースが null 接続を返す可能性がある他の可能性は何ですか?

4

2 に答える 2

2

デフォルトは、使用している Oracle のバージョンによって異なる場合があると思います。一部の情報は矛盾しています。たとえば、オラクルの「Optimizing Connection Pool Behavior」は、デフォルトが 3 秒 (11g?) であることを意味しますが、他のソースでは、質問で述べたようにゼロであると述べています。

明示的にゼロに設定して、動作がまだ現れるかどうかを確認することをお勧めします。

于 2009-03-30T20:50:18.457 に答える
0

この値を設定してみました。ドキュメントにはデフォルトはタイムアウトではないと書かれていますが、このプロパティを設定していなかった場合、データソースはnullを返していました。接続が待機している値を明示的に指定すると、値が0の場合でもnull接続になります。

于 2009-03-30T21:35:53.790 に答える