websphere 一个日常小问题的处理
说是说一个小问题不过这个问题特别影响心情,今天十在是受不了老狠下心来搞定它
?
问题很简单就是关于websphere 下面的这个提示
[09-5-21 15:28:35:874 CST] 00000013 InternalOracl I DSRA8203I: Database 产品名:Oracle[09-5-21 15:28:35:877 CST] 00000013 InternalOracl I DSRA8204I: Database 产品版本:Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.7.0 - Production[09-5-21 15:28:35:879 CST] 00000013 InternalOracl I DSRA8205I: JDBC driver 名:Oracle JDBC driver[09-5-21 15:28:35:881 CST] 00000013 InternalOracl I DSRA8206I: JDBC driver 版本:10.2.0.4.0[09-5-21 15:28:35:882 CST] 00000013 InternalOracl I DSRA8212I: DataStoreHelper 名称为:com.ibm.websphere.rsadapter.Oracle10gDataStoreHelper@19b8e57。[09-5-21 15:28:35:897 CST] 00000013 WSRdbXaResour E DSRA0304E: 发生 XAException。XAException 内容和详细信息是:The cause is : null。[09-5-21 15:28:35:899 CST] 00000013 WSRdbXaResour E DSRA0302E: 发生 XAException。错误代码为:XAER_RMERR (-3)。异常为:<null>[09-5-21 15:28:35:901 CST] 00000013 XARminst E WTRN0037W: xa_recover 操作时事务服务遇到错误。资源是 com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@19df39a。错误代码为 XAER_RMERR。异常堆栈跟踪遵循:javax.transaction.xa.XAException at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:705) at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:964) at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:138) at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:687) at com.ibm.ws.Transaction.JTA.PartnerLogTable.recover(PartnerLogTable.java:524) at com.ibm.ws.Transaction.JTA.RecoveryManager.resync(RecoveryManager.java:1859) at com.ibm.ws.Transaction.JTA.RecoveryManager.run(RecoveryManager.java:2580) at java.lang.Thread.run(Thread.java:595)
?
这个提示它不影响开发但它以每2秒的速度持续在控制台打印,这对于我们开发来讲就是灾难!为了它没少受气........
?
今天终于搞定了,十在是开心!解决办法如下
?
原因是:was配置的连接oracle的用户没有恢复权限。建议给连接用户配上恢复权限。
?
一般可以:
在sqlplus下,以sysoper或者sysdba运行:
【grant select on DBA_PENDING_TRANSACTIONS to PUBLIC】
或者指定特定的用户:
【grant select on DBA_PENDING_TRANSACTIONS to your_connect_user】
也可以通过修改tranlog目录的名称,来阻止was去请求oracle进行xa的事务恢复。
?
注意:赋权时,需要以system或者sys登陆,并且用sysdba身份。