update WebSphere Security fails with my CustomRegistry IBM Interface
implementation class using a Oracle8i as registry and
datasource.getConnection().
I see a warn: Illegal use of 1PC resource in transaction. Driver for the
datasource is a 1PC OracleConnectionPoolDataSource.
No fails if I use DriverManager.getConnection(), but we don't like this...
What we would like you to know is that the problem seems to came out only
when IBM WAS try to perform an update to the security using the class that
implement the CustomRegistry interface. This task is performed if we modify
the security from the administration console.
While the server side application is running the authentication process
works fine. It is worth to notice that during the application
authentication the same methods are invoked.
Tryng a version of the implementation class for the CustomRegistry interface
that gets the connection using the DriverManager java class, the
security update from the administration console works properly, and changing
then the class with the one that gets the connections from the
data source no exception is been thrown. But this is a workaround ant it is
not useful for production system.
Someone else solved the problem installing a 2PC driver, but there is no
official documentation, so few questions:
- where can I find documentation on a CustomRegistry using a database ?
- Using the 2-PC driver it is mandatory to use XAConnection in the
implementation of the CustomRegistry interface? In this case, could you
send me an example ?
- Using the 2-PC do we need any installation/configuration requirement ?
thanks for wour help,
Best regards
Gianni
If your CustomRegistry class uses a oracle as registry, you MUST use the 2PC
driver (2-phase commit) oracle.jdbc.xa.client.OracleXADataSource as
Implementation Class of your JDBC Provider (even if you don't use a
XAConnection in your class). I found a similar problem in WebSphere
newsgroup, and solution is the same. If you'll have a problem when
restarting the server, check the following : when using distributed
transactions XA, the connected Oracle user requires SELECT privileges on the
system view: grant select on ba_pending_transactions to <user> (User ID of
your JDBC Provider).