1

java.sql.Connectionの単純な接続プールを想像してみてください。接続が解放されてプールに戻された後、トランザクションが開いているかどうか、一時テーブルが作成されているかどうかなどはわかりません。

getAutoCommit()がfalseかどうかを手動でチェックしてから、ロールバックする必要があるかどうかを確認したり、rollback()を呼び出したりするのではなく、SQLサーバーのsp_resetconnectionストアドプロシージャと同様のことを行うreset()関数があることを期待していました。 DBMSに依存しません。ただし、ConnectionのAPIを見ると、そうではないようです。

そのような機能はありますか?

4

2 に答える 2

1

存在しない。実際、SQL Server接続プールのデータソースクラスでさえ、接続を既知の状態に戻すためにアプリケーションサーバー(または接続プールを管理する他のアプリケーション)に依存しているため、sp_resetconnection呼び出しを呼び出しません。http://msdn.microsoft.com/en-us/library/ms378484(v=sql.90).aspxを参照してください。

さまざまなドライバー、サーバーなどに独自の機能がある場合がありますが、sp_resetconnectionprocが実行することを実行するJavaメソッドの非独占的またはクロスデータベースの類似物はないと比較的確信しています。

于 2011-05-23T01:50:07.843 に答える
0

そのような機能は存在しないと思います。私は約1年前にこれを解決しようとしましたが、DBMS固有の関数を呼び出さなければならなくなりました。

于 2011-05-23T01:50:05.027 に答える