You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "John Huss (JIRA)" <ji...@apache.org> on 2013/08/16 23:29:47 UTC

[jira] [Created] (CAY-1864) Process threads waiting for an available DB connection in the order they came in

John Huss created CAY-1864:
------------------------------

             Summary: Process threads waiting for an available DB connection in the order they came in
                 Key: CAY-1864
                 URL: https://issues.apache.org/jira/browse/CAY-1864
             Project: Cayenne
          Issue Type: Improvement
          Components: Core Library
    Affects Versions: 3.2M1
            Reporter: John Huss
            Assignee: John Huss


Currently when all the DB connections in the pool are used up threads will wait for available connection.  As connections become available they are given to essentially random threads, not the thread that was waiting first.  This causes somewhat erratic behavior since some requests will come in and get a connection right away even though others have been waiting for a long time, eventually causing more threads to throw exceptions than may have been necessary if requests were processed in order.  

Particularly in cases with large but brief spikes in activity - errors may be wholly avoided if requests are processed in order where otherwise they could produce many failures.  I have observed this in my testing.

I have a patch I am testing out.  It creates a queue to keep track of the waiting threads and then grant them connections in order.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira