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
