Distributed transaction occurs because of 2 reasons
1. You are using different connects for the same transaction. eg if parent method calls another method in a different class and that class also creates and uses a new connection.
2. Max_transaction_branches parameter is not set.
Set the values of distributed transactions to
Processes= 3 * No. of Connections
Sessions = (1.1 * Process) + 5
Transactions = 1.1 * Sessions
Distributed_Transactions = Transactions
DML_locks = 4 * Transactions
Open_cursors=1000
Max_Transaction_Branches=32 (Obsolute in 8i: Use the folowing _Max_Transaction_Branches=32 )
Distributed_lock_Timeout=300 (Obsolute in 8i: Use the folowing _Distributed_lock_Timeout=300 )
set Max_transaction_branches to 32. if 8i under unix then set _max_transaction_branches to 32
As for different connections make the parent pass the connection. in the child if the connection exists then don't make a new connection.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.