Re: New Warnings in Managed Environment with RC7

2004-06-18 Thread Armin Waibel
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 

Re: New Warnings in Managed Environment with RC7

2004-06-16 Thread Gary
No, I first commit or rollback the transaction, and
then close the PB.

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
  file.
  useSerializedRepository=false
  #
  # If Repository serialization is used the entry
  serializedRepositoryPath defines the
  # directory where the Repository is written to and
  read from.
  # this entry is used only when the
  useSerializedRepository flag is set to true
  #
  serializedRepositoryPath=.
  #
 

#
  # PersistenceBrokerFactory / PersistenceBroker
 

#
  # The PersistenceBrokerFactoryClass entry decides
  which concrete
  # PersistenceBrokerFactory implemention is to be
 used.
 

#PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
  # If in managed environment *only* the PB-api was
 used
  it's recommended to use this factory
  # to enable the PersistenceBroker instances to
  participate in the JTA transaction. This makes
  # e.g. PBStateListener work properly in managed
  environments.
 

PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
  #
  #
  # The PersistenceBrokerClass entry decides which
  concrete PersistenceBroker
  # implementation is to be served by the
  PersistenceBrokerFactory.
  # This is the singlevm implementation:
 

PersistenceBrokerClass=edu.mayo.evolution.infrastructure.ojb.EvolutionPersistenceBrokerImpl
 

#PersistenceBrokerClass=org.apache.ojb.broker.core.PersistenceBrokerImpl
  #
  # This is an implementation that uses Prevayler
  (prevayler.sf.net) as the persistent storage.
  # Using this implementation OJB works as a simple
  OODBMS
 


Re: New Warnings in Managed Environment with RC7

2004-06-16 Thread Gary
It appears as though beginTransaction() is called on
the given PersistenceBroker instance when it is
created.  Then, when a JTA commit operation occurs, it
tries to release the connection (as shown in the stack
trace below) but thinks that a local transaction is
active.

I assume that with a JTA transaction, no local
transaction should be involved.  I see there were
changes in this (these messages appear new).  

Is anyone else seeing this behavior?

Gary

--- Gary [EMAIL PROTECTED] wrote:
 No, I first commit or rollback the transaction, and
 then close the PB.
 
 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
   file.
   useSerializedRepository=false
   #
   # If Repository serialization is used the entry
   serializedRepositoryPath defines the
   # directory where the Repository is written to
 and
   read from.
   # this entry is used only when the
   useSerializedRepository flag is set to true
   #
   serializedRepositoryPath=.
   #
  
 

#
   # PersistenceBrokerFactory / PersistenceBroker
  
 

#
   # The PersistenceBrokerFactoryClass entry
 decides
   which concrete
   # PersistenceBrokerFactory implemention is to be
  used.
  
 

#PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
   # If in managed environment *only* the PB-api
 was
  used
   it's recommended to use this factory
   # to enable the PersistenceBroker instances to
   participate in the JTA transaction. This makes
   # e.g. PBStateListener work properly in managed
   environments.
  
 


Re: New Warnings in Managed Environment with RC7

2004-06-16 Thread Armin Waibel
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
file.
useSerializedRepository=false
#
# If Repository serialization is used the entry
serializedRepositoryPath defines the
# directory where the Repository is written to and
read from.
# this entry is used only when the
useSerializedRepository flag is set to true
#
serializedRepositoryPath=.
#

#
# PersistenceBrokerFactory / PersistenceBroker

#
# The PersistenceBrokerFactoryClass entry decides
which concrete
# PersistenceBrokerFactory implemention is to be
used.
#PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
# If in managed environment *only* the PB-api was
used
it's recommended to use this factory
# to enable the PersistenceBroker instances to
participate in the JTA transaction. This makes
# e.g. PBStateListener work properly in managed
environments.

PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
#
#
# The PersistenceBrokerClass entry decides which
concrete PersistenceBroker
# implementation is to be served by the
PersistenceBrokerFactory.
# This is the singlevm implementation:


Re: New Warnings in Managed Environment with RC7

2004-06-15 Thread Armin Waibel
Hi Gary,
Gary wrote:
I am now getting the following warnings in a JTA
environment (this worked fine, no messages, before
RC7):
2004-06-15 13:32:26,728 WARN 
[Servlet.Engine.Transports : 0] No running tx found,
please only delete objects in context of an
PB-transaction, to avoid side-effects - e.g. when
rollback of complex objects
(org.apache.ojb.broker.core.PersistenceBrokerImpl.delete(PersistenceBrokerImpl.java))

Looking into the code, it appears as though I am now
required to do a pb.beginTransaction() in even a
managed environment.  Am I missing something?
I assume you use PB-api in managed environment and when deleting an 
object you use a JTA-tx?

Did you set
PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
in OJB.properties (introduced in rc6)?
regards,
Armin
Thanks for all your hard work, Gary

__
Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!
http://promotions.yahoo.com/new_mail
-
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]


Re: New Warnings in Managed Environment with RC7

2004-06-15 Thread Gary
Armin:

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

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))



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
file.
useSerializedRepository=false
#
# If Repository serialization is used the entry
serializedRepositoryPath defines the
# directory where the Repository is written to and
read from.
# this entry is used only when the
useSerializedRepository flag is set to true
#
serializedRepositoryPath=.
#
#
# PersistenceBrokerFactory / PersistenceBroker
#
# The PersistenceBrokerFactoryClass entry decides
which concrete
# PersistenceBrokerFactory implemention is to be used.
#PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
# If in managed environment *only* the PB-api was used
it's recommended to use this factory
# to enable the PersistenceBroker instances to
participate in the JTA transaction. This makes
# e.g. PBStateListener work properly in managed
environments.
PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
#
#
# The PersistenceBrokerClass entry decides which
concrete PersistenceBroker
# implementation is to be served by the
PersistenceBrokerFactory.
# This is the singlevm implementation:
PersistenceBrokerClass=edu.mayo.evolution.infrastructure.ojb.EvolutionPersistenceBrokerImpl
#PersistenceBrokerClass=org.apache.ojb.broker.core.PersistenceBrokerImpl
#
# This is an implementation that uses Prevayler
(prevayler.sf.net) as the persistent storage.
# Using this implementation OJB works as a simple
OODBMS
#PersistenceBrokerClass=org.apache.ojb.broker.prevayler.PBPrevaylerImpl
#
#
# PersistenceBroker pool
#
# PersistenceBroker pool configuration
# This pool uses the jakarta-commons-pool api.
# There you can find things described in detail.
#
# maximum number of brokers that can be borrowed from
the
# pool at one time. When non-positive, there is no
limit.
maxActive=100
#
# controls the maximum number of brokers that can sit
idle in the
# pool (per key) at any time. When non-positive, there
is no 

Re: New Warnings in Managed Environment with RC7

2004-06-15 Thread Armin Waibel
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
file.
useSerializedRepository=false
#
# If Repository serialization is used the entry
serializedRepositoryPath defines the
# directory where the Repository is written to and
read from.
# this entry is used only when the
useSerializedRepository flag is set to true
#
serializedRepositoryPath=.
#
#
# PersistenceBrokerFactory / PersistenceBroker
#
# The PersistenceBrokerFactoryClass entry decides
which concrete
# PersistenceBrokerFactory implemention is to be used.
#PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
# If in managed environment *only* the PB-api was used
it's recommended to use this factory
# to enable the PersistenceBroker instances to
participate in the JTA transaction. This makes
# e.g. PBStateListener work properly in managed
environments.
PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
#
#
# The PersistenceBrokerClass entry decides which
concrete PersistenceBroker
# implementation is to be served by the
PersistenceBrokerFactory.
# This is the singlevm implementation:
PersistenceBrokerClass=edu.mayo.evolution.infrastructure.ojb.EvolutionPersistenceBrokerImpl
#PersistenceBrokerClass=org.apache.ojb.broker.core.PersistenceBrokerImpl
#
# This is an implementation that uses Prevayler
(prevayler.sf.net) as the persistent storage.
# Using this implementation OJB works as a simple
OODBMS
#PersistenceBrokerClass=org.apache.ojb.broker.prevayler.PBPrevaylerImpl
#
#
# PersistenceBroker pool
#
# PersistenceBroker pool configuration
# This pool uses the jakarta-commons-pool api.
# There you can find things described in detail.
#
# maximum number of brokers that