Dear all, I encountered some problems with Transaction Management porting my J2EE application from Ora9ias 9.0.2 to Ora9ias 9.0.3 platform. I tried to reproduce the problem with a simple J2EE application made up of a test stateless session bean with a single business method. This very simple J2EE application is deployed successfully both in Ora9ias 9.0.2 and Ora9ias 9.0.3. The business method (test_odmg()) can be successfully invoked by a RMI client on the Ora9ias 9.0.2 deployment. On the Ora9ias 9.0.3 deployment however I get the following error:
The following exception has been catched: Error in ejbCreate(): No external transaction found; nested exception is: org.odmg.TransactionNotInProgressException: No external transaction found com.evermind.server.rmi.OrionRemoteException: Error in ejbCreate(): No external transaction found at com.evermind.server.ejb.StatelessSessionEJBHome.getContextInstance (StatelessSessionEJBHome.java:267) at OJBTest_ODMG_StatelessSessionBeanWrapper52.test_odmg (OJBTest_ODMG_StatelessSessionBeanWrapper52.java:83) at java.lang.reflect.Method.invoke(Native Method) at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:119) at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run (PooledExecutor.java:803) at java.lang.Thread.run(Thread.java:479) at connection to c99-012.prirm.pride.it/10.2.21.8 as admin at com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERV ER(RMIConnection.java:1558) at com.evermind.server.rmi.RMIConnection.invokeMethod (RMIConnection.java:1511) at com.evermind.server.rmi.RemoteInvocationHandler.invoke (RemoteInvocationHandler.java:55) at com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke (RecoverableRemoteInvocationHandler.java:22) at com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke (StatelessSessionRemoteInvocationHandler.java:50) at __Proxy4.test_odmg(Unknown Source) at it.enidata.psv.ejb.client.TestOJB_ODMG.main(TestOJB_ODMG.java:45) Nested exception is: org.odmg.TransactionNotInProgressException: No external transaction found at org.apache.ojb.odmg.JTATxManager.registerTx(Unknown Source) at org.apache.ojb.odmg.TransactionImpl.begin(Unknown Source) at org.apache.ojb.odmg.ImplementationJTAImpl.beginInternTransaction (Unknown Source) at org.apache.ojb.odmg.ImplementationJTAImpl.registerOpenDatabase (Unknown Source) at org.apache.ojb.odmg.DatabaseImpl.open(Unknown Source) at it.enidata.psv.ejb.account.OJBTest_ODMGBean.init (OJBTest_ODMGBean.java:99) at it.enidata.psv.ejb.account.OJBTest_ODMGBean.ejbCreate (OJBTest_ODMGBean.java:41) at OJBTest_ODMGHome_StatelessSessionHomeWrapper53.callCreate (OJBTest_ODMGHome_StatelessSessionHomeWrapper53.java:145) at com.evermind.server.ejb.StatelessSessionEJBHome.getContextInstance (StatelessSessionEJBHome.java:254) at OJBTest_ODMG_StatelessSessionBeanWrapper52.test_odmg (OJBTest_ODMG_StatelessSessionBeanWrapper52.java:83) at java.lang.reflect.Method.invoke(Native Method) at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:119) at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run (PooledExecutor.java:803) at java.lang.Thread.run(Thread.java:479) at connection to c99-012.prirm.pride.it/10.2.21.8 at com.evermind.server.rmi.OrionRemoteException.receive (OrionRemoteException.java:130) at com.evermind.server.rmi.RMIConnection.handleMethodInvocationResponse (RMIConnection.java:1673) at com.evermind.server.rmi.RMIConnection.run(RMIConnection.java:532) at com.evermind.server.rmi.RMIConnection.run(RMIConnection.java:275) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run (PooledExecutor.java:797) at java.lang.Thread.run(Thread.java:484) The error arises in the ejbCreate() as soon as the db.open() is invoked. - If I move the OJB initialization into the business method (leaving the EJB as "stateless") the error disappears. - If I change the deployment descriptor from "stateless" to "stateful" (leaving the OJB initialization into the ejbCreate()) the error disappears. What is the rationale behind this behaviour? Here below you will find - the source code of the test session bean - the deployment descriptor - the OJB.properties Any assitance in the matter would be great. Thanks in advance. Regards, Dino. -- *********************************************************************** **** Source code for the session bean ********************************* *********************************************************************** public class OJBTest_ODMGBean implements SessionBean { private SessionContext sessionContext; private static final String DEF_DATABASE_NAME = "dsOJB"; private Implementation odmg; private Database db; public OJBTest_ODMGBean() {} public void ejbActivate() { } public void ejbPassivate() { } public void ejbCreate() throws CreateException { try { init(); } catch (InitException e) { throw new CreateException(e.getMessage()); } } private void init() throws InitException{ Logger logger = Logger.getLogger("psv.j2ee.testing"); logger.debug("OJBTest_ODMGBean - test_odmg(): begin"); logger.debug("OJBTest_ODMGBean - test_odmg(): initializing ODMG connection [BEGIN]"); logger.debug("OJBTest_ODMGBean - test_odmg(): OJB.getInstance()"); odmg = OJB.getInstance(); logger.debug("OJBTest_ODMGBean - test_odmg(): found Implementation instance [" + odmg + "]"); logger.debug("OJBTest_ODMGBean - test_odmg(): odmg.newDatabase()"); db = odmg.newDatabase(); try { logger.debug("OJBTest_ODMGBean - test_odmg(): open new database " + db + " using databaseName name " + DEF_DATABASE_NAME); db.open(DEF_DATABASE_NAME, Database.OPEN_READ_WRITE); } catch (ODMGException e) { logger.error("OJBTest_ODMGBean - test_odmg(): Database open failed", e); throw new InitException(e.getMessage()); } logger.debug("OJBTest_ODMGBean - test_odmg(): initializing ODMG connection [END]"); } public void ejbRemove() { Logger logger = Logger.getLogger("psv.j2ee.testing"); logger.debug("OJBTest_ODMGBean - ejbRemove(): closing ODMG connection [BEGIN]"); try { logger.debug("OJBTest_ODMGBean - ejbRemove(): db.close(): " + db); if (db != null) db.close(); } catch (ODMGException e) { logger.error("OJBTest_ODMGBean - ejbRemove(): closing of database failed", e); } db = null; odmg = null; logger.debug("OJBTest_ODMGBean - ejbRemove(): closing ODMG connection [END]"); } public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } public String test_odmg() throws java.rmi.RemoteException { Logger logger = Logger.getLogger("psv.j2ee.testing"); logger.debug("OJBTest_ODMGBean - test_odmg(): end"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"); return "OJBTest_ODMGBean - test_odmg(): done [" + simpleDateFormat.format(Calendar.getInstance().getTime()) + "]"; } } *********************************************************************** **** Deployment descriptor ******************************************** *********************************************************************** <?xml version="1.0" encoding="UTF-8"?> <ejb-jar> <enterprise-beans> <session> <ejb-name>OJBTest_ODMG</ejb-name> <home>it.enidata.psv.ejb.account.OJBTest_ODMGHome</home> <remote>it.enidata.psv.ejb.account.OJBTest_ODMG</remote> <ejb-class>it.enidata.psv.ejb.account.OJBTest_ODMGBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>OJBTest_ODMG</ejb-name> <method-name>*</method-name> </method> <trans-attribute>NotSupported</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> *********************************************************************** **** OJB.properties *************************************************** *********************************************************************** #<!-- #/* 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.2 2004/07/19 13:52:56 d.dicola 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.PersistenceBrokerFacto ryDefaultImpl # 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.PersistenceBrokerFact orySyncImpl # # # The PersistenceBrokerClass entry decides which concrete PersistenceBroker # implementation is to be served by the PersistenceBrokerFactory. # This is the singlevm implementation: 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 limit maxIdle=-1 # # max time block to get broker instance from pool, after that exception is thrown. # When non-positive, block till last judgement maxWait=2000 # # indicates how long the eviction thread should sleep before "runs" of examining # idle objects. When non-positive, no eviction thread will be launched. timeBetweenEvictionRunsMillis=-1 # # specifies the minimum amount of time that an broker may sit idle # in the pool before it is eligable for eviction due to idle time. # When non-positive, no object will be dropped from the pool due # to idle time alone (depends on timeBetweenEvictionRunsMillis > 0) minEvictableIdleTimeMillis=1000000 # # specifies the behaviour of the pool when broker capacity is # exhausted (see maxActive above) # 0 - fail # 1 - block # 2 - grow whenExhaustedAction=0 # # #------------------------------------------------------------------------------ ---------- # ConnectionFactory / Default ConnectionPool #------------------------------------------------------------------------------ ---------- # The ConnectionFactoryClass entry determines which kind of ConnectionFactory # is to be used within org.apache.ojb as connection factory. # A ConnectionFactory is responsible for creating # JDBC Connections. Current version ships four implementations: # # 1. ConnectionFactoryNotPooledImpl # No pooling, no playing around. # Every connection request returns a new connection, # every connection release close the connection. # 2. ConnectionFactoryPooledImpl # This implementation supports connection pooling. # 3. ConnectionFactoryDBCPImpl # Using the jakarta-DBCP api for connection management, support # connection- and prepared statement-pooling, abandoned connection handling. # 4. ConnectionFactoryManagedImpl # Connection factory for use within managed environments - e.g. JBoss. # Every obtained DataSource was wrapped within OJB (and ignore # e.g. con.commit() calls within OJB). # Use this implementation e.g if you use Datasources from an application server. # # Use the OJB performance tests to decide, which implementation is best for you. # The proper way of obtaining a connection is configured in # JDBCConnectionDescriptor entries in the repository.xml file. # If want a more fine grained control of each connection pool used by OJB, # take a look at the repository.dtd, there was a possibility to override # this default connection factory entry in each JDBCConnectionDescriptor. # #ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryPool edImpl #ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryNotP ooledImpl ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManag edImpl #ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCP Impl # # #------------------------------------------------------------------------------ ---------- # ConnectionManager #------------------------------------------------------------------------------ ---------- # The ConnectionManagerClass entry defines the ConnectionManager implemementation to be used ConnectionManagerClass=org.apache.ojb.broker.accesslayer.ConnectionManagerImpl # # #------------------------------------------------------------------------------ ---------- # SqlGenerator #------------------------------------------------------------------------------ ---------- # The SqlGeneratorClass entry defines the SqlGenerator implemementation to be used SqlGeneratorClass=org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl # # #------------------------------------------------------------------------------ ---------- # IndirectionHandler #------------------------------------------------------------------------------ ---------- # The IndirectionHandlerClass entry defines the class to be used by OJB's proxies to # handle method invocations # IndirectionHandlerClass=org.apache.ojb.broker.core.proxy.IndirectionHandlerDefa ultImpl # #------------------------------------------------------------------------------ ---------- # ListProxy #------------------------------------------------------------------------------ ---------- # The ListProxyClass entry defines the proxy class to be used for collections that # implement the java.util.List interface. # ListProxyClass=org.apache.ojb.broker.core.proxy.ListProxyDefaultImpl # #------------------------------------------------------------------------------ ---------- # SetProxy #------------------------------------------------------------------------------ ---------- # The SetProxyClass entry defines the proxy class to be used for collections that # implement the java.util.Set interface. # SetProxyClass=org.apache.ojb.broker.core.proxy.SetProxyDefaultImpl # #------------------------------------------------------------------------------ ---------- # CollectionProxy #------------------------------------------------------------------------------ ---------- # The CollectionProxyClass entry defines the proxy class to be used for collections that # do not implement java.util.List or java.util.Set. # CollectionProxyClass=org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImp l # #------------------------------------------------------------------------------ ---------- # StatementManager #------------------------------------------------------------------------------ ---------- # The StatementManagerClass entry defines the StatementManager implemementation to be used StatementManagerClass=org.apache.ojb.broker.accesslayer.StatementManager # # #------------------------------------------------------------------------------ ---------- # StatementsForClass #------------------------------------------------------------------------------ ---------- # The StatementsForClassClass entry defines the StatementsForClass implemementation to be used # to implement cached statements. StatementsForClassClass=org.apache.ojb.broker.accesslayer.StatementsForClassImp l # # #------------------------------------------------------------------------------ ---------- # JdbcAccess #------------------------------------------------------------------------------ ---------- # The JdbcAccessClass entry defines the JdbcAccess implemementation to be used JdbcAccessClass=org.apache.ojb.broker.accesslayer.JdbcAccessImpl # # #------------------------------------------------------------------------------ ---------- # Object cache #------------------------------------------------------------------------------ ---------- # The ObjectCacheClass entry tells OJB which concrete ObjectCache # implementation is to be used as standard cache. # Its also possible to override this entry adding object-cache elements # on jdbc-connection-descriptor level and # per class-descriptor in repository file. More info see documentation. # ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheDefaultImpl #ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheEmptyImpl #ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCachePerBrokerImpl #ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCacheJCSPerClassImpl #ObjectCacheClass=org.apache.ojb.broker.cache.ObjectCachePerClassImpl # # # This property is only relevant if the per class-descriptor object-cache # declaration was used in conjunction with metadata runtime changes. # If set 'flase' the class name of the object is used # to find a per class ObjectCache implementation. # If set 'true' the ObjectCacheDescriptor instance is used as key to # find a per class ObjectCache, this enables to use different ObjectCache # instances for the same class. descriptorBasedCaches=false # # # Use CacheFilters to do filter operations before caching methods were # called. Build your own filter class by implementing org.apache.ojb.cache.CacheFilter. # It is possible to use a arbitrary number of CacheFilters, but this slows # down the performance of the cache, thus handle with care. # # - org.apache.ojb.broker.cache.CacheFilterClassImpl # allows filtering of classes # - org.apache.ojb.broker.cache.CacheFilterPackageImpl # allows filtering of packages # More info see Javadoc of the according classes. # Set a comma separated list of CacheFilter. #ObjectCacheFilter=org.apache.ojb.broker.cache.CacheFilterClassImpl,org.apache. ojb.broker.cache.CacheFilterPackageImpl # #------------------------------------------------------------------------------ ---------- # Locking #------------------------------------------------------------------------------ ---------- # The LockManagerClass entry tells OJB which concrete LockManager # implementation is to be used. LockManagerClass=org.apache.ojb.odmg.locking.LockManagerDefaultImpl # # The LockMapClass entry tells OJB which concrete LockMap # implementation is to be used. # If OJB is running on multiple concurrent clients it is recommended # to use the RemoteLockMapImpl. It guarantees to provide # Lockmanagement across multiple JVMs. # This Implemenation relies on a Servlet based Lockserver. To use it you have to # deploy the ojb-lockserver.war into a Servlet engine. # and you have to set the Property LockServletUrl to point to this servlet. # (see LockServletUrl section below). # If OJB is running in a single JVM (e.g. in a desktop app, or in a servlet # engine) it is save to use the InMemoryLockMapImpl. Using it will result # in a large performance gain. #LockMapClass=org.apache.ojb.odmg.locking.RemoteLockMapImpl LockMapClass=org.apache.ojb.odmg.locking.InMemoryLockMapImpl # # The LockTimeout entry defines the maximum time in milliseconds # that a lock may be hold. Defaults to 60000 = 1 minute LockTimeout=60000 # # The ImplicitLocking entry defines if implicit lock acquisition is # to be used. If set to true OJB implicitely locks objects to ODMG # transactions after performing OQL queries. # If implicit locking is used locking objects is recursive, that is # associated objects are also locked. # If ImplicitLocking is set to false, no locks are obtained in OQL # queries and there is also no recursive locking. ImplicitLocking=true #ImplicitLocking=false # # # The LockServletUrl entry points to the Lockserver servlet. # This Servlet is addressed by all distributed JVMs if the RemoteLockMapImpl # is used. LockServletUrl=http://127.0.0.1:8080/ojb-lockserver # # # The LockAssociations entry defines the behaviour for the OJB # implicit locking feature. If set to WRITE (default) acquiring a write- # lock on a given object x implies write locks on all objects associated # to x. If set to READ implicit read-locks are acquired. # Acquiring a read-lock on x thus allways results in implicit read-locks # on all associated objects. #LockAssociations=READ LockAssociations=WRITE # # #------------------------------------------------------------------------------ ---------- # OQL / SQL settings #------------------------------------------------------------------------------ ---------- # The OqlCollectionClass entry defines the collection type returned # from OQL queries. By default this value is set to DListImpl. # This will be good for most situations as DList allows maximum flexibility # in a ODMG environment. See also section 'ODMG settings'. # Using DLists for large resultsets may be bad for application performance. # For these scenarios you can use ArrayLists or Vectors. # Important note: the collections class to be used MUST implement the # interface org.apache.ojb.broker.ManageableCollection. # OqlCollectionClass=org.apache.ojb.odmg.collections.DListImpl_2 # OqlCollectionClass=org.apache.ojb.broker.util.collections.ManageableArrayList # OqlCollectionClass=org.apache.ojb.broker.util.ManageableVector # # The SqlInLimit entry limits the number of values in IN-sql statement, # -1 for no limits. This hint is used in Criteria. SqlInLimit=200 # # #------------------------------------------------------------------------------ ---------- # ODMG settings #------------------------------------------------------------------------------ ---------- # Specify the used base class for ODMG API # - ImplementationDefaultImpl is the default class # - ImplementationJTAImpl is for use in managed environments like J2EE conform # Application Server # #ImplementationClass=org.apache.ojb.odmg.ImplementationDefaultImpl ImplementationClass=org.apache.ojb.odmg.ImplementationJTAImpl # # # Specify the used tx handling. # - LocalTxManager use if you want the transaction to be associated by a thread # - JTATxManager use if you want the transaction to be associated via the Transaction # manager that is in your application server. # #OJBTxManagerClass=org.apache.ojb.odmg.LocalTxManager OJBTxManagerClass=org.apache.ojb.odmg.JTATxManager # # # Used ODMG collection implementation classes # (e.g. when do a Implementation#newDlist() call) # # org.odmg.DList implementation class DListClass=org.apache.ojb.odmg.collections.DListImpl_2 #DListClass=org.apache.ojb.odmg.collections.DListImpl # # org.odmg.DArray implementation class DArrayClass=org.apache.ojb.odmg.collections.DListImpl_2 #DArrayClass=org.apache.ojb.odmg.collections.DListImpl # # org.odmg.DMap implementation class DMapClass=org.apache.ojb.odmg.collections.DMapImpl # # org.odmg.DBag implementation class DBagClass=org.apache.ojb.odmg.collections.DBagImpl # # org.odmg.DSet implementation class DSetClass=org.apache.ojb.odmg.collections.DSetImpl # # #------------------------------------------------------------------------------ ---------- # Meta data / mapping settings #------------------------------------------------------------------------------ ---------- # The PersistentFieldClass property defines the implementation class # for PersistentField attributes used in the OJB MetaData layer. # By default the best performing attribute/refection based implementation # is selected (PersistentFieldDirectAccessImpl). # # - PersistentFieldDirectAccessImpl # is a high-speed version of the access strategies. # It does not cooperate with an AccessController, # but accesses the fields directly. Persistent # attributes don't need getters and setters # and don't have to be declared public or protected # - PersistentFieldPrivilegedImpl # Same as above, but does cooperate with AccessController and do not # suppress the java language access check. # - PersistentFieldIntrospectorImpl # uses JavaBeans compliant calls only to access persistent attributes. # No Reflection is needed. But for each attribute xxx there must be # public getXxx() and setXxx() methods. # - PersistentFieldDynaBeanAccessImpl # implementation used to access a property from a # org.apache.commons.beanutils.DynaBean. # - PersistentFieldAutoProxyImpl # for each field determines upon first access how to access this particular field # (directly, as a bean, as a dyna bean) and then uses that strategy # PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.PersistentField DirectAccessImpl #PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.PersistentFiel dPrivilegedImpl #PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.PersistentFiel dIntrospectorImpl #PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.PersistentFiel dDynaBeanAccessImpl #PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.PersistentFiel dAutoProxyImpl # # #------------------------------------------------------------------------------ ---------- # Component Intercepting for Profiling and Tracing #------------------------------------------------------------------------------ ---------- # By enabling an InterceptorClass all OJB components will use # this Interceptor. Interceptors allow advanced tracing and Profiling # of all component method calls. # This is currently an experimental feature useful only for OJB kernel developers. # #InterceptorClass=org.apache.ojb.broker.util.interceptor.TracingInterceptor # #------------------------------------------------------------------------------ ---------- # Transaction Management and assocation #------------------------------------------------------------------------------ ---------- # (optional, only used when OJB runs within managed environments) # To praticipate in JTA transaction OJB needs access to the underlying transaction manager. # The TransactionManager is acquired in different ways dependent on the application server. # The JTATransactionManagerClass property allows you to specify the class that implements # the proper behaviour for finding the transaction manager. Only use when OJBTxManagerClass # is set to a factory that uses the application server transaction manager # (org.apache.ojb.odmg.JTATxManager) # # JBoss Transaction Manager Factory #JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransacti onManagerFactory # Weblogic Transaction Manager Factory #JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.WeblogicTransa ctionManagerFactory # WebSphere transaction manager factory #JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.WebSphereTrans actionManagerFactory # Orion transaction manager factory JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.OrionTransactio nManagerFactory # SunOne transaction manager factory #JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.SunOneTransact ionManagerFactory # JOnAs transaction manager factory #JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JOnASTransacti onManagerFactory # # #------------------------------------------------------------------------------ ---------- # Logging #------------------------------------------------------------------------------ ---------- # The LoggerClass entry tells OJB which concrete Logger # implementation is to be used. # # Commons-logging #LoggerClass=org.apache.ojb.broker.util.logging.CommonsLoggerImpl # log4j based logging LoggerClass=org.apache.ojb.broker.util.logging.Log4jLoggerImpl # OJB's own simple looging support #LoggerClass=org.apache.ojb.broker.util.logging.PoorMansLoggerImpl LoggerConfigFile=log4j.properties # # The LogLevel entries tells OJB which LogLevels are active # for the different loggers used within OJB # Loglevels: DEBUG < INFO < WARN < ERROR < FATAL # That is loglevel WARN won't log DEBUG and INFO messages, # but will log WARN, ERROR, and FATAL messages # # Global default log level used for all logging # entities if not specified ROOT.LogLevel=DEBUG # # The Default Logger instance used within OJB DEFAULT.LogLevel=DEBUG # Logger for PersistenceBrokerImpl class org.apache.ojb.broker.core.PersistenceBrokerImpl.LogLevel=DEBUG # Logger for PersistenceBrokerFactory class PersistenceBrokerFactoryDefaultImpl org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.LogLevel=DEBUG # Logger for RepositoryXmlHandler, useful for debugging parsing of repository.xml! # persistence capable object metadata org.apache.ojb.broker.metadata.RepositoryXmlHandler.LogLevel=DEBUG # Logger for ConnectionDescriptorXmlHandler, useful for debugging parsing of repository.xml! # connection specific metadata org.apache.ojb.broker.metadata.ConnectionDescriptorXmlHandler.LogLevel=DEBUG # Logger for JdbcAccess, useful for debugging JDBC related problems org.apache.ojb.broker.accesslayer.JdbcAccessImpl.LogLevel=DEBUG # Logger for RsIterator, useful for debugging problems with Object materialization org.apache.ojb.broker.accesslayer.RsIterator.LogLevel=DEBUG # Logger for StatementsForClass, useful for debugging JDBC Connection related problems org.apache.ojb.broker.accesslayer.StatementsForClassImpl.LogLevel=DEBUG # Logger for SqlGenerator, useful for debugging generation of SQL org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.LogLevel=DEBUG # Logger for RepositoryPersistor org.apache.ojb.broker.metadata.RepositoryPersistor.LogLevel=DEBUG # Logger for ConnectionFactory base class org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.LogLevel=DEBUG # Logger for ConnectionManager org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.LogLevel=DEBUG # Logger for IndirectionHandler class org.apache.ojb.broker.core.proxy.IndirectionHandler.LogLevel=DEBUG # # Special Logger categories used in test suite and tutorials # # Logger for the ODMG Implementation ODMG.LogLevel=DEBUG # Logger for the JDO RI Implementation JDO.LogLevel=DEBUG # Logger for the performance tests performance.LogLevel=DEBUG # Logger for the soda api soda.LogLevel=DEBUG # Logger for the factory service ConfigurableFactory.LogLevel=DEBUG # # #------------------------------------------------------------------------------ ---------- # End of OJB.properties file #------------------------------------------------------------------------------ ---------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]