Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

menggunakan DBMS_APPLICATION_INFO dengan Jboss

ya, Anda dapat menulis kelas pembungkus di sekitar kumpulan koneksi Anda, dan pembungkus di sekitar koneksi, jadi katakanlah Anda memiliki:

OracleConnection conn=connectionPool.getConnection("java:[email protected]");

Ubah menjadi:

public class LoggingConnectionPool extends ConnectionPool{
    public OracleConnection getConnection(String datasourceName, String module, String action){
        OracleConnection conn=getConnection(datasourceName);
        CallableStatement call=conn.preparedCall("begin dbms_application_info.setModule(module_name => ?, action_name => ?); end;");
        try{
            call.setString(1,module);
            call.setString(2,action);
            call.execute();
        finally{
            call.close();
        }
        return new WrappedOracleConnection(conn);
    }

Perhatikan penggunaan WrappedOracleConnection di atas. Anda membutuhkan ini karena Anda perlu menjebak panggilan dekat

public class WrappedOracleConnection extends OracleConnection{
    public void close(){
        CallableStatement call=this.preparedCall("begin dbms_application_info.setModule(module_name => ?, action_name => ?); end;");
        try{
            call.setNull(1,Types.VARCHAR);
            call.setNull(2,Types.VARCHAR);
            call.execute();
        finally{
            call.close();
        }
    }

    // and you need to implement every other method
    //for example
    public CallableStatement prepareCall(String command){
        return super.prepareCall(command);
    }
    ...
}

Semoga ini bisa membantu, saya melakukan hal serupa pada server pengembangan untuk menangkap koneksi yang tidak ditutup (tidak dikembalikan ke kumpulan).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Periksa Batasan Memanggil Fungsi Oracle SQL developer

  2. Cara Mengembalikan Set Kustom dalam Prosedur Tersimpan PL/SQL

  3. Jumlah baris di Oracle SQL Select?

  4. Waktu permintaan koneksi ODP.NET habis

  5. Konsolidasi beberapa pemicu Oracle. Adakah dampak kinerja?