Dynamic Message Queue Thresholds for Transitory Processing Failures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing messaging systems fail to effectively handle situations where consuming applications are unable to process messages due to either 'poison' messages or transitory problems, leading to inefficient handling of valid messages and increased administrative intervention.

Innovation Solution

A method and apparatus that dynamically manage message availability and consumer access to a queue by tracking retry and consecutive failure counts, moving problematic messages to a side queue or disabling consumer access based on predetermined thresholds, allowing for differentiated handling of message and application issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the messaging system automatically moves repeatedly failed messages to a dead letter queue, then the consuming application can process subsequent messages, but valid messages may be incorrectly moved during transitory application problems

Engineering Contradiction:
Improvemessage processing reliabilityVSAvoidmessage processing productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a dynamic threshold mechanism that adjusts the failure count threshold based on the consuming application's operational state. The threshold is not fixed but can be modified to accommodate transitory problems versus persistent failures, allowing the system to adapt its behavior dynamically.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback by monitoring the outcome of message processing attempts and using this information to adjust the threshold. When applications experience transitory problems, the feedback mechanism allows temporary suspension of the threshold enforcement, preventing valid messages from being incorrectly moved to the dead letter queue.

Inventive Principle:
Principle #23Feedback

2Reliability

If the consuming application is stopped when failure threshold is reached, then administrative intervention is required, but this causes delays in resolving transitory problems and prevents timely processing of valid messages

Engineering Contradiction:
Improveapplication stabilityVSAvoidtime for administrative intervention
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent makes the threshold dynamic rather than static. During transitory application problems, the threshold can be temporarily suspended or adjusted, allowing the system to continue operating without immediate administrative intervention. This dynamic adjustment reduces the loss of time while maintaining application stability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system takes preliminary action by monitoring failure patterns and proactively adjusting the threshold before administrative intervention becomes necessary. This allows transitory problems to be handled gracefully without requiring immediate administrator involvement, reducing response time.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If the threshold for moving messages to dead letter queue is set low, then poison messages are quickly isolated, but valid messages are incorrectly moved during temporary application failures

Engineering Contradiction:
Improvemessage classification precisionVSAvoidfailure detection complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent introduces a dynamic threshold that adjusts based on the consuming application's operational context. During transitory problems, the threshold is temporarily raised or suspended, preventing premature classification of valid messages as poison messages. This dynamic approach improves classification precision without significantly increasing detection complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of the failure count threshold based on operational conditions. By adjusting this critical parameter dynamically, the system can distinguish between temporary failures and persistent poison messages more accurately, improving message classification precision.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If the threshold for stopping applications is set low, then problematic applications are quickly identified, but this causes unnecessary stops during transitory database connection issues

Engineering Contradiction:
Improveapplication monitoring reliabilityVSAvoidapplication operation continuity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent makes the application stopping threshold dynamic. During transitory database connection issues, the threshold is temporarily suspended or adjusted, allowing applications to continue operating without being stopped. This maintains ease of operation while preserving monitoring reliability through continued observation of failure patterns.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system provides beforehand cushioning by introducing a buffer in the form of a dynamic threshold that can absorb temporary failures without triggering application stops. This cushioning mechanism protects application continuity during transitory problems while maintaining the ability to identify genuine issues.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9626236B2Method, apparatus and computer program for administering messages which a consuming application fails to process
Publication Date: 2017.04.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9626236B2 patent drawing
  • US9626236B2 patent drawing
  • US9626236B2 patent drawing

AI summary

Disclosed is a method for administering messages. In response to a determination that one or more consuming applications have failed to process the same message on a queue a predetermined number of times, the message is made unavailable to consuming applications. Responsive to determining that a predetermined number of messages have been made unavailable to consuming applications, one or more consuming applications are prevented from consuming messages from the queue.