消息驱动bean使用数据源问题

SadHeart 04-07-29

我在websphere中使用消息驱动bean来调用在was中指定的数据源,结果频繁出现事务问题:

如果我的连接工厂中指定启用XA支持,然后调用
COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource
的数据源,就会出现什么非法使用在两阶段提交xx中使用一阶段资源等等。然后有不少消息在消息驱动bean中无法获取。达到 MDB DataExchangeMDB,JMSDestination de/a2bQ 的最大消息传递重试计数 0,MDBListener 已停止,不知道这个EJB的事务该怎么处理?数据源到底该怎么做!



如果我的连接工厂不启用XA支持,然后使用数据源COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource时就会出现:
在全局事务中发生非法尝试使用多个仅有一阶段能力的资源。
[04-7-29 8:44:35:199 CST] 6ba2675 LocalTransact E J2CA0030E: 方法 enlist 捕捉到 java.lang.IllegalStateException。
(当尝试使用事务管理器为当前事务从数据源 jdbc/dsOnServer 将资源加入列表时),并抛出 Exception。
[04-7-29 8:44:35:760 CST] 6ba2675 SystemErr R java.sql.SQLException: DSRA9002E: ResourceException 带有错误代码 null:javax.resource.ResourceException: enlist: caught Exception
达到 MDB DataExchangeMDB,JMSDestination de/a2bQ 的最大消息传递重试计数 0,MDBListener 已停止


倘若我使用COM.ibm.db2.jdbc.DB2XADataSource的数据源,则报我的驱动不支持,请大家指点一下,我该怎么办啊!

请大虾们指点啊!
我是连接的远程DB2

1
banq
2004-08-02 14:00

建议了解一下2PC事务机制。

SadHeart
2004-08-04 14:27

我看过了,但是不知道为什么出这个错误,请高手给个提示,谢谢!