ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicholoz Koka Kiknadze" <kikna...@gmail.com>
Subject Re: Help with what "commitRequired=true" param means
Date Tue, 10 Jun 2008 14:03:56 GMT
Here's extract from iBatis docs:

*Normally iBATIS will not commit transactions unless an insert, update, or
delete operation has been
performed. This is true even if you explicitly call the commitTransaction()
method. This behavior
creates problems in some cases. If you want iBATIS to always commit
transactions, even if no insert,
update, or delete operation has been performed, then set the value of the
commitRequired attribute to true.
Examples of where this attribute is useful include:
    1.   If you call a stored procedures that updates data as well as
returning rows. In that case you would
         call the procedure with the queryForList() operation – so iBATIS
would not normally commit the
         transaction. But then the updates would be rolled back.
    2.   In a WebSphere environment when you are using connection pooling
and you use the JNDI
         <dataSource> and the JDBC or JTA transaction manager. WebSphere
requires all transactions on
         pooled connections to be committed or the connection will not be
returned to the pool.
Note that the commitRequired attribute has no effect when using the EXTERNAL
transaction manager.
*
So it does not explain why your transactions are not commited with
commitRequired=false if you do call commitTransactio() after
insert/update/delete (and I think you do not care about commiting after
selects).

Could you provide sample transaction code from your app which you suspect
does not commit ?



On Tue, Jun 10, 2008 at 5:26 PM, jlaur <jason.lauricella@pepsi.com> wrote:

>
> Hi,
>
> We are using Ibatis vs 2.2.0, and are going thru the process of updating
> our db to Oracle 10g.  We are noticing behavior (after the upgrade) in
> our test env where our ibatis transactions do not commit.  Through some
> research on the internet, we discovered that we were not providing the
> "commitRequired=true" param to the transaction manager config found in
> the sql-map-config.xml file.  When we did provide this param setting,
> the transactions handled by ibatis would then commit.
>
>
> <transactionManager type="JDBC" commitRequired="true" >
> <!--Oracle DataSource  -->
> <dataSource type="JNDI" >
> <property name="DataSource" value="${urlOracle}"/>
> <property name="Driver.SetBigStringTryClob" value="true" />
> </dataSource>
> </transactionManager>
>
>
>
> My question is :
> What exactly does this param signify, and were we correct in its
> application for the problem described above ?
>
>
>
> Thanks greatly for your help,
>
>
> Regards,
>
> Jason.
>
>
> --
> View this message in context:
> http://www.nabble.com/Help-with-what-%22commitRequired%3Dtrue%22-param-means-tp17755411p17755411.html
> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
>
>

Mime
View raw message