What about the metrics != null part of the condition?

Andreas

On Sun, May 16, 2010 at 03:55, Ruwan Linton <ruwan.lin...@gmail.com> wrote:
> Hi Andreas,
>
> Although the existing code calls requestCompletionTime unnecessarily even
> before the encoder gets completed, it captures the requestCompletionTime
> even in error cases. For example the request transmission not getting
> completed properly. Basically when ever we write some bytes to the channel,
> we assume the request is getting completed and keep on increasing that
> value. I agree there is a perf hit though.
>
> The whole point of the CCD, is to capture connection debug information to
> the best possible level so that analyzing and issue on a message
> transmission is straightforward.
>
> One thing we could do is to have the requestCompletionTime call within the
> encoder.isCompleted as well as in the catch block. I guess we need a generic
> Exception catch block rather just IOException catch block in that case.
>
> Thanks,
> Ruwan
>
> On Sun, May 16, 2010 at 12:54 AM, Andreas Veithen
> <andreas.veit...@gmail.com> wrote:
>>
>> Could the people who did the ClientConnectionDebug stuff please have a
>> look at the TODO item below. I don't think that the code is executed
>> in the right place.
>>
>> Andreas
>>
>>
>> ---------- Forwarded message ----------
>> From:  <veit...@apache.org>
>> Date: Sat, May 15, 2010 at 21:15
>> Subject: svn commit: r944701 -
>>
>> /synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
>> To: comm...@synapse.apache.org
>>
>>
>> Author: veithen
>> Date: Sat May 15 19:15:43 2010
>> New Revision: 944701
>>
>> URL: http://svn.apache.org/viewvc?rev=944701&view=rev
>> Log:
>> Take into account that the encoder may switch to completed even if
>> bytesWritten == 0.
>>
>> Modified:
>>
>>  synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
>>
>> Modified:
>> synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
>> URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java?rev=944701&r1=944700&r2=944701&view=diff
>>
>> ==============================================================================
>> ---
>> synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
>> (original)
>> +++
>> synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
>> Sat May 15 19:15:43 2010
>> @@ -555,11 +555,21 @@ public class ClientHandler implements NH
>>
>>         try {
>>             int bytesWritten = outBuf.produceContent(encoder);
>> -            if (metrics != null && bytesWritten > 0) {
>> -                if (metrics.getLevel() == MetricsCollector.LEVEL_FULL) {
>> -
>> metrics.incrementBytesSent(getMessageContext(conn), bytesWritten);
>> -                } else {
>> -                    metrics.incrementBytesSent(bytesWritten);
>> +            if (metrics != null) {
>> +                if (bytesWritten > 0) {
>> +                    if (metrics.getLevel() ==
>> MetricsCollector.LEVEL_FULL) {
>> +
>> metrics.incrementBytesSent(getMessageContext(conn), bytesWritten);
>> +                    } else {
>> +                        metrics.incrementBytesSent(bytesWritten);
>> +                    }
>> +
>> +                    // TODO: executing this when metrics != 0 &&
>> bytesWritten > 0 seems strange;
>> +                    //       shouldn't the condition be
>> encoder.isCompleted() ?!?!?
>> +                    ClientConnectionDebug ccd = (ClientConnectionDebug)
>> +
>>  context.getAttribute(CLIENT_CONNECTION_DEBUG);
>> +                    if (ccd != null) {
>> +                        ccd.recordRequestCompletionTime();
>> +                    }
>>                 }
>>
>>                 if (encoder.isCompleted()) {
>> @@ -569,12 +579,6 @@ public class ClientHandler implements NH
>>                         metrics.incrementMessagesSent();
>>                     }
>>                 }
>> -
>> -                ClientConnectionDebug ccd = (ClientConnectionDebug)
>> -                        context.getAttribute(CLIENT_CONNECTION_DEBUG);
>> -                if (ccd != null) {
>> -                    ccd.recordRequestCompletionTime();
>> -                }
>>             }
>>
>>         } catch (IOException e) {
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org
>> For additional commands, e-mail: dev-h...@synapse.apache.org
>>
>
>
>
> --
> Ruwan Linton
> Software Architect & Product Manager, WSO2 ESB; http://wso2.org/esb
> WSO2 Inc.; http://wso2.org
>
> Lean . Enterprise . Middleware
>
> phone: +1 408 754 7388 ext 51789
> email: ru...@wso2.com; cell: +94 77 341 3097
> blog: http://blog.ruwan.org
> linkedin: http://www.linkedin.com/in/ruwanlinton
> google: http://www.google.com/profiles/ruwan.linton
> tweet: http://twitter.com/ruwanlinton
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org
For additional commands, e-mail: dev-h...@synapse.apache.org

Reply via email to