oracle enlisttransaction,WAS运行时抛出的两种异常,经过google找到解决方案,记录以备案...
在第一次运行范例时,您可能会得到以下错误:
WSRdbDataSour I DSRA8203I:
Database product name : Oracle
WSRdbDataSour I DSRA8204I: Database product version :
Personal Oracle9i Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
WSRdbDataSour I DSRA8205I: JDBC driver name : Oracle JDBC driver
WSRdbDataSour I DSRA8206I: JDBC driver version : 9.2.0.1.0
WSRdbXaResour E DSRA0304E:
XAException occurred. XAException contents and details are:
The XA Error is : -3
The XA Error message is : A resource manager error has occurred in the transaction branch.
The Oracle Error code is :
65535
The Oracle Error message is:
Internal XA Error
The cause is : null.
WSRdbXaResour E DSRA0302E: XAException occurred. Error code is:
XAER_RMERR.
Exception is:
RegisteredRes E WTRN0078E:
An attempt by the transaction manager to call start
on a transactional resource has resulted in an error.
The error code was XAER_RMERR. The exception stack trace follows:
oracle.jdbc.xa.
OracleXAException
at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1157)
at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:295)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:927)
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1267)
at com.ibm.ws.Transaction.JTA.JTAResourceBase.start(JTAResourceBase.java:164)
at com.ibm.ws.Transaction.JTA.RegisteredResources.startRes(RegisteredResources.java:389)
at com.ibm.ws.Transaction.JTA.TransactionImpl.enlistResource(TransactionImpl.java:1903)
at com.ibm.ws.Transaction.JTA.TranManagerSet.enlist(TranManagerSet.java:494)
. . .
该错误是因为事务管理程序不能将事务转换为 XA 事务。Oracle 明确的返回错误
XAER_RMERR ,错误代码编号为 65535。
ORA-65535 不是一个有效错误代码,并且
XAER_RMERR
实质上意味着 XA 发生了某些错误。这说明您的 Oracle 数据库没有被配置为支持 XA 事务。因此,当 WebSphere
Application Server 事务管理程序命令 Oracle 事务管理程序参与这个 XA 事务时,Oracle
拒绝该命令并抛出这个异常。
解决方法是运行 Oracle 安装中包含的两个脚本。这很可能需要通过您的 Oracle DBA 来执行,您必须以
SYSOPER 或
SYSDBA 身份登录到 Oracle,以拥有足够的权限来运行这些脚本。这些脚本是:
directory:
\javavm\install
file:
initxa.sql
file:
initjvm.sql
initxa.sql 脚本配置 XA 数据库。一旦它成功运行,您的数据库就被配置为 XA。该脚本在您第一次运行的时候可能成功。不幸的是,由于一些数据库的内存空间太小,该脚本也可能无法成功运行。为修改该问题,运行
initjvm.sql 脚本。它可能也会运行失败,但是在失败时,该脚本会说明哪个参数需要调整。参数被保存在该文件中:
directory:
\database
file:
init.ora
这个表说明了有两个参数的值特别需要增大。对于特定的数据库配置可能需要调整不同的参数。
Oracle Initialization Values
Parameter Name
Minimum Value
java_pool_size
12000000
shared_pool_size
24000000
一旦
initjvm.sql 运行成功,则
initxa.sql 就应该也可以成功运行。Oracle 数据库需要重新启动,以使修改生效。您可以重新启动 WebSphere Studio 测试服务器并重新尝试运行该范例。
您
也许能够很正常的运行该范例,起码在修改了这些问题之后变得正常。您可以开发通过 Oracle 使用 XA
事务的应用程序并正常运行该程序。但是可能有一天您会发现无法启动 WebSphere Application
Server。该问题的发生可能是由于您没有正常的关闭服务器,导致 WebSphere 和/或 Oracle 崩溃。WebSphere
的启动错误类似于以下所示:
SecurityCompo I SECJ0243I: Security service started successfully
SecurityCompo I SECJ0210I: Security enabled false
WSRdbXaResour E DSRA0304E:
XAException occurred.
XAException contents and details are: The cause is : null.
36185510 WSRdbXaResour E DSRA0302E: XAException occurred.
Error code is:
XAER_RMERR. Exception is:
XARminst E WTRN0037W:
The transaction service encountered an error
on an xa_recover operation. The resource was J2CXAResourceInfo :
cfName = XA Example Data Source
configProps = [Deployed Resource Adapter Properties]
OptionC_authDataAlias java.lang.String scott
UserName java.lang.String
scott
Password java.lang.String ********
TransactionResourceRegistration java.lang.String dynamic
InactiveConnectionSupport java.lang.Boolean true
secureMode boolean true
. . .
The error code was XAER_RMERR. The exception stack trace follows:
javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:626)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:672)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:130)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:673)
at com.ibm.ws.Transaction.JTA.RecoveryManager.resync(RecoveryManager.java:1369)
at com.ibm.ws.Transaction.JTA.ResyncThread.run(RecoveryManager.java:1440)
ApplicationMg A WSVR0200I: Starting application: IBMUTC
该错误是由于事务管理程序无法执行 XA 恢复操作。Oracle 明确的返回错误 XAER_RMERR。作为最后一个错误,
XAER_RMERR
指出了 XA 发生了一些问题。这表明 WebSphere 没有使用 Oracle
正常的关闭连接,可能是由于其中一个服务器没有正常关闭,或者是全都没有正常关闭。因为 WebSphere Application Server
试图重新建立连接,则 Oracle 需要回滚进程中的任何事务,但是使用 WebSphere 登录到数据库的 Oracle 用户(在本范例中是 scott )不能执行恢复工作。
解决方法是为 Oracle 用户赋予权限以执行恢复操作,特别是访问内部使用的 Oracle 表以管理恢复。在 SQL Plus 中以
SYSOPER 或
SYSDBA 身份运行下列命令:
grant select on DBA_PENDING_TRANSACTIONS to PUBLIC
如果您不希望将该权限授予所有的用户,可以仅指定错误中列出的用户(在本范例中是 scott)。然后重新启动数据库,这一次您应该能够成功的重启 WebSphere 服务器。
posted on 2007-02-04 12:23 jncz 阅读(2540) 评论(0) 编辑 收藏
oracle enlisttransaction,WAS运行时抛出的两种异常,经过google找到解决方案,记录以备案...相关推荐
- Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法
当我把Eclipse中的 Android ADT插件从21.1.0更新到22.0.1之后,安装后运行程序抛出java.lang.VerifyError异常. 经过调查,终于找到了一个有效的解决办法: ...
- 解决oracle数据库的表中存在异常日期值在查询时抛出ora-01841错误的办法
生产环境的服务器上,在查询时抛出SQLDataException,错误代码为ora-01841 ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0 经排查是 ...
- AES加密时抛出java.security.InvalidKeyException:#160;Illegal#160;key#160;size#160;or#160;def...
原文:AES加密时抛出java.security.InvalidKeyException: Illegal key size or def 使用AES加密时,当密钥大于128时,代码会抛出 java. ...
- 错误记录一:线程通信时抛出Exception in thread “Thread-0” java.lang.IllegalMonitorStateException异常
错误记录一:线程通信时抛出Exception in thread "Thread-0" java.lang.IllegalMonitorStateException异常 完整异常: ...
- java sleep 抛出异常_PowerMockito模拟Thread.sleep()时抛出中断异常的场景
点击蓝色字免费订阅,每天收到这样的好信息 前言:最近有不少粉丝关注本公众号.并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧.大家想买什 ...
- linux的android工作室,Android工作室在启动时抛出错误,linux机器
我只是将我的Android Studio从1.5升级到2.3,我只是解压缩文件夹并复制到下载文件夹中,现在当我启动android studio时,我收到了此消息:Android工作室在启动时抛出错误, ...
- PHP 安装 扩展时 抛出 /usr/local/Cellar/php@7.1/7.1.25/pecl 异常解决
PHP 安装 扩展时 抛出 /usr/local/Cellar/php@7.1/7.1.25/pecl 异常解决 参考文章: (1)PHP 安装 扩展时 抛出 /usr/local/Cellar/ph ...
- android 数组指针异常,Android JSON解析Json数组是[]在解析时抛出空指针异常,如何以正确的方式写入?...
我有复杂的API,我解析并显示在列表视图中,我将努力解析JSONArray.Here我将在斗争之后Json数组这是在帖子json对象"tags_name":["Activ ...
- oracle布尔true 1,将.NET布尔数据类型映射到实体框架中的oracle数(1,0)会抛出错误
将.NET布尔数据类型映射到.edmx文件中的oracle号(1,0)会抛出以下错误. Error 2019: Member Mapping specified is not valid. The t ...
最新文章
- 预测性智能的力量:AI 和机器学习将如何改变美国政府决策?
- 1.arm的linux系统搭建
- Qt入门——三个臭皮匠顶个诸葛亮
- 【图专题】三篇图神经网络中的图核函数:主要学习图的拓扑结构从而解决图分类问题...
- VTK:PolyData之PointCellIds
- idea maven插件tomcat内存溢出
- Jmeter如何进行http接口测试
- dell计算机一直重启,为什么电脑老重启
- 微信小程序查询数据库
- c# 将dwg文件转化为pdf
- web数字可视化有哪些实现的方法?
- java实现易宝支付
- 解封ChatGPT我只用了一句话
- 有了天猫精灵智能套组,享受管家级别智能服务
- 如何获取PDF修改权限并编辑文档?
- word文档加密经验实战分享
- 从循环神经网络到卷积神经网络
- 【公务员考试】结构化面试时间一般多长?
- 解决WindTerm屏幕锁定
- Neoverse Roadmap