db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DERBY-5426) Improve the error raised by too much contention on a sequence/identity.
Date Wed, 21 Sep 2011 18:53:09 GMT
Improve the error raised by too much contention on a sequence/identity.
-----------------------------------------------------------------------

                 Key: DERBY-5426
                 URL: https://issues.apache.org/jira/browse/DERBY-5426
             Project: Derby
          Issue Type: Improvement
          Components: SQL
    Affects Versions: 10.8.2.1, 10.9.0.0
            Reporter: Rick Hillegas


Currently, when there is too much contention on a sequence/identity, Derby raises an error
saying so. There are two properties which the user can adjust in order to reduce the risk
of this error:

derby.locks.waitTimeout
derby.language.sequence.preallocator

It would be good to point the user at these knobs. The following change would improve this
error reporting:

1) Raise a lock timeout SQLException

2) Chain a "too much contention" SQLException (X0Y84) to the lock timeout.

3) Make the "too much contention" exception suggest that the user adjust the properties mentioned
above.

To make the code easier to understand, the exception raising could replace the loop exit inside
the following "if" block in SequenceUpdater.getCurrentValueAndAdvance():

            if (
                (_lockTimeoutInMillis >= 0L) &&
                ( (System.currentTimeMillis() - startTime.longValue()) > _lockTimeoutInMillis
)
                )
            {
                break;
            }

This approach was recommended by the discussion on DERBY-5423.


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

        

Mime
View raw message