2013-02-14 22 views
10

私は、JBoss 7は、スレッドセーフなjavax.sql.DataSourceですか?

に配備するJava EEアプリケーションでのPostgreSQL 9.1 JDBC4ドライバ(のpostgresql-9.1-902.jdbc4.jar)を使用しています私はするjavax.sql.DataSourceは、スレッドセーフであると仮定することができます複数のスレッドが同時にgetConnection()メソッドを呼び出すことができますか?

答えて

8

通常は、Java EEコンテナから取得DataSource実装では、接続プールに裏打ちされたスレッドセーフなオブジェクトになり、基礎となるJDBC接続のスレッドの安全性(またはそれ以外)がありません本当に関連性があります。データベースと対話する必要があるときの通常のパターンは、接続オブジェクトを取得するためにデータソースでgetConnection()を呼び出し、必要なデータベース呼び出しを行い、次に接続をclose()にすることです。カバーの下では、これは基本的な接続を実際に閉じるのではなく、将来の使用のために接続プールに戻すだけです。個々の接続は、一度に1つのスレッドでのみ使用されます。

これは、Spring JdbcTemplateのようなもので使用されるイディオムです。

0

「接続プーリング実装」の場合、スレッドセーフである必要があります。

関連する問題