Patent ID: 8079033

Claim:
A method for routing messages in a system, comprising: determining an initial distribution pattern for routing the messages to different destinations; determining a queue parameter based on at least a current amount of system use and a maximum potential system use of a target site at a destination; determining a time parameter based on an amount of time that a message in an application at the destination has been waiting for its processing; determining a load parameter based on a combination of the time parameter and the queue parameter; and modifying the initial distribution pattern based on the following formula: Wd ( i )= Ws ( i )(1− LF ( i )) where: Ws(i) is a weight as set by the initial distribution pattern for a particular destination P(i) in a route; LF(i) is the load parameter for the particular destination; and Wd(i) is an updated weight, for the particular destination P(i) in the route, for revising the distribution pattern; wherein the route consists of a set of destinations, and the weight affects data flow to each destination of the route; and wherein: the load parameter for a particular destination, LF(i), is computed by applying the formula: LF ( i )= Wq LFq+Wet LFet where: Wq and Wet are customizable weights that permit customization of the system; LFq is an initial queue load factor; and LFet is an initial time existence factor; said determining the queue parameter, which is based on the initial queue load factor, comprises applying the formula: LFq=QUP/HLFM where: LFq is the initial queue load factor; HLFM is a preset percentage of the maximum number of messages that a queue can process; and QUP represents the number of messages in the queue as compared to its capacity; and said determining the time parameter, which is based on the initial time existence factor, comprises applying the formula: LFet =( ATT−TTT )/ TTS where: LFet is the initial time existence factor; ATT is calculated based on the average transaction time computed by the application; TTT is a predetermined minimum time; and TTS is a configurable parameter that defines how fast the load factor parameter reacts to an increase in transaction time.