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