Oracle
 sql >> Baza danych >  >> RDS >> Oracle

używanie DBMS_APPLICATION_INFO z Jboss

tak, możesz napisać klasę opakowującą wokół swojej puli połączeń i opakowującą wokół połączeń, więc powiedzmy, że masz:

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

Zmień go na:

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

Zwróć uwagę na użycie opcji WrappedOracleConnection powyżej. Potrzebujesz tego, ponieważ musisz złapać bliskie połączenie

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

Mam nadzieję, że to pomoże, robię coś podobnego na serwerze deweloperskim, aby przechwycić połączenia, które nie są zamknięte (nie są zwracane do puli).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dowiedzieć się, kiedy dana tabela została utworzona w Oracle?

  2. Formatuj wyniki zapytania w SQL*Plus

  3. generowanie plików XLS przy użyciu PL/SQL

  4. PostgreSQL - składnia zapytania bez cudzysłowów

  5. PLS-00103:Napotkałem symbol CREATE