costin      2002/07/02 09:57:31

  Modified:    jk/java/org/apache/jk/common ChannelSocket.java
               jk/java/org/apache/jk/server JkCoyoteHandler.java
  Log:
  Added a bit of code to display the time spent in jk and request.
  
  I had it in my workspace, better to check it in so it doesn't get lost.
  
  Revision  Changes    Path
  1.16      +2 -1      
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java
  
  Index: ChannelSocket.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ChannelSocket.java        5 Jun 2002 21:22:40 -0000       1.15
  +++ ChannelSocket.java        2 Jul 2002 16:57:30 -0000       1.16
  @@ -471,7 +471,8 @@
                           log.warn("Closing ajp connection " + status );
                       break;
                   }
  -
  +                ep.setLong( MsgContext.TIMER_RECEIVED, System.currentTimeMillis());
  +                
                   ep.setType( 0 );
                   status= this.invoke( recv, ep );
                   if( status!= JkHandler.OK ) {
  
  
  
  1.25      +39 -8     
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java
  
  Index: JkCoyoteHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- JkCoyoteHandler.java      21 Jun 2002 23:41:16 -0000      1.24
  +++ JkCoyoteHandler.java      2 Jul 2002 16:57:30 -0000       1.25
  @@ -83,6 +83,10 @@
   {
       protected static org.apache.commons.logging.Log log 
           = org.apache.commons.logging.LogFactory.getLog(JkCoyoteHandler.class);
  +    // Set debug on this logger to see the container request time
  +    private static org.apache.commons.logging.Log logTime=
  +        org.apache.commons.logging.LogFactory.getLog( "org.apache.jk.REQ_TIME" );
  +
       int headersMsgNote;
       int c2bConvertersNote;
       int utfC2bNote;
  @@ -185,8 +189,8 @@
   
           int len=chunk.getLength();
           byte buf[]=msg.getBuffer();
  -        // 3 - hardcoded, byte[] marshalling overhead 
  -        int chunkSize=buf.length - msg.getHeaderLength() - 3;
  +        // 4 - hardcoded, byte[] marshalling overhead 
  +        int chunkSize=buf.length - msg.getHeaderLength() - 4;
           int off=0;
           while( len > 0 ) {
               int thisTime=len;
  @@ -224,6 +228,9 @@
       public int invoke( Msg msg, MsgContext ep ) 
           throws IOException
       {
  +        if( logTime.isDebugEnabled() ) 
  +                ep.setLong( MsgContext.TIMER_PRE_REQUEST, 
System.currentTimeMillis());
  +        
           org.apache.coyote.Request req=(org.apache.coyote.Request)ep.getRequest();
           org.apache.coyote.Response res=req.getResponse();
           res.setHook( this );
  @@ -241,7 +248,7 @@
           
           res.setNote( epNote, ep );
           ep.setStatus( JK_STATUS_HEAD );
  -        
  +
           try {
               adapter.service( req, res );
           } catch( Exception ex ) {
  @@ -301,6 +308,7 @@
       public void action(ActionCode actionCode, Object param) {
           try {
               if( actionCode==ActionCode.ACTION_COMMIT ) {
  +                if( log.isDebugEnabled() ) log.debug("COMMIT " );
                   org.apache.coyote.Response res=(org.apache.coyote.Response)param;
   
                   if(  res.isCommitted() ) {
  @@ -312,15 +320,17 @@
               } else if( actionCode==ActionCode.ACTION_RESET ) {
                   if( log.isInfoEnabled() )
                       log.info("RESET " );
  +
               } else if( actionCode==ActionCode.ACTION_CLIENT_FLUSH ) {
  +                if( log.isDebugEnabled() ) log.debug("CLIENT_FLUSH " );
                   org.apache.coyote.Response res=(org.apache.coyote.Response)param;
                   MsgContext ep=(MsgContext)res.getNote( epNote );
                   ep.setType( JkHandler.HANDLE_FLUSH );
                   ep.getSource().invoke( null, ep );
  +                
               } else if( actionCode==ActionCode.ACTION_CLOSE ) {
  -                if( log.isDebugEnabled() ) {
  -                    log.debug("CLOSE " );
  -                }
  +                if( log.isDebugEnabled() ) log.debug("CLOSE " );
  +
                   org.apache.coyote.Response res=(org.apache.coyote.Response)param;
                   MsgContext ep=(MsgContext)res.getNote( epNote );
                   if( ep.getStatus()== JK_STATUS_CLOSED ) {
  @@ -343,12 +353,16 @@
                   ep.getSource().invoke( msg, ep );
   
                   ep.setStatus(JK_STATUS_CLOSED );
  +
  +                if( logTime.isDebugEnabled() ) 
  +                    logTime(res.getRequest(), res);
               } else if( actionCode==ActionCode.ACTION_REQ_SSL_ATTRIBUTE ) {
                   
                   
               } else if( actionCode==ActionCode.ACTION_REQ_HOST_ATTRIBUTE ) {
   
  -                
  +            } else if( actionCode==ActionCode.ACTION_POST_REQUEST ) {
  +
               } else if( actionCode==ActionCode.ACTION_ACK ) {
                   if( log.isDebugEnabled() )
                       log.debug("ACK " );
  @@ -359,5 +373,22 @@
           }
       }
   
  -
  +    private void logTime(Request req, Response res ) {
  +        // called after the request
  +        //            org.apache.coyote.Request 
req=(org.apache.coyote.Request)param;
  +        //            Response res=req.getResponse();
  +        MsgContext ep=(MsgContext)res.getNote( epNote );
  +        String uri=req.requestURI().toString();
  +        if( uri.indexOf( ".gif" ) >0 ) return;
  +        
  +        ep.setLong( MsgContext.TIMER_POST_REQUEST, System.currentTimeMillis());
  +        long t1= ep.getLong( MsgContext.TIMER_PRE_REQUEST ) -
  +            ep.getLong( MsgContext.TIMER_RECEIVED );
  +        long t2= ep.getLong( MsgContext.TIMER_POST_REQUEST ) -
  +            ep.getLong( MsgContext.TIMER_PRE_REQUEST );
  +        
  +        logTime.debug("Time pre=" + t1 + "/ service=" + t2 + " " +
  +                      res.getContentLength() + " " + 
  +                      uri );
  +    }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to