Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

sử dụng DBMS_APPLICATION_INFO với Jboss

vâng, bạn có thể viết một lớp trình bao bọc xung quanh nhóm kết nối của mình và một lớp bao bọc xung quanh các kết nối, do đó, giả sử bạn có:

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

Thay đổi nó thành:

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);
    }

Lưu ý cách sử dụng WrappedOracleConnection ở trên. Bạn cần điều này bởi vì bạn cần bẫy cuộc gọi đóng

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);
    }
    ...
}

Hy vọng điều này sẽ hữu ích, tôi làm điều gì đó tương tự trên máy chủ phát triển để bắt các kết nối không bị đóng (không được trả về nhóm).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm ACOS () trong Oracle

  2. SQL chọn hàng theo ngày gần đây nhất với hai cột duy nhất

  3. Mở rộng ánh xạ gấp dấu phụ của Endeca

  4. So sánh các hàng trong bảng oracle và cập nhật các hàng phù hợp

  5. Oracle SELECT - Dấu ngoặc kép hoặc không có dấu ngoặc kép?