Any idea why a transaction gets rolled back but it does not produce any error or go through the catch statement?  The identity field value gets incremented but no record appears in a select statement.  I can run the stored procedure with the values supplied just fine in SQL Server Enterprise Manager. 

 

I have used both simple and DBCP datasource types with the same results.  We use connection pooling but it is not container managed.  There are other pages of this application and other applications that are set up in the same way (same sql config xml file, same way of calling the sql map, etc.), and they do not experience this error.

 

> try {

>         sqlMap.startTransaction();

>         String necActionId = request.getParameter("necActionId");

>         if(necActionId != null){

>                 Recalc recalc = new Recalc();

>                 int nec = Integer.parseInt(necActionId);

>                 recalc.setNecActionId(nec);

>                 String reasonId = request.getParameter("reasonId");

>                 int rsnId = Integer.parseInt(reasonId);

>                 recalc.setReasonId(rsnId);

>                 int oldRequestId = Integer.parseInt(id);

>                 recalc.setRequestId(oldRequestId);

>                 String newRequest =

> (String)sqlMap.queryForObject("copyRecalc", recalc);

>         }

>         sqlMap.commitTransaction();

> } catch (Exception e) {

>         e.printStackTrace();

> } finally {

>         try {

>                 sqlMap.endTransaction();

>         } catch (Exception e) {

>                 e.printStackTrace();

>         }

> }

>

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

 

<!DOCTYPE sqlMapConfig

PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"

"http://www.ibatis.com/dtd/sql-map-config-2.dtd">

 

<sqlMapConfig>

 

      <settings maxRequests="256"

            maxSessions="64"

            maxTransactions="16"

            cacheModelsEnabled="true"

            lazyLoadingEnabled="true"

            enhancementEnabled="true"          

      />

       

      <transactionManager type="JDBC">

<!--        <dataSource type="SIMPLE">    -->

            <dataSource type="DBCP">

                  <property name="JDBC.Driver" value="com.jnetdirect.jsql.JSQLDriver" />

                  <property name="JDBC.ConnectionURL" value="jdbc:JSQLConnect://myserver:1433/database=pqrst"/>

                  <property name="JDBC.Username" value="abc" />

                  <property name="JDBC.Password" value="xyz123" />

                  <property name="Pool.MaximumActiveConnections" value="100" />

                  <property name="Pool.MaximumIdleConnections" value="30" />

                  <property name="Pool.MaximumWait" value="60000" />

                  <property name="Pool.ValidationQuery" value="select 1" />

                  <property name="Pool.LogAbandoned" value="false" />

                  <property name="Pool.RemoveAbandoned" value="false" />

                  <property name="Pool.RemoveAbandonedTimeout" value="50000" />

            </dataSource>

      </transactionManager>

     

      <sqlMap resource="com/mbh/esln/sra/sqlmaps/RequestSQL.xml"/>

</sqlMapConfig>

 

 

Steve Jagels

Sr. Programmer / Analyst

(314) 387-5131

[EMAIL PROTECTED]

 

Reply via email to