我的程序以一个数据库为准,另一个只是select出了一些值,不用考虑另一个数据库的事务问题!

解决方案 »

  1.   

    Even if you set EnableTwoPhaseCommit=true for both TxDataSources of the connection pools, attempting to use two non-XA connection pools in the same distributed transaction will result in:"java.sql.SQLException: Connection has already been created in this tx context for pool named <first pool's name>. Illegal attempt to create connection from another pool: <second pool's name>" when you attempt to get the connection from the second non-XA connection pool.
      

  2.   

    在同一个事务里面打开两个non-XA的connection就会报这个错误。解决方法么,放弃事务 or 到网上找找免费的XA驱动
      

  3.   

    楼上讲的免费xa在哪里找?怎样找?我把属性变为bean后,别的什么也没有动,竟然出现下面的错误:
    javax.naming.LinkException: .  Root exception is javax.naming.NameNotFoundException: Unable to resolve 'app/ejb/lackmaterialplan.jar#makelackmaterialSession/local-home' Resolved: 'app/ejb' Unresolved:'lackmaterialplan.jar#makelackmaterialSession' ; remaining name 'lackmaterialplan.jar#makelackmaterialSession/local-home' <<no stack trace available>>我的程序里没有任何地方涉及到app/ejb/lackmaterialplan.jar的东西,我察看了jndi名字,也没有错,是local接口的makelackmaterialSessionLocal,调用时也没有错误。
    更加想不通的是,我把属性再改回container,还是这个错误,不会变到以前的错误了。
    这到底是怎么回事??
      

  4.   

    你改成bean以后发布的话,与原来的重jndi名。所以出错吧。
    换个jndi名试试。
      

  5.   

    分布式事务需要xa驱动。
    它为分布式事务提供X/open XA接口。
    如果你的是oracle的话。
    可以用:
    weblogic.jdbc.oci