@ Override public boolean doConnectionCleanup ( Connection conn ) throws SQLException { final boolean trace = TraceComponent . isAnyTracingEnabled ( ) ; if ( trace && tc . isEntryEnabled ( ) ) Tr . entry ( tc , "doConnectionCleanup" ) ; boolean result = false ; try { Class < ? > c = OracleConnection . get ( ) ; if ( c == null ) OracleConnection . set ( c = WSManagedConnectionFactoryImpl . priv . loadClass ( mcf . jdbcDriverLoader , oracle_jdbc_OracleConnection ) ) ; if ( c . isInstance ( conn ) ) { try { Method m = isProxySession . get ( ) ; if ( m == null ) isProxySession . set ( m = c . getMethod ( "isProxySession" ) ) ; if ( ( Boolean ) m . invoke ( conn ) ) { m = close . get ( ) ; if ( m == null ) close . set ( m = c . getMethod ( "close" , int . class ) ) ; m . invoke ( conn , 1 ) ; // value of OracleConnection.PROXY_SESSION result = true ; } } catch ( NoSuchMethodException nsme ) { // This is expected when older version of the Oracle JDBC Driver // like classes12.zip are being used } } } catch ( RuntimeException x ) { throw x ; } catch ( Exception x ) { throw AdapterUtil . toSQLException ( x ) ; } if ( trace && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "doConnectionCleanup" , result ) ; return result ; }
Closes the proxy session .