Resource Name Aliasing for JTA Transaction Branch Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing JTA systems face challenges in managing resource managers within global transactions, particularly in ensuring consistent branch qualifiers across multiple resource connections, which can lead to deadlocks and require disassociating global transactions from connections, making it difficult in environments where container interception is not possible.

Innovation Solution

The method involves creating an alias for a registered resource, allowing multiple branches of a global transaction to use the same resource participant data structure, with the alias-derived branch qualifier ensuring distinctness and avoiding conflicts, and persisting this information for recovery purposes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a consistent branch qualifier is assigned based on resource manager name for multiple application components, then deadlock is avoided, but different resource manager contexts (security credentials, isolation level) cannot be specified

Engineering Contradiction:
Improvedeadlock preventionVSAvoidresource manager context specification
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The invention segments the branch qualifier into two independent components: a resource-identifying portion (resource manager name) and a branch-identifying portion (application component identifier). This segmentation allows the resource manager name to remain consistent for deadlock prevention while the branch identifier distinguishes different application components needing different contexts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention adds a new dimension to the branch qualifier by incorporating an application component identifier alongside the resource manager name. This dimensional expansion transforms the single-dimension qualifier (resource name only) into a multi-dimensional qualifier that can simultaneously ensure consistency and provide differentiation for context specification.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If separate branch qualifiers are used for each application component accessing the same resource manager, then different resource manager contexts can be specified, but deadlock occurs due to non-shared locks

Engineering Contradiction:
Improveresource manager context specificationVSAvoiddeadlock prevention
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The branch qualifier is segmented into resource-identifying and branch-identifying portions. The resource-identifying portion (resource manager name) is kept consistent across components to enable lock sharing, while the branch-identifying portion distinguishes components for context specification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention merges the resource manager name (for lock compatibility) and application component identifier (for context differentiation) into a single composite branch qualifier structure, allowing both requirements to coexist.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If a single branch qualifier is assigned across resource manager connections, then transaction management is simplified, but connections cannot be enlisted and delisted without intercepting application calls

Engineering Contradiction:
Improvetransaction managementVSAvoidcontainer interception requirement
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The branch qualifier structure is segmented to include connection-specific identifiers, enabling the system to track and manage individual connection enlistments and delistments without requiring container-wide interception of application calls.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary assignment of connection identifiers to branches during connection enlistment, establishing a mapping that enables automatic tracking and management of connection states without requiring continuous interception or complex runtime intervention.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8180746B2Method and assignment of transaction branches by resource name aliasing
Publication Date: 2012.05.15 ORACLE INT CORP
  • US8180746B2 patent drawing
  • US8180746B2 patent drawing
  • US8180746B2 patent drawing

AI summary

The Java transaction API for use with global transaction can use a system using alias for the branch ID. The alias can allow multiple branch IDs for single resource.