|
Problem |
"CONM6000W: A resource was unable to process the two phase
commit prepare request as it only supports the one phase commit protocol.
The datasource was: <datasource name>" errors precede
javax.transaction.TransactionRolledbackExceptions in the stdout.log |
|
Cause |
The CONM6000W error is due to multiple user IDs
being accessing the database from within a single transaction. |
|
Solution |
A possible scenario where this could occur is:
- The database server is configured to allow two user IDs
(userid1 and userid2) to access a particular application database.
- The datasource configured in WebSphere® uses userid1.
- The application obtains the user ID information from a
properties file. This properties file contains userid2.
The CONM6000W error can occur if userid1 and userid2 are not the same. The
application developer has the option of providing the user ID and password
information on the getConnection(String userid, String password) call. If
no user ID and password is passed on the getConnection( ), the datasource
configuration in WebSphere Application Server is used to provide the user
ID and password.
In the example above, userid1 and userid2 are not the same. If, in a
transaction, both the getConnection( ) and getConnection userid2,
password2) are used, it can result in a CONM6000W error.
To avoid this problem, make sure that within a transaction, all
connections made to a particular database use the same user ID and
password. |
|
|
|
|
|
|