Is it possible that your PB is not used in multiple threads, having transaction being committed or rolledback by another thread before you've done your work?

Alexandre BORGOLTZ
Head of Technology

SmartJog SA
Phone: +33 (0)1 4996 6324
Fax: +33 (0)1 4996 6405
Mobile: +33 (0)6 8882 1417
[EMAIL PROTECTED]


Guillaume Laforge wrote:

>Hi Armin,
>
>On 05/08/05, Armin Waibel <[EMAIL PROTECTED]> wrote:
>
>>if you set "useAutoCommit=1", OJB set the connection autoCommit
>>attribute to 'false' when PB-tx demarcation is used. After the PB-tx the
>>autoCommit attribute is reset to 'true'.
>>http://db.apache.org/ojb/docu/guides/repository.html#useAutoCommit
>>
>>Everything done between PB.begin... and PB.commit... will use the same
>>connection with autoCommit 'false', thus on rollback nothing will be
>>written to DB.
>
>
>Thanks for your explanations.
>
>That's pretty odd, but I still can't manage to make transactions work properly.
>
>I tried the various autocommit options (0, 1, 2).
>
>I also tried specifying explicitely the autocommit with:
>broker.serviceConnectionManager().getConnection().setAutoCommit(false);
>
>I tried changing my mapping (auto-insert/update/etc).
>
>I also tried a different connection factory:
>ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl
>instead of the one I was using:
>ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryPooledImpl
>(in case my Tomcat 5.0 is in cause somehow with my datasource
>definition or what not).
>
>But I'm really clueless to what's happening there :-(
>
>Even though I'm in between a beginTransaction and commitTransaction,
>though there's just a few select queries, plus the broker.store()
>operations, if there's some exception being thrown and I call
>abortTransaction() in my catch block, it won't rollback all the stored
>objects in my transaction -- if I can still call it a transaction
>since it's not one anymore :-(
>
>I wanted to make a smaller sample outside of a container, with an
>ojb-blank app, but couldn't make it work on the command-line, so I
>didn't pursue further.
>
>What's odd also is this line in my debug logs:
>ConnectionManagerImpl  - Release connection: connection is in local
>transaction, missing 'localCommit' or 'localRollback' call - try to
>rollback the connection
>
>I see it just after I store my first object in my transaction. I'm
>sure there's something about that, and I guess it's not normal.
>
>If I set autocommit to 2 explicitely, I don't see it, but as soon as I
>store my second object (depending on the first one with a FK), I get a
>stacktrace saying it cannot insert my second object because the parent
>one doesn't exist :-(
>
>Any idea what could be wrong?
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to