IP Library Granted Patent US 7,363,630
Granted Patent B2
US 7,363,630 · App. 11/189,225 · Granted Apr 22, 2008

System and method of intelligent queuing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,363,630
App. No.
11/189,225
Granted
Apr 22, 2008
Kind
B2
Abstract

An intelligent queue may be used to facilitate communication among a set business application programs. In one embodiment, the intelligent queue may interact with a variety of business application programs providing consistent service behaviors across a variety of data store products. The intelligent queue provides extended message storage, efficient journalling, interoperability with other intelligent queues, load balancing, once-only processing, as well as detailed message state information that tracks the status of each message from both the sender and the recipient's perspective.

Claims (43)

1. A computer program product for managing one or more queues, embodied on computer readable-material, that includes executable instructions for causing a computer system to:

determine that a message in a queue is available for several subscribers to process, wherein at least some of the several subscribers eligible to process the message are in a subscriber pool;

track the message to designate a publisher state and one or more subscriber states;

allow a first available subscriber from the subscriber pool to process the message; and

prevent all other subscribers in the subscriber pool from processing the message so that the message is processed by only one of the subscribers in the subscriber pool;

wherein a set of message state information is maintained for each of the subscribers in the subscriber pool, and wherein the instructions to prevent all other subscribers in the subscriber pool from processing the message includes instructions to cause a computer system to:

update the message state information for each of the subscribers in the subscriber pool, other than the first available subscriber, to indicate that the message is no longer to be processed by that subscriber.

2. The computer program product of claim 1 , wherein the computer program product includes instructions to cause a computer system to:

determine that another of the several subscribers is not in the subscriber pool; and

allow the subscriber not in the subscriber pool to also process the message.

3. The computer program product of claim 1 , wherein the instructions to track the message include instructions to cause a computer system to:

designate the publisher state, including designating one or more of an indication of whether the message has been placed in a publisher queue, an indication of whether the message is available to the plurality of subscribers or an indication of whether all subscribers intended to retrieve the message have retrieved the message; and

designate a subscriber state, including designating one or more of an indication of whether a first subscriber has begun retrieval, an indication of whether the first subscriber has successfully retrieved the message, an indication of whether the first subscriber has processed the message, an indication of whether the first subscriber is processing the message or an indication of whether the message is expired.

4. The computer program product of claim 1 , wherein the instructions to track the message include instructions to track a subscriber state for each subscriber eligible to process the message.

5. The computer program product of claim 1 , wherein the computer program product includes instructions to cause a computer system to retain the message in the queue until after all subscribers intended to retrieve the message have processed the message and a system administrator has had time to access the message.

6. The computer program product of claim 1 , wherein the computer program product includes instructions to cause a computer system to:

determine when a component in a transaction system fails; and

in response to determining that the component has failed, perform data recovery on the queue, including determining whether the message has been successfully processed, and if the message has not been successfully processed, permitting a subscriber to process the message.

7. A method for managing one or more queues, including:

determining that a message in a queue is available for several subscribers to process, wherein some of the several subscribers eligible to process the message are in a subscriber pool;

tracking the message, including designating a publisher state and one or more subscriber states;

allowing a first available subscriber from the subscriber pool to process the message;

preventing all other subscribers in the subscriber pool from processing the message so that the message is processed by only one of the subscribers in the subscriber pool;

determining that another of the several subscribers is not in the subscriber pool; and

allowing the subscriber not in the subscriber pool to also process the message;

wherein a set of message state information is maintained for each of the subscribers in the subscriber pool, and wherein preventing all other subscribers in the subscriber pool from processing the message comprises:

updating the message state information for each of the subscribers in the subscriber pool, other than the first available subscriber, to indicate that the message is no longer to be processed by that subscriber.

8. The method of claim 7 , wherein tracking the message comprises:

designating the publisher state, including designating one or more of an indication of whether the message has been placed in a publisher queue, an indication of whether the message is available to the plurality of subscribers or an indication of whether all subscribers intended to retrieve the message have retrieved the message; and

designating a subscriber state, including designating one or more of an indication of whether a first subscriber has begun retrieval, an indication of whether the first subscriber has successfully retrieved the message, an indication of whether the first subscriber has processed the message, an indication of whether the first subscriber is processing the message or an indication of whether the message is expired.

9. The method of claim 7 , wherein tracking the message includes tracking a subscriber state for each subscriber eligible to process the message.

10. The method of claim 7 , further comprising retaining the message in the queue until after all subscribers intended to retrieve the message have processed the message and a system administrator has had time to access the message.

11. The method of claim 7 , further comprising:

determining when a component in a transaction system fails; and

in response to determining that the component has failed, performing data recovery on the queue, including determining whether the message has been successfully processed, and if the message has not been successfully processed, permitting a subscriber to process the message.

12. The method of claim 11 , further comprising preventing a subscriber from retrieving a message that has already been successfully processed.

13. A computer program product for managing one or more queues, embodied on computer readable-material, that includes executable instructions for causing a computer system to:

track a message in a transaction system, including specifying a publisher state and a subscriber state for the message;

perform data recovery when a component of the transaction system fails; and

determine a removal time for when the message is to be removed from a queue, the removal time set to allow a system administrator to access the message for a duration after all subscribers intended to retrieve the message have processed the message;

wherein the instructions for causing a computer system to perform data recovery include instructions to prevent the message from being processed by more than one subscriber from a pool of subscribers; and

wherein the instructions for preventing the message from being processed by more than one subscriber include instructions to inspect a publisher state to determine whether a publisher has made the message available to subscribers, and instructions to inspect a subscriber state to determine whether one subscriber has processed the message, if the message was made available before failure, but not processed, then the message is made available for retrieval, if the message was not made available before failure, the message is made available for retrieval, and if the message was processed before failure, the message is not made available for retrieval.

14. The computer program product of claim 13 , wherein the instructions for causing a computer system to perform data recovery include instructions to prevent the message from being processed more than one time.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0025 →
MERGER Recorded Feb 6, 2008
From: SEEBEYOND TECHNOLOGY CORPORATION
To: SUN MICROSYSTEMS, INC.
Reel/Frame 020470/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2005
From: BERKMAN, PETER C.; NALBANDIAN, GEVIK H.; WALDORF, JERRY A.; INADA, NATHAN K.; SRIHARI, RANGASWAMY; DEMETRIADES, ALEXANDER
To: SEEBEYOND TECHNOLOGY CORPORATION
Reel/Frame 016797/0416 →