db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sudhir Kumar <sudhir.ku...@enrichsolutions.com>
Subject Problem with the Updating the Record to the database
Date Tue, 04 Oct 2005 23:50:19 GMT
Hi All,

 

 

            I am having a problem with updating a database

 

            We have a table which is updated by the different JVM. If
one threads update the table and second threads roll back those records
updated by the first thread. 

 

            I am using  Lock as
LockMapClass=org.apache.ojb.odmg.locking.PersistentLockMapImpl

 

 

Any Help is highly appreciated

 

 

 

Below is the setting of the OJB.properties

 

 

 

# OJB.properties -- configuration of the OJB runtime environment

# Version: 1.0

# (c) 2001, 2002, 2003 Apache Software Foundation

# Author: Thomas Mahler and many others

#

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

# 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.PersistenceBrok
erFactoryDefaultImpl

#

# 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

#

#

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

# PersistenceBrokerFactory 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=2

#

#

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

# 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.ConnectionFacto
ryPooledImpl

#ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFact
oryNotPooledImpl

#ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFact
oryManagedImpl

#ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFact
oryDBCPImpl

#

#

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

# ConnectionManager

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

# The ConnectionManagerClass entry defines the ConnectionManager
implemementation to be used

ConnectionManagerClass=org.apache.ojb.broker.accesslayer.ConnectionManag
erImpl

#

#

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

# SqlGenerator

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

# The SqlGeneratorClass entry defines the SqlGenerator implemementation
to be used

SqlGeneratorClass=org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefa
ultImpl

#

#

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

# CollectionProxy class

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

# The optional CollectionProxy entry defines the class to be used for
CollectionProxies

# if this entry is null org.apache.ojb.broker.accesslayer.ListProxy is
used for Lists

# and org.apache.ojb.broker.accesslayer.CollectionProxy for Collections

#

#CollectionProxyClass=

#

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

# StatementManager

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

# The StatementManagerClass entry defines the StatementManager
implemementation to be used

StatementManagerClass=org.apache.ojb.broker.accesslayer.StatementManager

#

#

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

# 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 instance Cache

# implementation is to be used.

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.MetaObjectCacheJCSImpl

#ObjectCacheClass=org.apache.ojb.broker.cache.MetaObjectCachePerClassImp
l

#

#

# 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 PersistentLockMapImpl. It guarantees to provide

# Lockamanagement across multiple JVMs.

# 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.PersistentLockMapImpl

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

#

#

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

# 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

#

# The Default Logger

DEFAULT.LogLevel=INFO

# Logger for PersistenceBrokerImpl class

org.apache.ojb.broker.core.PersistenceBrokerImpl.LogLevel=WARN

# Logger for PersistenceBrokerFactory class

org.apache.ojb.broker.PersistenceBrokerFactory.LogLevel=WARN

# Logger for RepositoryXmlHandler, useful for debugging parsing of
repository.xml!

org.apache.ojb.broker.metadata.RepositoryXmlHandler.LogLevel=WARN

# Logger for JdbcAccess, useful for debugging JDBC related problems

org.apache.ojb.broker.accesslayer.JdbcAccess.LogLevel=WARN

# Logger for RsIterator, useful for debugging problems with Object
materialization

org.apache.ojb.broker.accesslayer.RsIterator.LogLevel=WARN

# Logger for StatementsForClass, useful for debugging JDBC Connection
related problems

org.apache.ojb.broker.accesslayer.StatementsForClass.LogLevel=WARN

# Logger for SqlGenerator, useful for debugging generation of SQL

org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.LogLevel=W
ARN

# Logger for RepositoryPersistor

org.apache.ojb.broker.metadata.RepositoryPersistor.LogLevel=WARN

# Logger for PersistenceBrokerFactoryDefaultImpl

org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.LogLevel=
WARN

# Logger for the ODMG Implementation

ODMG.LogLevel=WARN

# Logger for the JDO RI Implementation

JDO.LogLevel=DEBUG

# Logger for the performance tests

performance.LogLevel=INFO

# Logger for the soda api

soda.LogLevel=WARN

# Logger for the factory service

ConfigurableFactory.LogLevel=WARN

#

#

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

# 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.

# 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

#
OqlCollectionClass=org.apache.ojb.broker.util.collections.ManageableArra
yList

# 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

#

#

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

# Meta data / mapping settings

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

# The PersistentFieldClass property defines the implementation class

# for PersistentField attributes used in the OJB MetaData layer.

# By default a attribute based Version using Reflection is selected.

# using this Class persistent attributes don't need getters and setters

# and don't have to be declared public or protected.

#

PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.Persiste
ntFieldDefaultImpl

#

# There is also a high-speed version of this access strategy avalaible.

# The PersistentFieldMaxPerformanceImpl does not cooperate with

# an AccessController, but accesses the fields directly.

#PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.Persist
entFieldMaxPerformanceImpl

#

# The PersistentFieldPropertyImpl uses JavaBeans comformant calls only

# to access persistent attributes. No Reflection is needed.

# But for each attribute xxx there must be public getXxx() and setXxx()
methods.

#

#PersistentFieldClass=org.apache.ojb.broker.metadata.fieldaccess.Persist
entFieldPropertyImpl

#

#

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

# 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.TracingIntercep
tor

#

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

# Transaction Management and assocation

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

# Use the LocalTxManager if you want the transaction to be associated by
a thread

OJBTxManagerClass=org.apache.ojb.odmg.LocalTxManager

# Use the JTATxManager if you want the transaction to be associated via
the Transaction

# manager that is in your application server.

#OJBTxManagerClass=org.apache.ojb.odmg.JTATxManager

#

# 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.odmg.transaction.JBossTransact
ionManagerFactory

# Weblogic Transaction Manager Factory

#JTATransactionManagerClass=org.apache.ojb.odmg.transaction.WeblogicTran
sactionManagerFactory

# WebSphere transaction manager factory

#JTATransactionManagerClass=org.apache.ojb.odmg.transaction.WebSphereTra
nsactionManagerFactory

# Orion transaction manager factory

#JTATransactionManagerClass=org.apache.ojb.odmg.transaction.OrionTransac
tionManagerFactory

#

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

# End of OJB.properties file

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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message