OUCH!! If this doesn't work, the it's a MAJOR problem. Has someone verified in using the PB API in a multi-system environment? Given that it's using a database sequence, it shouldn't be a problem. It's got to be a bug.
On Mon, 2003-11-03 at 04:37, Mark Rowell wrote: > Hi > > Further to my mails last week re auto incremented primary keys (integers) > across extents I have created a very simple (non Junit based) test that > starts 2 JVMs that write A number of instances of a concrete class into a > table using the PerssitenceBroker API. > > As it is currently setup, 2 JVMs are started that each attempt to insert > 1000 instances. Everytime I have run it (10+) I get less than 2000 rows in > the database or I will get a parimary key violation As one JVM attempts to > store and ID that has already been created by the other JVM. > > I was under the impression that the default highLow sequence implementation > would work across JVMs for allocating IDs? > > The attached zip file has everything in it. If one of the OJB developers > could take a look at it I would appreciate it. > > Here is the stack trace: > > com.jnetdirect.jsql.v: Violation of PRIMARY KEY constraint > 'PK__Test__72F0F4D3'. Cannot insert duplicate key in object 'Test'. > at com.jnetdirect.jsql.v.a(Unknown Source) > at com.jnetdirect.jsql.at.a(Unknown Source) > at com.jnetdirect.jsql.af.i(Unknown Source) > at com.jnetdirect.jsql.af.new(Unknown Source) > at com.jnetdirect.jsql.af.int(Unknown Source) > at com.jnetdirect.jsql.ao.executeUpdate(Unknown Source) > at > org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(Unknow > n Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown So > urce) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown > Source > ) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown > Source > ) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown > Source) > at Test.main(Test.java:44) > rethrown as org.apache.ojb.broker.PersistenceBrokerSQLException: Violation > of PR IMARY KEY constraint 'PK__Test__72F0F4D3'. Cannot insert duplicate key > in object 'Test'. > at > org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(Unknow > n Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown So > urce) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown > Source > ) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown > Source > ) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown > Source) > at Test.main(Test.java:44) > Caused by: com.jnetdirect.jsql.v: Violation of PRIMARY KEY constraint > 'PK__Test_ _72F0F4D3'. Cannot insert duplicate key in object 'Test'. > at com.jnetdirect.jsql.v.a(Unknown Source) > at com.jnetdirect.jsql.at.a(Unknown Source) > at com.jnetdirect.jsql.af.i(Unknown Source) > at com.jnetdirect.jsql.af.new(Unknown Source) > at com.jnetdirect.jsql.af.int(Unknown Source) > at com.jnetdirect.jsql.ao.executeUpdate(Unknown Source) > ... 7 more > > > I am using RC4. This test has no caching. The RDBMS is SQLServer2000. > > To run the test extract the zip file to some directory. Go into that > directory and create a lib sub-dir. > Copy the RC4 jar all the commons jars (and the Jar that contains the logging > code -- in my case log4j) > > You will need a batch file called JDK14.BAT somewhere on you path that sets > the path to point to the JDK. > The batch file run.bat starts 2 JVMs that write the info into the database. > > Regards > > Mark Rowell > > ------------------------------------------- > Mark Rowell > Structured Credit Europe > CreditTrade Limited > 180 Fleet Street > London EC4A 2HG > > Tel +44 (0)20 7400 5078 > Fax +44 (0)20 7400 5099 > > http://www.credittrade.com > > > > > > CreditTrade Limited is regulated by the FSA. (c) CreditTrade 2002. All rights > reserved. The information and data contained in this email is provided for the > information purposes of the addressee only and should not be reproduced and/or > distributed to any other person. It is provided without any warranty whatsoever and > unless stated otherwise consists purely of indicative market prices and other > information. > > Any opinion or comments expressed or assumption made in association with the data or > information provided in this email is a reflection of CreditTrades judgement at the > time of compiling the data and is subject to change. CreditTrade hereby makes no > representation and accepts no responsibility or liability as to the completeness or > accuracy of this email. > > The content of this email is not intended as an offer or solicitation for, or > recommendation of, the purchase or sale of any financial instrument, or as an > official confirmation of any transaction, and should not be construed as investment > advice. > > ______________________________________________________________________ > > --------------------------------------------------------------------- > 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]
