[ 
https://issues.apache.org/jira/browse/QPIDJMS-141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15058507#comment-15058507
 ] 

Robbie Gemmell commented on QPIDJMS-141:
----------------------------------------

Would you happen to be using the C++ broker with its persistent store and 
durable queues?

> Thread sync error can cause long blocking delay after message send
> ------------------------------------------------------------------
>
>                 Key: QPIDJMS-141
>                 URL: https://issues.apache.org/jira/browse/QPIDJMS-141
>             Project: Qpid JMS
>          Issue Type: Bug
>          Components: qpid-jms-client
>    Affects Versions: 0.6.0
>            Reporter: Chris Richardson
>             Fix For: 0.7.0
>
>
> There is a discontinuity in the thread synchronisation between the 
> JmsConnection and AmqpProvider classes when sending a message: the 
> JmsConnection class awaits a signal after requesting message transmission 
> (line 615, "request.sync();") while the AmqpProvider does not send the 
> expected signal (lines 486/487,
> if (couldSend && envelope.isSendAsync()) {
>                         request.onSuccess();
> )
> This results in a ~1000ms blocking delay while the request.sync() times out.
> This only happens in a scenario where the JmsSession determines that the 
> message should be sent synchronously (lines 668/669: 
> boolean sync = connection.isAlwaysSyncSend() ||
>                            (!connection.isForceAsyncSend() && deliveryMode == 
> DeliveryMode.PERSISTENT && !getTransacted());
> ).
> One workaround for this is to set the MessageProducer deliveryMode to 
> DeliveryMode.NON_PERSISTENT, causing the JmsSession to evaluate the send 
> operation to be asynchronous and so the AmqpProvider signals the request as 
> expected by the JmsConnection. However this may have other side-effects...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to