When using EXTERNAL transactions, the startTransaction() method does nothing. So JTA's transaction is not being called either - EXTERNAL means that iBATIS is completely trusting some external source to manage transactions (like an EJB container).
If you want to control JTA from withing iBATIS, use the JTA transaction manager. Jeff Butler On 6/29/07, ashok <[EMAIL PROTECTED]> wrote:
I am trying to add Ibatis persistence to struts , cannot use springs. When daoManager.startTransaction(); how can we ensure that the JTA's transaction is being called and not the Ibatis Automatic transactions. Meindert wrote: > Ibatis DAO has been depreciated.. Use spring instead > > -----Original Message----- > From: ashok [mailto:[EMAIL PROTECTED] > Sent: 29 June 2007 09:53 AM > To: ibatis > Subject: Global Transactions or Ibatis's Automatic transactions > > Hi > > Does the daoManger.startTransaction(); created refers to the Global > transactions or Ibatis Automatic transactions? > What changes to be made if I need to use global transactions? > > In my DaoIntializer class I create the daoManager as follows : > > Reader reader = Resources.getResourceAsReader ("com/example/config/dao.xml"); > daoManager = DaoManagerBuilder.buildDaoManager(reader); > > and dao.xml, sqlMapConfig.xml and web.xml contains the following enteries: > > In my dao.xml : > <daoConfig> > <context> > <transactionManager type="SQLMAP"> > <property name="SqlMapConfigResource" > value="com/example/config/sqlMapConfig.xml" /> > </transactionManager> > > <dao interface="com.example.ibatis.UserTableDao" > implementation="com.example.ibatis.UserTableDaoImpl" /> > </context> > </daoConfig> > > In my sqlMapConfig.xml > > <sqlMapConfig> > > <settings cacheModelsEnabled="true" enhancementEnabled="true" > lazyLoadingEnabled="true" errorTracingEnabled="false" > maxRequests="32" > maxSessions="10" maxTransactions="5" > useStatementNamespaces="false" /> > > <transactionManager type="EXTERNAL"> > <property name="UserTransaction" > value="java:comp/env/UserTransaction"/> > <property name="SetAutoCommitAllowed" value="false"/> > <dataSource type="JNDI"> > <property name="DataSource" value="java:comp/env/jdbc/exampleDB" /> > </dataSource> > > <sqlMap resource="com/example/ibatis/sqlMap/UserTable.xml" /> > </sqlMapConfig> > > > > In my web.xml : > > <resource-ref> > <description>Example DBConnection</description> > <res-ref-name>jdbc/exampleDB</res-ref-name> > <res-type>javax.sql.DataSource</res-type> > <res-auth>Container</res-auth> > </resource-ref> > > <resource-ref> > <description>Example Transaction Manger</description> > <res-ref-name>UserTransaction</res-ref-name> > <res-type>javax.transaction.UserTransaction</res-type> > <res-auth>Container</res-auth> > </resource-ref> > > > > > > > > > > > > > > > > > > > > Regards > Ashok > >
