protected void nowReconnectedSync ( IOException originalExcep ) throws IOException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Reconnected sync for " + this ) ; } if ( ! resetWriteBuffers ( ) ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Resetting buffers (sync) failed" ) ; } throw originalExcep ; } // now that we've reconnected, we should reset the "broken" flag. First // we set it to the default and then recheck the request msg setPersistent ( true ) ; updatePersistence ( getRequestImpl ( ) ) ; // Note: during a sync path, we don't actually enable reconnects once // we start reading and parsing the response (only async path) // in case we read any partial data, we need to clean out the response // resetRead(); if ( isReadAheadEnabled ( ) ) { // after a reconnect, there is no more read-ahead active this . bReadAheadEnabled = false ; } try { getTSC ( ) . getWriteInterface ( ) . write ( TCPWriteRequestContext . WRITE_ALL_DATA , getWriteTimeout ( ) ) ; } catch ( IOException ioe ) { // no FFDC required // just set the "broken" connection flag setPersistent ( false ) ; throw ioe ; } }
Once we ve reconnected to the target server attempt to redo the sync write of the buffers . If another error happens simply pass that back up the stack .