[
https://issues.apache.org/jira/browse/SYNAPSE-527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen updated SYNAPSE-527:
------------------------------------
Priority: Critical (was: Minor)
Fix Version/s: 1.3
Increasing the priority to critical because this issue may cause data loss and
crash Synapse.
This happens in the following scenario:
- Modify sample 250 to forward using JMS instead of HTTP.
- Preload the queue of the proxy service with a large number of messages: ant
jmsclient -Djms_type=pox -Djms_dest=dynamicQueues/StockQuoteProxy
-Djms_payload=MSFT -Djms_msgcount=10000
- Start Synapse
On Mac OS X, the result is that Synapse will successfully process a certain
number of messages (of order 1000), but then starts to trigger errors "Can't
create thread: 5" and later fails with an out of memory error. The result is
that messages are lost.
The workaround is to add the following mediator to the inSequence:
<property action="remove" name="transportNonBlocking" scope="axis2"/>
In that case, Synapse will gently forward all the messages.
> Transports use TRANSPORT_NON_BLOCKING in an incorrect way
> ---------------------------------------------------------
>
> Key: SYNAPSE-527
> URL: https://issues.apache.org/jira/browse/SYNAPSE-527
> Project: Synapse
> Issue Type: Bug
> Components: Transports
> Affects Versions: 1.2
> Reporter: Andreas Veithen
> Priority: Critical
> Fix For: 1.3
>
>
> The TRANSPORT_NON_BLOCKING property is set on the message contexts for
> incoming messages by ServerWorker#createMessageContext (NIO HTTP transport)
> and AbstractTransportListener#createMessageContext. When the message is sent
> out, Synapse copies this property over to the message context for the
> outgoing message. This in turn has an impact on the threading behavior when
> the message is sent: depending on the value of TRANSPORT_NON_BLOCKING, the
> <send> mediator (more precisely the OperationClient) will invoke the outgoing
> transport in a separate thread. It is not clear why the transport that
> handles the incoming request should determine the threading behavior of the
> transport that sends the outgoing request to the target service.
> See also http://markmail.org/message/6iuslkueny24po73
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]