|
Problem(Abstract) |
Locks are left open in the Microsoft® SQL Server database,
which might result in transaction time-outs and other locking-related
problems. The Microsoft Distributed Transaction Coordinator on your
Microsoft SQL Server machine shows unresolved transactions and your
Microsoft SQL Server database shows zombie processes with a -2 SPID. |
|
|
|
Cause |
The transaction time-outs and other locking-related
problems occur because the global transaction was not rolled back. In
these cases, the transaction branch remains active in the Microsoft SQL
Server. Therefore, the database continues to hold locks from operations
that are performed within the global transaction prior to the network
failure. This situation causes your application server to issue time-out
errors or other locking-related errors.
Because WebSphere® Application Server adheres to the Java™ Transactions
Architecture (JTA) Specification and the XA Specification, the product
does not roll back two-phase transactions that fail prior to the prepare
phase due to network errors. The specifications mandate that the database
or JDBC driver, rather than the application server, attempt to recoup
these scenarios. However, neither the Microsoft SQL Server nor the JDBC
drivers terminate two-phase transactions after connections are lost. |
|
|
Resolving the
problem |
Manually terminate the transaction within the Microsoft
SQL Server after the network error occurs. For bean-managed transactions,
you also can take the preventative measure of coding a transaction
time-out on the user transaction. The Microsoft SQL Server cleans up
transactions that last longer than the time-out. |
|
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
WebSphere Application Server for z/OS |
|
|
6.1, 6.0.2, 6.0.1, 5.1, 5.0 |
|
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|