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]

Reply via email to