cjwmorgan-sol commented on issue #8: AMQNET-591: Transactions support
URL: https://github.com/apache/activemq-nms-amqp/pull/8#issuecomment-517366025
 
 
   @michaelandrepearce Currently The provider does not work for the solace 
broker for two main reasons:
   1) MessageProducer rate are 1 msg/sec on brokers that respect the batchable 
flag for amqp transfers. This has been a long standing issue with amqpnetlite 
until it was fixed for synchronous sends, version 2.1.8. The provider 
AmqpProducer uses async sends with ManualResetEvent to block. This is bad in 
term of amqp protocol as the transfer sent as batchable indicating to the 
broker that disposition should not be sent right away so it waits however the 
client is also waiting for a response leading to terrible message rates. 
Amqpnetlite fixed this issue at least for synchronous sends from a sender link 
where the batchable flag is set to false when a send is synchronous however 
that means that AmqpProducer must use a different send (see 
senderLink.send(msg) and senderLink.send(msg, timeout)) method then its 
currently using.
   2) local expiration of messages by the provider is on, localMessageExpiry 
sends modified outcomes for expired ttl, which some brokers do not support. The 
qpid doc indicate this property is on by defualt however looking through the 
code it does not appear to be. This problem is far more apparent in combination 
with 1) as ttl expiration is far more like to occur for slower messages rates, 
and reasonable ttl defaults. Adding a localMessageExpiry property would greatly 
help.
   
   For a release I'd say 1) should be be resolved as the provider is not acting 
correct for the amqp protocol its producing. For 2) as far as I can tell should 
not that big of a change and have the provider support brokers that do not 
support local message expiry a little better. Also would make the provider be a 
little more like qpid jms anyways.
   
   As for transactions I could get only the sample transaction project to hang 
at rollback. And the new interop tests did not worked at all. I also got some 
weird packet captures during the tests and the sample which make it a little 
difficult for a +1 at least for transactions. It might be worth looking into 
first. However, if your confident that the transaction work for your brokers of 
choice.
   
   I checked that the provider fails gracefully with the solace broker for 
transaction so it "works" for broker that do not support amqp transactions. So 
for transaction I can give a +1 for that.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to