私はスイングと休止状態で作業しています。現在、接続を取得するために、を使用してsessionFactory.openSession()
います。DB アクティビティを完了したら、同じセッションを で閉じsession.close()
ます。問題は、アプリケーションを使用し続けると、いくつかの呼び出しの後、アプリケーションが例外をスローすることです
40503 [AWT-EventQueue-0] WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection to query metadata
java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:418)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:521)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:325)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:113)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
アプリケーションを使用している間、次のクエリを使用してアクティブな DB 接続を監視します
select count(*) from v$session
接続数が増加していることがわかり、いくつかの接続の後、DB は新しい接続の提供を停止します。
休止状態を使用してDBとの接続を閉じる方法がわかりません。そうするのsession.close()
は役に立ちません。