Hi,

Posted to the list to share the workaround that was found (thanks to Asankha
C. Perera" <[EMAIL PROTECTED]>)

When running the ESB on the same machine as the backend service, some
lowlevel http traffic goes wild.
This is probably a bug somewhere below the ESB.  (apache synapse ?  httpcore
?)

workaround for me:
 - don't run ESB and backend on same machine
or
- reroute the traffic between ESB and backend trough an other machine (eg:
apache forwarding).

with that running some stress tests gave no errors. ( 5 concurrent threads,
few thousand calls)

Regards,
Harm


---------- Forwarded message ----------
From: Harm Verhagen <[EMAIL PROTECTED]>
Date: Fri, Sep 19, 2008 at 2:49 PM
Subject: Re: [esb-java-user] ERROR ClientHandler Unexpected HTTP protocol
error: Request already submitted
To: "Asankha C. Perera" <[EMAIL PROTECTED]>


Hi,

It seems indeed to be related with bugs on the lowlevel socket handling.
Whenever I reroute the traffic between ESB <-> backend    via an other
server, the problems disappear.

machineA:   ESB  + backend
machineB:   apache forwards to machine A

So in the ESB configuration, instead of addressing  the backend as
localhost:8180  I'm using   machineB:8180  which (via apache forwarding)
routes the traffic to the backend.

With this NO problems...
Except ofcourse   ... performance... This is much slower.

When having direct traffic ->  1, 2, 3 calls -> ESB java exceptions.

Regards,
Harm


On Fri, Sep 19, 2008 at 2:29 PM, Harm Verhagen <[EMAIL PROTECTED]>wrote:

> I understand.
> So the problem _could_ be caused by this.
> This would indicate bugs in the layers beneath wso2, right ?
> I'll try what to see what happens _without_ bypassing the ethernet card.
>
> Note: Performance was exactly the reason to run some backend services on
> the same hardware as the ESB.
> (for some backend services we want to use the ESB just for logging, or just
> simple transaction management (insertions in local db)).
>
> Regards,
> Harm
>
>
>
>
>
> On Fri, Sep 19, 2008 at 2:01 PM, Asankha C. Perera <[EMAIL PROTECTED]>wrote:
>
>>  http://ehv10.jibe-nc.com:8180/boost-platform/services/messageDelivery
>>
>> Sockets are at the Java level.. however the OS behaves slightly
>> differently (trying to be smarter) when it detects its talking to the same
>> machine. The NIO behavior sometimes can be dependent on such OS issues.. for
>> example, we had trouble with an old Sun OS a couple of years back, due to
>> some difference like this one.
>>
>> asankha
>>
>> Harm Verhagen wrote:
>>
>> what url did you exactly use to test from your location ?
>>
>> On Fri, Sep 19, 2008 at 1:39 PM, Asankha C. Perera <[EMAIL PROTECTED]>wrote:
>>
>>>  I used vanilla 1.7 (which is basically the same as 1.7.1 but which
>>> supports FF3).. Do you have a simulator etc for your backend which I could
>>> check with a local connection? This could also be an issue with the OS
>>> making local calls which are routed sometimes over pipes as it bypasses the
>>> network card. However, I do not assume you will have your ESB and backend
>>> server on the same physical host in production..!
>>>
>>> regards
>>> asankha
>>>
>>> Harm Verhagen wrote:
>>>
>>> That kind-of matches what I see here.
>>>  - Testing  via tcpmon (route traffic through other PC) -> OK.
>>> (really stressing still makes ESB barf, but *other *errors).
>>> -  directly connection between ESB and application -> *NOT OK.*
>>>
>>> In your test the connections beteen ESB and backend is also not direct,
>>> there is some apache forwarding in between.
>>> (timing might also affect this !).
>>>
>>> Did you also use wso2esb 1.7.1 vanilla ?
>>>
>>> Regards,
>>> Harm
>>>
>>>
>>>
>>> On Fri, Sep 19, 2008 at 1:18 PM, Asankha C. Perera <[EMAIL PROTECTED]>wrote:
>>>
>>>> Harm
>>>>
>>>> I was able to use 20 users at 100 iterations all the way from Sri Lanka
>>>> over the internet, and nothing was lost or failed. Here is my load test
>>>> results:
>>>>
>>>> I used the WSO2 ESB 1.7 release on Ubuntu using the Sun JDK 1.5.0_16.
>>>> BTW, my request used basic authentication "injected" manually from the
>>>> client I used.
>>>>
>>>> asankha
>>>>
>>>> [EMAIL PROTECTED]:~/Customer/Harm$ java -jar ~/perf/benchmark-0.1.1.jar
>>>> -p request.xml  -n 100 -c 20 -k -H "Authorization: Basic
>>>> ZnJlZGRpZTpoZWluZWtlbg==" -T "text/xml; charset=UTF-8"
>>>> http://localhost:8280/soap/messageDelivery
>>>>
>>>> Server Software:        Synapse-HttpComponents-NIO
>>>> Server Hostname:        localhost
>>>> Server Port:            8280
>>>>
>>>> Document Path:            http://localhost:8280/soap/messageDelivery
>>>> Document Length:        418 bytes
>>>>
>>>> Concurrency Level:        20
>>>> Time taken for tests:        221.184637 seconds
>>>> Complete requests:        2000
>>>> Failed requests:        0
>>>> Write errors:            0
>>>> Total transferred:        2784000 bytes
>>>> Requests per second:        9.04 [#/sec] (mean)
>>>> Time per request:        2,211.846 [ms] (mean)
>>>> Time per request:        110.592 [ms] (mean, across all concurrent
>>>> requests)
>>>> Transfer rate:            3.78 [Kbytes/sec] received
>>>>               8.81 kb/s sent
>>>>               12.59 kb/s total
>>>> [EMAIL PROTECTED]:~/Customer/Harm$
>>>>
>>>>
>>>>
>>>
>>
>
_______________________________________________
Esb-java-user mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-user

Reply via email to