ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chema <demablo...@gmail.com>
Subject Re: java.sql.SQLException: You cannot commit during a managed transaction
Date Fri, 03 Oct 2008 18:44:10 GMT
I can't upgrade because my application runs over JVM 1.4 and iBatis
2.3.0 is the last release compatible with JVM 1.4

About your question, from documentation:

"The <transactionManager> element also allows an optional attribute
commitRequired that can be true or
false. Normally iBATIS will not commit transactions unless an insert,
update, or delete operation has been performed
[...]
The startTransaction(), commitTransaction() and endTransaction()
methods, they will all be called
automatically for you whenever you execute a statement outside of a
transactional block as demonstrated in
the above."

I think it's not by cause of my configuration

Thanks !

Regards




2008/10/3 Kai Grabfelder <nospam@kinokai.de>:
> sqlMap.delete() performs a commit? That should not be the case if the tx manager is configured
correctly.
> Whats your configuration? Could you please also try updating ibatis to 2.3.4, 2.3.0 is
really old...
>
> Regards
>
> Kai
>
> --- Original Nachricht ---
> Absender: Chema
> Datum: 03.10.2008 15:01
>> That doesn't work because sqlMap.delete() performs commit automatically.
>> I'm using the transaction manager of JBoss , with JNDI/JDBC.
>> Can I disabled this ? By code is not possible because Jboss TX manager
>> throws a SQLExeception.
>> Another w/a ?
>>
>> Thanls !
>>
>>
>>
>>
>>
>>
>>
>>
>> 2008/10/3 Kai Grabfelder <nospam@kinokai.de>:
>>> if you are using CTM (container managed transactions), like in your case, you
can't start, commit or end
>>> transactions manually. The container is doing this for you.
>>>
>>> The following should work
>>>> sqlMap.delete("deleteRecords", param);
>>>
>>> If it does not I think your sqlmap configuration is not correct. Could you post
it here?
>>>
>>> Regards
>>>
>>> Kai
>>>
>>> --- Original Nachricht ---
>>> Absender: Chema
>>> Datum: 03.10.2008 12:53
>>>> Hello:
>>>>
>>>> I'm using JBoss 3.2 and EJB 2.0 with iBatis 2.3.0
>>>> I've got configured a external transaction manager in SQLMap
>>>> configuration file.
>>>>
>>>> When an EJB component ( session bean ) tries to delete record using by
>>>> iBatis sqlMap client, JBoss retrieve this
>>>> error:
>>>>
>>>> 11:02:09,406 ERROR [Connection] Error calling Connection.commit:
>>>> java.sql.SQLException: You cannot commit during a managed transaction!
>>>>         at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcCommit(BaseWrapperManagedConnection.java:525)
>>>>
>>>>
>>>>
>>>> This error happens when I perform this
>>>>
>>>> sqlMap.startTransaction();
>>>> sqlMap.delete("deleteRecords", param);
>>>> sqlMap.commitTransaction();
>>>> sqlMap.endTransaction();
>>>>
>>>>
>>>> And with a single call (automatic transaction):
>>>>
>>>> sqlMap.delete("deleteRecords", param);
>>>>
>>>>
>>>> I would like to delegate all transaction issues to external
>>>> transaction manager ( in this case, JBoss)
>>>> How I can solved this ? Any w/a ?
>>>>
>>>>
>>>> Thanks !!
>>>>
>>>
>>>
>>
>
>

Mime
View raw message