[ 
https://issues.apache.org/jira/browse/OPENJPA-423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dick updated OPENJPA-423:
---------------------------------

    Attachment: OPENJPA-423.patch.txt

> Deadlock victim exception getting sequence value with SQLServer
> ---------------------------------------------------------------
>
>                 Key: OPENJPA-423
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-423
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 0.9.6, 0.9.7, 1.0.0
>            Reporter: Michael Dick
>            Assignee: Michael Dick
>             Fix For: 1.0.1, 1.1.0
>
>         Attachments: OPENJPA-423.patch.txt
>
>
> Opening a JIRA issue for the following problem, originally posted to 
> openjpa-dev mailing list. 
> I've run into tricky issue with Sequence tables on SQLServer.
> After some time during a stress test I get this exception when trying to 
> update the sequence table:
> openjpa.jdbc.SQL: Trace: <t 25198719, conn 17636058> executing prepstmnt 
> 4953425 SELECT SEQUENCE_VALUE FROM OPENJPA_SEQUENCE_TABLE WHERE ID = ? 
> [params=(int) 0]
> . . .
> openjpa.jdbc.SQL: Trace: <t 25198719, conn 17636058> executing prepstmnt 
> 19626156 UPDATE OPENJPA_SEQUENCE_TABLE SET SEQUENCE_VALUE = ? WHERE ID = ? 
> AND SEQUENCE_VALUE = ? [params=(long) 48601, (int) 0, (long) 48551]
> . . .
> java.sql.SQLException: [IBM][SQLServer JDBC Driver][SQLServer]Transaction 
> (Process ID 85) was deadlocked on lock resources with another process and has 
> been chosen as the deadlock victim. Rerun the transaction.
>     at com.ibm.websphere.jdbc.base.BaseExceptions.createException(Unknown 
> Source)
>     at com.ibm.websphere.jdbc.base.BaseExceptions.getException(Unknown Source)
>  . . .
>     at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate 
> (DelegatingPreparedStatement.java:269)
>     at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:856)
> I believe I'm hitting the exception because SQLServer doesn't support the FOR 
> UPDATE clause. Normally the first SQL statement shown above would have locked 
> the row preventing the deadlock. SQLServer does support the WITH (UPDLOCK) 
> hint, but I haven't found a convenient way to isolate the change so that it 
> only affects TableSequences.

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

Reply via email to