2

Sun アプリ サーバー エンタープライズ エディション 8.1 でホストされている Struts Web アプリケーションに奇妙な点があることに気付きました。

JDBC リソースの監視に使用される NumConnUsed は、ユーザー アクティビティが比較的非常に少ないにもかかわらず、接続全体で 100 のままです。

私はいくつかの調査を試み、次のリンクを見つけました http://j2ee-performance.blogspot.com/ http://www.ibm.com/developerworks/websphere/library/techarticles/0506_johnsen/0506_johnsen.html

「アプリケーションが共有可能な接続を閉じると、接続は完全に閉じられず、空きプールにも返されません。むしろ、共有接続プールに残り、同じリソースへの接続に対する同じ LTC 内の別の要求に備えます。 ."

上記のコメントに基づいて、私の web.xml リソース ref スコープが共有可能に設定されている場合、アプリケーション側で接続を閉じると、それは共有接続プールに残るため、numconnused は常に非常に高くなりますか?

4

1 に答える 1

3

リンクを独自の方法で解釈すると (;))、共有接続と非共有接続は、同じページ内の異なる接続に基づいています。

java.sql.Connection connectionOne = DriverManager.getConnection(...);
...
java.sql.Connection connectionTwo = DriverManager.getConnection(...);

これら 2 つは一見すると個別のように見えますが、AS が共有可能な接続に設定されている場合、新しい接続を返す代わりに、最初の接続へのポインターを使用して 2 番目の接続が作成されます。ページが終了したら、接続をプールに送り返す必要があります。

AS は、パフォーマンスを向上させるためにプールを接続で満たしたままにしている可能性があります。

これは事実ではなく、リンクの私自身の解釈にすぎません。

于 2009-03-19T08:43:57.177 に答える