请问,以tomcat5.0(或更高版本)为容器,怎样配置ibatis2.3的jta事务管理?谢谢。

解决方案 »

  1.   

    <transactionManager type="JDBC">
         数据源的事务
         可以是  JDBC JTA等
      

  2.   

    =========
    请问有没有配置成功过?我在tomcat5.5下是这样配置的
    1.server.xml中配置数据源等
    <Context docBase="ibatis" path="/ibatis" reloadable="true" source="org.eclipse.jst.j2ee.server:ibatis">
       <Resource name="UserTransaction1" auth="Container" type="javax.sql.DataSource" factory="org.objectweb.jndi.DataSourceFactory"
    username="reading" password="reading" driverClassName="oracle.jdbc.driver.OracleDriver"
                   url="jdbc:oracle:thin:@10.46.23.88:1521:ORCL"
                 maxActive="30" maxIdle="30"/>
                <Transaction factory="org.objectweb.jotm.UserTransactionFactory"   jotm.timeout="60"/>
        <Resource name="jdbc/ibatisDataSource" auth="Container" 
        type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000"
        username="reading" password="reading" 
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@10.46.23.88:1521:ORCL"/>
      </Context>
    2.在sqlmap.xml中配置
    <transactionManager type="JTA" >
      <property name="UserTransaction" value="java:comp/env/UserTransaction1"/>
      <dataSource type="JNDI">
        <property name="DataSource" value="java:comp/env/jdbc/ibatisDataSource"/> 
      </dataSource>
    </transactionManager>
    会报这个异常:
     Error initializing JtaTransactionConfig while looking up UserTransaction (java:comp/env/UserTransaction1).  Cause: java.lang.ClassCastException: org.enhydra.jdbc.pool.StandardXAPoolDataSource
      

  3.   

    从错误信息来看,楼主的Tomcat数据源配置可能有问题,对比这个,看看少了哪一步:
    http://blog.csdn.net/aloie/archive/2008/04/25/2329441.aspx
      

  4.   

    用jdbc事务方式,数据源配置可以使用,采用jta事务方式不能用.