[jira] [Commented] (OFBIZ-3557) Enforced sequence does not work with concurrent access

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (OFBIZ-3557) Enforced sequence does not work with concurrent access

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-3557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040205#comment-13040205 ]

Bilgin Ibryam commented on OFBIZ-3557:
--------------------------------------

Jacopo,

your example cases seems logical to me, one question though:

You said "createInvoice for B assigns InvoiceId 12 and when attempts to store the invoice it gets a duplicated PK error;"

Why there would be duplicate PK error? the previous invoice had id 11?

I think in the second case there wouldn't be any duplicated PK errors. There might be other errors preventing invoice creation and lead to invoiceId gaps?



> Enforced sequence does not work with concurrent access
> ------------------------------------------------------
>
>                 Key: OFBIZ-3557
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-3557
>             Project: OFBiz
>          Issue Type: Bug
>          Components: framework
>    Affects Versions: Release Branch 09.04, SVN trunk
>            Reporter: Wickersheimer Jeremy
>         Attachments: OFBIZ-3557-1.patch, OFBIZ-3557-2.patch
>
>
> There is a fundamental issue with enforced sequences (for orders, invoices, etc ..) and concurrency.
> For example if two users are creating an order at the same time one of them will see the creation fail with a PK error. The problem is that the "getNextXXXId" rely on the party accounting preference entity, but there is absolutely no guarantee that the last number in the sequence gets updated before another service can read it.
> This is at best very annoying when used only internally but may be unpractical for e-commerce sites.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira