Announcement

Collapse
No announcement yet.

HTTP receiver connector failure under load

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTTP receiver connector failure under load

    Hi,

    I am currently performance testing a mirth implementation which receives a HTTP message, transforms to HL7 before querying a RIS (max 6 inbound connections) and feeding the result back to the source. This end to end transaction is performed synchronously. Mirth is running in a high spec UNIX environment. I believe that the mirth is queing up the inbound connections waiting for connections to free up on the destination RIS system.

    During a test run at very high volumes (200 simultaneous requests) the mirth channel thows an exception and the connector stops and does not restart. The error dump is detailed below. I believe the issue is that at high load, some of the HTTP requetst are interrupted before mirth has a chance to process the message, which would explain the "Invalid argument" error message.

    What i would like to know is, if is there any way to stop this connector failure happening? or automatically re-deploying the connector upon such a failure?

    Thanks in advance
    Kev


    79344adb39b9_source_connector._httpEndpoint#102793 5500.receiver.1] com.webreach.mirth.connectors.http.HttpMessageRece iver: Accept failed on socket: java.net.SocketException: Invalid argument
    java.net.SocketException: Invalid argument
    at java.net.PlainSocketImpl.socketSetOption(Native Method)
    at java.net.PlainSocketImpl.setOption(PlainSocketImpl .java:264)
    at java.net.Socket.setReceiveBufferSize(Socket.java:1 128)
    at org.mule.providers.tcp.TcpMessageReceiver.run(TcpM essageReceiver.java:129)
    at org.mule.impl.work.WorkerContext.run(WorkerContext .java:290)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.runTask(ThreadPoolExecutor. java:650)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.run(ThreadPoolExecutor.java :675)
    at java.lang.Thread.run(Thread.java:619)
    ERROR 2010-05-27 11:32:54,537 [f39985c9-386b-4474-bb93-79344adb39b9_source_connector._httpEndpoint#102793 5500.receiver.1] org.mule.impl.DefaultComponentExceptionStrategy: Stopping channel com.webreach.mirth.connectors.http.HttpMessageRece [email protected]
    ERROR 2010-05-27 11:32:54,654 [f39985c9-386b-4474-bb93-79344adb39b9_source_connector._httpEndpoint#102793 5500.receiver.1] org.mule.impl.DefaultComponentExceptionStrategy: Caught exception in Exception Strategy for: MessageSink: org.mule.providers.ConnectException: Initialisation Failure: Invalid argument
    org.mule.providers.ConnectException: Initialisation Failure: Invalid argument
    at org.mule.providers.tcp.TcpMessageReceiver.run(TcpM essageReceiver.java:138)
    at org.mule.impl.work.WorkerContext.run(WorkerContext .java:290)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.runTask(ThreadPoolExecutor. java:650)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.run(ThreadPoolExecutor.java :675)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.net.SocketException: Invalid argument
    at java.net.PlainSocketImpl.socketSetOption(Native Method)
    at java.net.PlainSocketImpl.setOption(PlainSocketImpl .java:264)
    at java.net.Socket.setReceiveBufferSize(Socket.java:1 128)
    at org.mule.providers.tcp.TcpMessageReceiver.run(TcpM essageReceiver.java:129)
    ... 4 more
    ERROR 2010-05-27 11:32:54,666 [f39985c9-386b-4474-bb93-79344adb39b9_source_connector._httpEndpoint#102793 5500.receiver.1] com.webreach.mirth.server.mule.ExceptionStrategy: The object that failed was:
    com.webreach.mirth.connectors.http.HttpMessageRece [email protected]
    ERROR 2010-05-27 11:32:54,732 [f39985c9-386b-4474-bb93-79344adb39b9_source_connector._httpEndpoint#102793 5500.receiver.1] org.mule.impl.DefaultComponentExceptionStrategy: Caught exception in Exception Strategy for: MessageSink: java.net.SocketException: Invalid argument
    java.net.SocketException: Invalid argument
    at java.net.PlainSocketImpl.socketSetOption(Native Method)
    at java.net.PlainSocketImpl.setOption(PlainSocketImpl .java:264)
    at java.net.Socket.setKeepAlive(Socket.java:1166)
    at com.webreach.mirth.connectors.http.HttpMessageRece iver$HttpWorker.<init>(HttpMessageReceiver.java:11 4)
    at com.webreach.mirth.connectors.http.HttpMessageRece iver.createWork(HttpMessageReceiver.java:72)
    at org.mule.providers.tcp.TcpMessageReceiver.run(TcpM essageReceiver.java:143)
    at org.mule.impl.work.WorkerContext.run(WorkerContext .java:290)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.runTask(ThreadPoolExecutor. java:650)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.run(ThreadPoolExecutor.java :675)
    at java.lang.Thread.run(Thread.java:619)
    INFO 2010-05-27 11:32:54,734 [f39985c9-386b-4474-bb93-79344adb39b9_source_connector._httpEndpoint#102793 5500.receiver.6] filter: Connection Accepted: IP = 10.117.86.200 ID = LB001
    ERROR 2010-05-27 11:32:54,776 [f39985c9-386b-4474-bb93-79344adb39b9_source_connector._httpEndpoint#102793 5500.receiver.6] com.webreach.mirth.connectors.http.HttpMessageRece iver: org.mule.umo.routing.RoutingException: Failed to route event via endpoint: ImmutableMuleEndpoint{connector=com.webreach.mirth [email protected], endpointUri=http://127.0.0.1:8089, transformer=Transformer{name='HttpRequestToString' , returnClass=false, returnClass=false, sourceTypes=[class java.lang.String, class [B]}, name='_httpEndpoint#1027935500', type='receiver', properties={}, transactionConfig=org.mule.impl.MuleTransactionCon [email protected], filter=null, deleteUnacceptedMessages=false, initialised=true, securityFilter=null, synchronous=true, initialState=started, createConnector=0}. Message payload is of type: [B
    INFO 2010-05-27 11:32:54,787 [f39985c9-386b-4474-bb93-79344adb39b9_source_connector._httpEndpoint#102793 5500.rec
Working...
X