Hi Mark,

I assume in (shitty-I-hate-this-class ;-))
SequenceManagerHighLowImpl is a bug,
because a simple mass store test with an object
(object define more than one autoincrement field)
failed.

By the way, I don't get your attachment. Can you
please send me your test code directly?

regards,
Armin

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]



Reply via email to