Designer 10.7 | webMethods BPM Process Development Help | Process Engine Processing | About Joins | Join Timeout when Multiple Timeout Values are Specified
 
Join Timeout when Multiple Timeout Values are Specified
Join timeouts are used to defend against a process that never completes. With a Join timeout, a process that might remain in a "hanging" state is instead executed using an exception path. When the first sequence flow arrives at a Join step, the runtime starts a timer. All other sequence flows to the join have no impact on the timer. The timer is set once and cannot be modified. The documents that arrive after the Join timer is established are queued in the database.
With the timeout in place, the execution continues in one of the following directions:
*The join itself is satisfied and executes the normal pattern.
Once the Join is satisfied, the documents in the queue are moved up to the next position in line for future processing.
*The join timer expires and executes the exception pattern.
The documents that were queued are moved forward in the queue awaiting a new iteration of the Join step. The moving forward of the docs in the queue does not generate a new iteration of the Join, that only occurs when the first sequence flow arrives at the Join step. The timeout is once again set by the value of the first sequence flow that arrives after the timeout.
The Join timeout is set when the very first sequence flow arrives at a new iteration of Join step. It does not use the queued documents to determine the value of the timeout.