tabish121 commented on PR #1045: URL: https://github.com/apache/activemq/pull/1045#issuecomment-1699645592
I don't see any testing here so not sure this actually works (will likely work somewhat based on it using the hacked in asynchronous send bits from years ago) but it is not going to spec compliant. The asynchronous send API has a quite onerous set of requirements that need to be implemented and so some rigorous testing should be added for all those requirements. Section 7.3 in the Jakarta 3.1 specification should be referenced when writing the tests as it lays out pretty well what needs to be handled. One that needs special care is that ordering of the completions must be done in order of the sends themselves, so if intermixing PERSISTENT and NON_PERSISTENT sends (also adding in the complexities of responses when using anonymous senders to multiple destinations) you need to ensure that a response for a later sent message does not trigger a completion until every send that came before it has completed. Also there are restrictions on what the user code can do with both the sent message and the JMS resources. Messages need to be made read only until the completion has fired, and client code cannot call things like session close, connection close, or transaction commit / rollback on its own session inside of the completion. There's other rules like when JMS APIs should block until all completions are actioned before proceeding etc. All of the specification requirement ideally should be tested to ensure you are conforming and handling all the fun edge cases this feature introduces -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
