Hi Gary,

Gary wrote:

Armin:

Thanks again for your help.

Do you mean that I should close the PB before the
commit is called?

yep!

If so, I tried it, with the same
results.

I am still confused as to what the correct ordering of
PB opens/closes and commit/rollback operations are.

This all worked great before I moved to RC7.  I can't
remember if I was on RC5 or RC6 before...


we changed the internal connection handling between rc6 and rc7, because JBoss always warn about unclosed connections in JTA tx, thus we close the used connection handle on PB.close() call on the PB handle instance, but keep internal the real used PB instance.
The PB.close() call have to be invoked before the tx commits. This means if container managed/declarative tx is used before the method quit, if bean managed/programmatically tx is used before the UserTransaction.commit() was called.
On the commit of the JTA transaction OJB was notified by the tx to do the real cleanup and close of the real used PB instance.


regards,
Armin

Gary

--- Armin Waibel <[EMAIL PROTECTED]> wrote:

Hi Gary,

Gary wrote:


No, I first commit or rollback the transaction,

and

then close the PB.


ok, so I think this is the reason for the failure.
In managed environments the PB instance has the same behavior
as a DataSource in managed environments. Means that you operate with an
PB handle instance (wraps the real PB instance) and after use you have
to close the handle instance. If you use an connection from a DataSource
in an managed environment you have to close the connection before
the tx was completed too (I think so).


Maybe it will be better only to log an warning
instead of throwing an exception in this case.


regards,
Armin


Gary

--- Armin Waibel <[EMAIL PROTECTED]> wrote:


Gary wrote:



Armin:

Thanks for the quick reply.  Do you guys have a
"contribute" site like SourceForge so I could buy

you


a beer?


Think I should avoid to drink alcohol, because

your

problem seems really sophisticated ;-)




No, I wasn't using the "Sync" factory. When I

change


to it, I get a new error:
2004-06-15 15:19:29,798 ERROR [TCP
Connection(7)-172.24.54.129] Connection is in

local


transaction, do a 'localCommit' or

'localRollback'

beforeperform the connection release - rollback

the


connection now


(org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.releaseConnection(ConnectionManagerImpl.java))

hmm, do you close the PB instance within the used
method or before the tx demarcation ends?
I assume you don't.


regards,
Armin




It has the following stack trace:
System Thread [TCP Connection(7)-172.24.54.129]
(Suspended)
        ConnectionManagerImpl.releaseConnection() line:

295


PersistenceBrokerFactorySyncImpl$PersistenceBrokerSyncImpl.beforeCompletion()

line: 240



PersistenceBrokerFactorySyncImpl$TransactionBox.beforeCompletion()

line: 418
        RegisteredSyncs.distributeBefore() line: 110
        TransactionImpl.internalPrepare() line: 1211
        TransactionImpl.commit() line: 960
        TranManagerImpl.commit() line: 150
        TranManagerSet.commit() line: 182

My OJB.properties is as follows:
#<!--
#/* Copyright 2002-2004 The Apache Software

Foundation


# *
# * Licensed under the Apache License, Version

2.0

(the "License");
# * you may not use this file except in

compliance

with the License.
# * You may obtain a copy of the License at
# *
# *

http://www.apache.org/licenses/LICENSE-2.0

# *
# * Unless required by applicable law or agreed

to

in


writing, software
# * distributed under the License is distributed

on an


"AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.
# * See the License for the specific language
governing permissions and
# * limitations under the License.
# */
#-->
# OJB.properties -- configuration of the OJB

runtime


environment
# Version: 1.0
# (c) 2001, 2002, 2003 Apache Software Foundation
# Author: Thomas Mahler and many others
# @version $Id: OJB.properties,v 1.70 2004/06/03
23:46:08 arminw Exp $
#


#----------------------------------------------------------------------------------------

# repository file settings


#----------------------------------------------------------------------------------------

# The repositoryFile entry tells OJB to use this

file


as as its standard mapping
# repository. The file is looked up from the
classpath.
#
repositoryFile=repository.xml
#
# If the useSerializedRepository entry is set to

true,


OJB tries to load a
# serialized version of the repository for

performance


reasons.
# if set to false, OJB always loads the xml file.
# Setting this flag to true will accelerate the
startup sequence of OJB.
# If set to true changes to the repository.xml

file


will only be detected
# after maually deleting the

repository.xml.serialized

=== message truncated ===




__________________________________
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo


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






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



Reply via email to