openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joe Pullen (JIRA)" <>
Subject [jira] Commented: (OPENJPA-466) Primary key constraint violated using (Oracle) sequence to generate ID in multithreaded app
Date Sat, 26 Sep 2009 11:55:16 GMT


Joe Pullen commented on OPENJPA-466:

Today came back to this issue get the patch and was surprised that after the first fix there
was more discussion. Just wanted to say from my view the original patch from Tim did the job

As Tim stated I can tell you that the original patch was def needed and helped solve a major
issue with an application running on 4 T2000 Solaris machines (each with 64 cores, yes 256
cores !). This J2EE app has processed 10 millions of business transactions with throughput
in peak of 100,000s business transactions (equals to 250,000 JTA and over a million SQL statements)
per hour without a SINGLE duplicate primary key error related to sequences.

> Primary key constraint violated using (Oracle) sequence to generate ID in multithreaded
> -------------------------------------------------------------------------------------------
>                 Key: OPENJPA-466
>                 URL:
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.0.0, 1.0.1, 1.1.0, 1.2.0
>         Environment: OpenJPA 1.0.0 (also tried 1.0.1 and 1.1.0-SNAPSHOT)
> Oracle XE 10g (JDBC driver
> Windows XP Pro
>            Reporter: Frank Le
>            Assignee: Milosz Tylenda
>            Priority: Blocker
>             Fix For: 1.0.4, 1.2.2, 1.3.0, 2.0.0-M3
>         Attachments: OPENJPA-466-1.0.x.patch, OPENJPA-466-1.2.x.patch, OPENJPA-466-SYNCRONIZED.patch,
OPENJPA-466.patch, OPENJPA-466.patch, volatile.patch
> Here's how I annotate the ID:
>     @Id
>     @SequenceGenerator(name = "FooSeq", sequenceName = "seq_foo", allocationSize = 20)
>     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "FooSeq")
>     private Long id;
> Here's how I create the (Oracle) sequence:
> I get a primary key unique constraint violated in a multithreaded app i.e. it doesn't
happen in single-threaded!
> You can simply reproduce this error by either create blocking queue or blocking thread
pool say size 5 to insert 10000+ object.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message