code: public void doStatementCleanup(PreparedStatement stmt) throws SQLException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (setCursorNameSupported) {
              try{        
                  stmt.setCursorName(null);            
              } catch (SQLFeatureNotSupportedException supportX) {
                  setCursorNameSupported = false;
                  if (isTraceOn && tc.isDebugEnabled()) Tr.debug(tc, "Statement.setCursorName() is not supported.", supportX);
              }
          }
          
          stmt.setFetchDirection(ResultSet.FETCH_FORWARD);
          stmt.setMaxFieldSize(0);
          stmt.setMaxRows(0);
  
          Integer queryTimeout = mcf.dsConfig.get().queryTimeout;
          if (queryTimeout == null)
              queryTimeout = defaultQueryTimeout;
          stmt.setQueryTimeout(queryTimeout);
      }
docs: <p>This method cleans up a statement before the statement is placed in the statement
  cache. This method is called only
  for statements being cached. It is called when at least one of the
  following statement properties has changed,</p>
  
  <ul>
  <li>cursorName</li>
  <li>fetchDirection</li>
  <li>maxFieldSize</li>
  <li>maxRows</li>
  <li>queryTimeout</li>
  </ul>
  
  <p>The generic implementation for this method resets all five of the
  properties listed above.</p>
  
  <p>The following operations do not need to be included in the statement cleanup because
  they are automatically performed by WebSphere when caching statements:</p>
  
  <ul>
  <li><code>setFetchSize(0)</code></li>
  <li><code>clearParameters()</code></li>
  <li><code>clearWarnings()</code></li>
  </ul>
  
  <p>A helper class implementing this method can choose to do additional cleanup for
  the statement. However, this should never include closing the statement because the
  statement is intended to be cached.</p>
  
  @param stmt the PreparedStatement.
  
  @exception SQLException if an error occurs cleaning up the statement.