I am not using the ODMG API. I do see a beginTransaction call in the try/catch/finally block. Is there something more I need to do. Raghavan
-----Original Message----- From: Armin Waibel [mailto:[EMAIL PROTECTED] Sent: Thursday, September 16, 2004 1:00 AM To: OJB Users List Subject: Re: Optimistic Locking exception with 1.0 - doesn't happen with rc4 oh, sorry policy.setSyncSeqNum seems to be mapped to column SYNC_SEQ_NUM, so the answer is no ;-) So all things seem to be ok - strange. Method JdbcAccess#executeUpdate doesn't change much between rc4 and 1.0.1. >>> 14-Sep-2004 16:23:42 WARN [010-Processor25] >>> .broker.core.PersistenceBrokerImpl >>> No running tx found, please only store in context of an >>> PB-transaction, to avoid side-effects - e.g. when rollback of >>> complex Seems you try to store objects without a running PB-tx, please fix this in your code. Armin Armin Waibel wrote: > Hi Raghavan, > > do you increment the optimistic locking field by yourself with > > policy.setSyncSeqNum(SynchronizationLogic.getNextSynchronizationSequen > ce > Number().longValue()); > > ?? > OJB itself does increment/reset the locking field, if you increment > too, > all the time a OLException will be thrown. > > regards > Armin > > > Kollivakkam R. Raghavan wrote: > >> Yes! Happens all the time. My repository file is attached. I am >> using an integer version counter and set it up to have OJB provide >> the value. It happens, when I'm trying to execute the following code. >> The table declaration and the repository file are also attached. As >> you can see it's pretty vanilla OJB code - nothing fancy. >> >> ----------------------- >> private static void savePolicyRecord(AbstractConfigPolicyData policy, >> AMCContext context) throws AMCException >> { >> PersistenceBroker broker = null; >> if (context != null && context.getUser() != null) { >> policy.setModifierId(context.getUser().getId()); >> } >> policy.setModificationTime(new Date()); >> >> policy.setSyncSeqNum(SynchronizationLogic.getNextSynchronizationSeque >> nce >> Number().longValue()); >> try >> { >> broker = >> PersistenceBrokerFactory.defaultPersistenceBroker(); >> broker.beginTransaction(); >> broker.store(policy); >> broker.commitTransaction(); >> >> } >> catch(PBFactoryException ex) >> { >> log.error(PB_FACTORY_EXCEPTION, ex); >> throw new AMCException(DATABASE_ERROR_KEY, ex, >> DATABASE_ERROR_CODE); >> } >> catch(PersistenceBrokerException ex) >> { >> log.error(PERSISTENCE_BROKER_EXCEPTION, ex); >> throw new AMCException(DATABASE_ERROR_KEY, ex, >> DATABASE_ERROR_CODE); >> } >> finally >> { >> if (broker != null) >> { >> broker.close(); >> } >> } >> } >> >> ----------------- >> >> Table definition >> CREATE TABLE AMC_NODE_PSET >> ( >> ID int not null identity primary key, >> MODIFICATION_TIME timestamp default 'now' not null, >> MODIFIER_ID int, >> MOD_NUM int not null, >> CREATED timestamp default 'now' not null, >> NODE_ID int, >> DR_ID int, >> GOLDEN_CONFIG_ID int, >> POLICY_TYPE varchar(4) not null, >> BUNDLE_TYPE int default '1' not null, -- '1' >> - ama, '2' - aons >> CONFIG_STATE char not null, -- 'G' - Golden >> Config, 'A' - Add, 'M' - Modified, 'D' - Delete, 'R' - Archived. >> SYNC_SEQ_NUM bigint not null, >> DATA image, >> NAME varchar(64) not null, >> QNAME varchar(64) not null, >> DESCRIPTION varchar(64), >> EXT1 image, >> EXT2 varchar(64), >> EXT3 varchar(64), >> >> foreign key(NODE_ID) references AMC_AONS_NODE(ID), >> foreign key(DR_ID) references AMC_NODE_DR(ID), >> foreign key(MODIFIER_ID) references AMC_USER(ID) >> ); >> >> -----Original Message----- >> From: Brian McCallister [mailto:[EMAIL PROTECTED] >> Sent: >> Tuesday, September 14, 2004 6:14 PM >> To: OJB Users List >> Subject: Re: Optimistic Locking exception with 1.0 - doesn't happen with >> rc4 >> >> >> I presume you can reliably replicate it, can you provide more >> information about when it is happening? >> >> Database, mapping for the optimistic TX field etc? >> >> There were a couple changes to optimistic tx's when using a timestamp >> instead of version counter. >> >> Any chance you can send a unit test which causes this to happen? If >> not, enough information on exactly when it happens so that I can do so >> would be appreciated! >> >> -Brian >> >> On Sep 14, 2004, at 8:03 PM, Kollivakkam R. Raghavan wrote: >> >> >>> I am getting the following exception with an optimistic locking >>> which >>> does not happen with rc4. Did something change? We are about to use >>> OJB in production and I wanted to switch to the release version. >>> Please >>> help. >>> Thanks Raghavan >>> >>> >>> ------------------ >>> >>> >>> >>> at java.lang.Thread.run(Unknown Source) >>> Caused by: org.apache.ojb.broker.OptimisticLockException: Object has >>> been modifi ed by someone else >>> at >>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeUpdate(JdbcAc >>> cessImpl.java:485) >>> at >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Persistenc >>> eBrokerImpl.java:1641) >>> at >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBro >>> kerImpl.java:1542) >>> at >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBro >>> kerImpl.java:705) >>> at >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Delegati >>> ngPersistenceBroker.java:174) >>> at >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Delegati >>> ngPersistenceBroker.java:174) >>> a:1770) >>> ... 40 more >>> >>> Additional exceptions : >>> >>> 14-Sep-2004 16:23:42 WARN [010-Processor25] >>> .broker.core.PersistenceBrokerImpl >>> No running tx found, please only store in context of an >>> PB-transaction, to avoid side-effects - e.g. when rollback of complex >> >> >> >>> objects 14-Sep-2004 16:23:42 ERROR [010-Processor25] Database error: >>> PersistenceBrokerException was caught >>> org.apache.ojb.broker.OptimisticLockException: Object has been >>> modified by someo ne else >>> at >>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeUpdate(JdbcAc >>> cessImpl.java:485) >>> at >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Persistenc >>> eBrokerImpl.java:1641) >>> at >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBro >>> kerImpl.java:1542) >>> at >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBro >>> kerImpl.java:705) >>> at >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Delegati >>> ngPersistenceBroker.java:174) >>> at >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Delegati >>> ngPersistenceBroker.java:174) >>> >>> >>> -------------------------------------------------------------------- >>> - >>> 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] >> >> >> >> --------------------------------------------------------------------- >> --- >> >> <class-descriptor class="com.cisco.aons.amc.data.NodePSet" >> table="AMC_NODE_PSET"> >> >> <field-descriptor >> name="id" >> autoincrement="true" >> primarykey="true" >> nullable="false" >> column="ID" >> jdbc-type="INTEGER"/> >> >> <field-descriptor >> name="modificationTime" >> nullable="false" >> column="MODIFICATION_TIME" >> jdbc-type="TIMESTAMP" >> >> conversion="org.apache.ojb.broker.accesslayer.conversions.JavaDate2Sq >> lTimestampFieldConversion"/> >> >> >> <field-descriptor >> name="modifierId" >> column="MODIFIER_ID" >> jdbc-type="INTEGER"/> >> >> <field-descriptor >> name="modNum" >> nullable="false" >> column="MOD_NUM" >> jdbc-type="INTEGER" >> locking="true"/> >> <field-descriptor name="created" >> nullable="false" column="CREATED" >> jdbc-type="TIMESTAMP" >> conversion="org.apache.ojb.broker.accesslayer.conversions.JavaDate2SqlTi mestampFieldConversion"/> >> <field-descriptor >> name="nodeId" >> column="NODE_ID" >> jdbc-type="INTEGER"/> <field-descriptor >> name="drId" >> column="DR_ID" >> jdbc-type="INTEGER"/> >> <field-descriptor >> name="goldenConfigId" >> column="GOLDEN_CONFIG_ID" >> jdbc-type="INTEGER"/> >> <field-descriptor >> name="policyType" >> nullable="false" >> column="POLICY_TYPE" >> jdbc-type="VARCHAR" >> >> conversion="com.cisco.aons.amc.data.conversion.PolicyTypeConvertor"/> >> >> <field-descriptor >> name="bundleType" >> nullable="false" >> column="BUNDLE_TYPE" >> jdbc-type="INTEGER"/> <field-descriptor >> name="configState" >> nullable="false" >> column="CONFIG_STATE" >> jdbc-type="CHAR"/> >> <field-descriptor name="syncSeqNum" >> nullable="false" >> column="SYNC_SEQ_NUM" jdbc-type="BIGINT"/> >> <field-descriptor name="data" column="DATA" >> jdbc-type="VARBINARY"/> <field-descriptor >> name="name" >> nullable="false" >> column="NAME" >> jdbc-type="VARCHAR"/> >> >> <field-descriptor >> name="qualifiedName" >> nullable="false" >> column="QNAME" >> jdbc-type="VARCHAR"/> >> >> <field-descriptor >> name="description" >> column="DESCRIPTION" >> jdbc-type="VARCHAR"/> >> <field-descriptor >> name="ext1" >> column="EXT1" >> jdbc-type="VARBINARY"/> >> <field-descriptor >> name="ext2" >> column="EXT2" >> jdbc-type="VARCHAR"/> >> >> <field-descriptor >> name="ext3" >> column="EXT3" >> jdbc-type="VARCHAR"/> </class-descriptor> >> >> >> --------------------------------------------------------------------- >> --- >> >> --------------------------------------------------------------------- >> 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] > > > --------------------------------------------------------------------- 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]
