2017-03-21 13 views
1

コードからプールから接続を取り、プールに戻さなかったとしましょう。Websphereリバティーフォース接続プールへ戻る

何らかのアイドル時間の後に接続でアクティビティが識別されない場合、プールに接続を強制するリバティの設定があるかどうかを知りたい場合は10秒です。私は自由を使用しています

8.5.5.9

答えて

5

のWebsphere Libertyは一定時間後に戻ってプールに使用中の接続を強制する任意のメカニズムを持っていません。

この動作に最も近いのは、タイムアウトに達した後にグローバルトランザクションをタイムアウトし、グローバルトランザクション内のすべてのリソースがクリーンアップされる「トランザクションタイムアウト」(デフォルトは120秒)です。

しかし、デフォルトでは、WebSphereは、トランザクションスコープが終了した後に漏れた接続を常にクリーンアップします(ローカルトランザクションの包含またはグローバルトランザクションの場合)。例えば

、私は、サーブレットで次の操作を実行した場合:サーブレット要求が終了したときに接続が自動的に閉じ、接続プールに返される

Connection conn = ds.getConnection(); 
// conn never closed! 

あなたは、グローバル・トランザクションに同様のことを行う場合は、次の

tx.begin(); 
Connection conn = ds.getConnection(); 
// conn never closed! 
// tx never ended! 

グローバル・トランザクションが終了され、リソースはロールバックされます。

長時間実行されているサービス要求がない限り、デフォルトのクリーンアップ動作では、探している動作が分かります。サービス要求が長時間実行されている場合は、トランザクションのタイムアウトを調整することを検討することをお勧めします。

+0

好奇心の渦中に、接続を強制的に強制することができるwebsphereアプリケーションサーバーにそのような設定があるかどうかを知りたいですか? –

+2

これはあまり明示的に答えられていませんか? – covener

+0

@KrishnaChaitanya「Websphereアプリケーション・サーバーにこのような設定がある」と言うと、WebSphere LibertyまたはTraditionalを指していますか?あなたの質問は「自由」とタグ付けされているので、私は自由を仮定しました。 WebSphere Traditionalについて気になる人は、Libertyの場合と同じです。 –