Claims
- 1. A data processing method for a data processing system comprising a messaging service and a transaction service, the method comprising the steps of:
receiving a request, from a sender, to send an asynchronous message, comprising message data, to a queue, wherein the request is received under the scope of a transaction; registering a definition for the queue, the definition providing details of an operation provided by the recipient; processing the request to send a message by delivering the message, prior to completion of the transaction, to a recipient which is registered with the messaging service to process messages from the queue wherein the message is delivered to the recipient by calling the operation and including details of the message; receiving one or more requests to register involvement of one or more participants in the transaction, wherein each participant represents transactional work done as a result of the recipient processing the message; and completing the transaction wherein the completing step comprises instructing each of the one or more participants to complete; whereby transactional work done, as a result of the recipient processing the message, is involved in the transaction under the scope of which the message was sent.
- 2. A method as claimed in claim 1 wherein one of the one or more requests to register involvement of one or more participants in the transaction, registers involvement of the recipient as a participant in the transaction.
- 3. A method as claimed in claim 2 wherein the request to register the involvement of the recipient as a participant in the transaction includes details of the queue, wherein the completing step instructs the recipient to complete by sending one or more messages to the queue.
- 4. A method as claimed in claim 2 wherein the request to register the involvement of the recipient as a participant in the transaction includes details of a second queue to the transaction wherein the completion step instructs the recipient to complete by sending one or more messages to the second queue.
- 5. A method as claimed in claim 1 wherein the transaction is a first transaction and the method comprises the further step of:
processing the message by the recipient; wherein the step of processing of the message by the recipient comprises the steps of: informing a second transaction of the first transaction, details of which were included with the message; and calling a second recipient and as part of the calling step passing the message data to the second recipient for processing under the scope of the second transaction.
- 6. A method as claimed in claim 5 wherein the processing of the message by the recipient comprises the further step of:
starting the second transaction;
- 7. A method as claimed in claim 5 wherein the processing of the message by the recipient comprises the further steps of:
prior to calling the second recipient, registering as a temporary participant in the second transaction; and on return from calling the second recipient, unregistering as a temporary participant in the second transaction.
- 8. A method as claimed in claim 7 wherein as part of the unregistering step a vote is passed to the second transaction, the vote comprising an indication as to whether the second transaction should commit or rollback.
- 9. A method as claimed in claim 8 comprising the further step of:
in response to the unregistering step including a vote comprising an indication that the second transaction should rollback, marking the second transaction as rollback only.
- 10. A method as claimed in claim 5 wherein the second transaction acts as a subordinate transaction to the transaction, details of which were included with the message.
- 11. A method according to claim 5 wherein the second transaction acts as a nested transaction within the transaction, details of which were included with the message.
- 12. A method as claimed in claim 8 wherein the second transaction acts as a acts as a nested transaction within the transaction, details of which were included with the message and the method comprises further the steps of:
in response to the unregistering step including a vote comprising an indication that the second transaction should rollback: rolling back the second transaction; and restoring the message to the queue.
- 13. A data processing system comprising a messaging service and a transaction service, the system comprising:
means for the messaging service to receive a request, from a sender, to send an asynchronous message comprising message data to a queue, wherein the request is received under the scope of a transaction; means for registering a definition for the queue, the definition providing details of an operation provided by the recipient; means for the messaging service to process the request to send an asynchronous message by delivering the message, prior to completion of the transaction, to a recipient which is registered with the messaging service to process messages from the queue wherein the message is delivered to the recipient by calling the operation and including details of the message; means for the transaction service to receive a request to register involvement of a participant in the transaction, wherein the participant represents transactional work done as a result of the recipient processing the message; and means for the transaction service to complete the transaction comprising instructing each participant in the transaction to complete; whereby transactional work done, as a result of the recipient processing the message, is involved in the transaction under the scope of which the message was sent.
- 14. A data processing system as claimed in claim 13 wherein the means for receiving a request to register involvement of a participant in the transaction receives a request to register involvement of the recipient as a participant in the transaction.
- 15. A data processing system as claimed in claim 14 wherein the request received to register the involvement of the recipient in the transaction includes details of the queue, wherein the means for completing the transaction instructs the recipient to complete by sending one or more messages to the queue.
- 16. A data processing system as claimed in claim 14 wherein the request received to register the involvement of the recipient in the transaction includes details of a second queue, wherein the means for completing the transaction instructs the recipient to complete by sending one or more messages to the second queue.
- 17. A data processing system as claimed in claim 13 wherein the recipient comprises:
means for informing a second transaction of the transaction, details of which were included with the message; and means for calling a second recipient and as part of the calling step passing the message data to the second recipient for processing under the scope of the second transaction.
- 18. A data processing system as claimed in claim 17 wherein the recipient further comprises:
means for starting the second transaction;
- 19. A data processing system as claimed in claim 17 wherein the recipient further comprises:
means for registering as a temporary participant in the second transaction, prior to calling the second recipient; and means for unregistering as a temporary participant in the second transaction, on return from calling the second recipient.
- 20. A data processing system as claimed in claim 19 wherein the means for unregistering passes a vote to the second transaction, the vote comprising an indication as to whether the second transaction should commit or rollback.
- 21. A data processing system as claimed in claim 20 further comprising:
means, responsive to means for unregistering step passing a vote comprising an indication that the second transaction should rollback, for marking the second transaction as rollback only.
- 22. A data processing system as claimed in claim 17 wherein the second transaction acts as a subordinate transaction to the transaction, details of which were included with the message.
- 23. A data processing system as claimed in claim 17 wherein the second transaction acts as a nested transaction within the transaction, details of which were included with the message.
- 24. A data processing system as claimed in claim 20 wherein the second transaction acts as a acts as a nested transaction within the transaction, details of which were included with the message and the messaging system further comprises:
means, responsive to the unregistering step including a vote comprising an indication that the second transaction should rollback, for: rolling back the second transaction; and restoring the message to the queue.
- 25. A computer program product comprising instructions which, when executed on a data processing host, cause the host to carry out a method comprising the steps of:
receiving a request, from a sender, to send an asynchronous message, comprising message data, to a queue, wherein the request is received under the scope of a transaction; means for registering a definition for the queue, the definition providing details of an operation provided by the recipient; processing the request to send a message by delivering the message, prior to completion of the transaction, to a recipient which is registered with the messaging service to process messages from the queue wherein the message is delivered to the recipient by calling the operation and including details of the message; receiving one or more requests to register involvement of one or more participants in the transaction, wherein each participant represents transactional work done as a result of the recipient processing the message; and completing the transaction wherein the completing step comprises instructing each of the one or more participants to complete; whereby transactional work done, as a result of the recipient processing the message, is involved in the transaction under the scope of which the message was sent.
- 26. A computer program product as claimed in claim 25 wherein one of the one or more requests to register involvement of one or more participants in the transaction, registers involvement of the recipient as a participant in the transaction.
- 27. A computer program product as claimed in claim 26 wherein the request to register the involvement of the recipient as a participant in the transaction includes details of the queue, wherein the completing step instructs the recipient to complete by sending one or more messages to the queue.
- 28. A computer program product as claimed in claim 26 wherein the request to register the involvement of the recipient as a participant in the transaction includes details of a second queue to the transaction wherein the completion step instructs the recipient to complete by sending one or more messages to the second queue.
- 29. A computer program product as claimed in claim 25 wherein the transaction is a first transaction and the method comprises the further step of:
processing the message by the recipient; wherein the step of processing of the message by the recipient comprises the steps of: informing a second transaction of the first transaction, details of which were included with the message; and calling a second recipient and as part of the calling step passing the message data to the second recipient for processing under the scope of the second transaction.
- 30. A computer program product as claimed in claim 29 wherein the processing of the message by the recipient comprises the further step of:
starting the second transaction;
- 31. A computer program product as claimed in claim 29 wherein the processing of the message by the recipient comprises the further steps of:
prior to calling the second recipient, registering as a temporary participant in the second transaction; and on return from calling the second recipient, unregistering as a temporary participant in the second transaction.
- 32. A computer program product as claimed in claim 31 wherein as part of the unregistering step a vote is passed to the second transaction, the vote comprising an indication as to whether the second transaction should commit or rollback.
- 33. A computer program product as claimed in claim 32 the method comprising the further step of:
in response to the unregistering step including a vote comprising an indication that the second transaction should rollback, marking the second transaction as rollback only.
- 34. A computer program product as claimed in claim 29 wherein the second transaction acts as a subordinate transaction to the transaction, details of which were included with the message.
- 35. A computer program product according to claim 29 wherein the second transaction acts as a nested transaction within the transaction, details of which were included with the message.
- 36. A computer program product as claimed in claim 32 wherein the second transaction acts as a acts as a nested transaction within the transaction, details of which were included with the message and the method comprises further the steps of:
in response to the unregistering step including a vote comprising an indication that the second transaction should rollback: rolling back the second transaction; and restoring the message to the queue.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of the following copending and commonly assigned application entitled “A SYSTEM AND METHOD FOR MANAGING TRANSACTIONS IN A MESSAGING SYSTEM”, U.S. application Ser. No. ______, filed on May 29, 2003.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10448269 |
May 2003 |
US |
Child |
10666793 |
Sep 2003 |
US |