1

当社の Web アプリケーションは現在、Oracle データベースに対して直接 JDBC 呼び出しを行っています。静的な getConnection(String client) メソッドで DBMS_APPLICATION_INFO パッケージへの呼び出しを使用して、各接続にタグを付けます。

CallableStatement pstmt = conx.prepareCall("{call DMBS_APPLICATION_INFO.SET_CLIENT_INFO(?)}");
pstmt.setString(1, "my client");
pstmt.executeUpdate();

これは時々役立つことが証明されており、Spring JDBC に切り替えるときもこれを継続したいと考えています。

各クエリをトランザクションにして、クエリ (または複数のクエリ) を実行する前に DBMS_APPLICATION_INFO を呼び出すと、これはうまくいくと思いますが、現在接続を確立しているすべての場所に上記のコードを追加する必要があります。Spring JDBC は各クエリで接続を開いたり閉じたりするため、トランザクションの外では不可能のようです。

Spring JDBC では、現在行っているように内部で DBMS_APPLICATION_INFO を呼び出し、接続にタグを付ける文字列を渡す方法はありますか?

ありがとう!

4

3 に答える 3

0

春の側面を調べましたか?

于 2011-01-06T22:25:01.470 に答える
0

私の質問に対する答えはノーです。今日この問題に取り組むとしたら、Tomcat の JDBC プール用のインターセプターを作成するか、ドライバーをラップすることを検討するでしょう。ただし、実際には、DBMS_APPLICATION_INFO の使用を中止する可能性が最も高いでしょう。運用上は便利ではありませんでしたが、コードを追加して複雑にする価値はありませんでした。

于 2014-08-18T02:02:24.513 に答える