public int getIsolationLevel ( int preferred ) { int isolationLevel ; final boolean isTraceOn = TraceComponent . isAnyTracingEnabled ( ) ; // d532639.2 if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . entry ( tc , "getIsolationLevel: " + preferred ) ; // First, go get the ContainerTx for the current transaction. ContainerTx ctx = null ; try { ctx = getCurrentTx ( false ) ; //d171654 } catch ( CSITransactionRolledbackException ex ) { // This would be a Container internal error. Log it and continue. FFDCFilter . processException ( ex , CLASS_NAME + ".getIsolationLevel" , "1614" ) ; Tr . error ( tc , "IGNORING_UNEXPECTED_EXCEPTION_CNTR0033E" , ex ) ; } if ( ctx == null ) { // The Container is not involved in the specified transaction. // The call is probably for a JSP/Servlet, so just return the // specified defrault. if ( isTraceOn && tc . isEventEnabled ( ) ) Tr . event ( tc , "ContainerTx is null, returning specified default" ) ; isolationLevel = preferred ; } else { // The Container is involved in the specified tranaction. // Get the isolation level from the ContainerTx object. And, if // the value is NONE (either not set yet, or was not specified // for the bean method), then set the specified default for the // transaction. isolationLevel = ctx . getIsolationLevel ( ) ; if ( isolationLevel == java . sql . Connection . TRANSACTION_NONE ) { if ( isTraceOn && tc . isEventEnabled ( ) ) Tr . event ( tc , "Using specified default" ) ; isolationLevel = preferred ; try { ctx . setIsolationLevel ( isolationLevel ) ; } catch ( IsolationLevelChangeException ex ) { // This would be a Container internal error. It would seem to // only be possible if another thread were modifying the // ContainerTx at the same time. Log it and continue. FFDCFilter . processException ( ex , CLASS_NAME + ".getIsolationLevel" , "1645" ) ; Tr . error ( tc , "IGNORING_UNEXPECTED_EXCEPTION_CNTR0033E" , ex ) ; } } } if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "getIsolationLevel: " + MethodAttribUtils . getIsolationLevelString ( isolationLevel ) ) ; return isolationLevel ; }
d128344 . 1