try{
kddLocal = Tbhf7kddUtil.getLocalHome().findByPrimaryKey(kddPK); //报错处
}catch(ObjectNotFoundException e){
debuglog("---------------------- kddLocal is null " );
} 寻找答案中......
kddLocal = Tbhf7kddUtil.getLocalHome().findByPrimaryKey(kddPK); //报错处
}catch(ObjectNotFoundException e){
debuglog("---------------------- kddLocal is null " );
} 寻找答案中......
解决方案 »
- ext开发的系统,还不错,jacob_liang的系统平台、统一用户
- was内存上涨问题
- 写一个函数将整型数据6789变换为9876;
- not-null property references a null or transient value
- tomcat在马上要启动完成的时候为什么又要重新启动一次?
- 模块管理, 例如 CVS
- struts自带的数据源org.apache.struts.util.GenericDataSource怎么不支持记录集的last()
- ldap、证书和活动目录,请大家指点
- SQLSERVER中DateTime型字段,怎么取出,取出后一般怎样转换成java的日期对象?
- 关于addShutdownHook方法使用的疑惑?
- 窗口间交互问题,高手请进(小弟先谢谢,)?????????
- 要学习struts,ejb,jndi,jive等,java基础需要深到什么程度?
我的程序中涉及到两个数据源,TWO-PHASE 是肯定的了.
给出你的数据库驱动类名
驱动器名: COM.ibm.db2.jdbc.net.DB2Driver
服务器:websphere在我的程序中大多采用的是cmp,有少量的标准的jdbc(用来查询).出错处在 Tbhf7kddUtil.getLocalHome().findByPrimaryKey();
这个与 是否是XA有关么?请指教......
连接类型选为 javax.sql.XADataSource
我不知道DB2的XA驱动类名 你找找DB2的JDBC驱动类包,象SQLServer的是:
com.microsoft.jdbcx.sqlserver.SQLServerDataSource 里面有jdbcx关键字
COM.ibm.db2.jdbc.DB2XADataSource
我的bean里用到了两个数据源,但对其中的一个是用DataSource.getConnetion()的,大部分东西都是用CMP做的.
用XADataSource是不是得先把它数据源配成XADataSource?若是,假如我其它的bean不想让它成为一个XADataSource,而仅仅是DataSource怎么办?若不是,在(XADataSource)intialcontext.getXADataSource("jdbc/dbls");时,ClassCastException.
我搜了一下,下面的这个帖子和我有相似之处.都是混用了JDBC,CMP.都具有多个数据源http://www.huihoo.com/bbs/chinajavaworld/forum34/192.html但好像作者也没有什么好的方法.
并将你应用服务器的数据库连接类型设置为javax.sql.XADataSource就可以了假如数据源的JNDI是: jdbc/dbls
那么在企业Bean中这样打开数据库连接: InitialContext ic = new InitialContext();
DataSource db1 = (DataSource) ic.lookup("java:comp/env/jdbc/dbls"); 注意这里是 DataSource 而不是 XADataSource
在我的session bean里有调用jdbc和cmp的代码,需要从外部数据库根据条件查出数据
并插入到内部数据库中.在jdbc中穿插调用了cmp(我原来用的都是cmp,后来总是报如上错误
才改为cmp和jdbc混和用的,改后的东东在别人机子上能跑.我也不明白是什么原因.)如果是jdbc,则在prepareStatement()处报InvactionTargetException.若cmp,则findByPrimaryKey()
处InvactionTargetException.
COM.ibm.db2.jdbc.DB2XADataSourc
我的理解是,后者在用到2PC时才会用到.但我在设置数据源的时候,
整个应用程序要么为前者,要么为后者,鉴于在某些情况下需要用到2PC,
所以,我的理解是,就只能用后者.不知这么理解是否正确.
[04-4-13 14:30:37:219 CST] 26b2ac41 LocalTransact E WLTC0032E: 一个或多个资源回滚。一个未解析的 LocalTransactionContainment 有一个未解析的回滚操作换成 DB2ConnectionPoolDataSource 就没问题.
一个应用只能配一个DataSource驱动呀.....
提示事务回滚的原因可能是: XA连接参与的是JTA事务管理,它并不支持普通JDBC连接的事务自动提交(默认方式)功能,所以如果采用了XA连接的话,需要在代码中显式界定事务边界,比如:
InitialContext ic = new InitialContext();
UserTransaction ut = ejbContext.getUserTransaction();
ut.begin(); //事务开始 DataSource db1 = (DataSource) ic.lookup("java:comp/env/jdbc/DBLS1");
DataSource db2 = (DataSource) ic.lookup("java:comp/env/jdbc/DBLS2");
Connection con1 = db1.getConnection();
Connection con2 = db2.getConnection();
// ... 数据处理
// ... 数据处理 ut.commit(); //事务提交 //捕获异常代码省略
http://www.csdn.net/Develop/article/26/26478.shtmhttp://www-900.ibm.com/developerworks/cn/java/j-dao/