There are some known problems with the recovery implementations of some of the JDBC drivers. For these known problems, Sun Java System Application Server provided some workarounds. By default, these workarounds will not be used unless you explicitly indicate that these workarounds are to be used.
Issue with the Oracle (R) JDBC driver—Oracle XA Resource implementation’s recover method repeatedly returns the same set of in-doubt Xids regardless of the input flag. According to the XA specs, the Transaction Manager should initially call XAResource.recover with TMSTARTSCAN and then call XAResource.recover with TMNOFLAGS repeatedly until no Xids are returned.
Oracle XA Resource’s commit method also has some problems, which are addressed in a workaround provided by the Sun Java System Application Server. To enable this workaround, the following property should be added to the transaction-service subelement in the server.xml file: oracle-xa-recovery-workaround
This property value should be set to true.
Issue with Sybase JConnect 5.2—There are some known problems with JConnect 5.2 driver which are resolved in JConnect 5.5. If the JConnect 5.2 driver is used, to make recovery to work, the following property should be added to the transaction-service subelement in the server.xml file:
sybase-xa-recovery-workaround
This property value should be sent to true.