|
在网上找了很久还是没解决我的问题!
我的开发环境是jboss5 myeclipse7 数据库oracle11g MsSql2005
我要实现的功能是 在一个事务里同时对2个数据库进行操作(一个事务里对一个数据库进行操作是可行的)客户端报错
Exception in thread "main" java.util.NoSuchElementException
服务器报
org.hibernate.exception.GenericJDBCException: Cannot open connection
找了些资料要我配xa 的那个XML 我把数据源配好后 把测试表都删了 然后发布 entity 都能映射到数据库 说明我的数据源没问题 但是拿客户端连接的时候还是报一样的错
服务端报
13:01:15,068 ERROR [STDERR] javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。错误: 找不到存储过程 'master..xp_sqljdbc_xa_init'。。
这个事务我到底该如何配置?
客户端代码
InitialContext context = new InitialContext();
UserTransaction ut=(UserTransaction) context.lookup("UserTransaction");
UserManage man =(UserManage) context.lookup("UserManageBean/remote");
try {
ut.begin();
boolean flag = man.add();
if(flag)
{
System.out.println("successful");
}else
{
System.out.println("unsuccessful");
}
ut.commit();
} catch (Exception e) {
ut.rollback();
}
服务端代码
@PersistenceContext(unitName="mssqlunit")
EntityManager emMssql;
@PersistenceContext(unitName="orcalunit")
EntityManager emOracl;
public boolean add()throws Exception
{
Users u = new Users();
u.setUname("dasd");
u.setUpass("dasd");
emMssql.persist(u);
Person p = new Person();
p.setPname("ff");
p.setPpass("fas");
emOracl.persist(p);
return true;
} |
|