0 Replies Latest reply on Jun 20, 2016 1:52 AM by Capt. Egg

    Connection Pool settings for production environment

    Capt. Egg

      We started using ORDS in development, just to get some exposure to it and try out RESTful services. Using default connection pool settings in our dev environment rapidly leads to HTTP-500 ORDS error page: "All connections in the Universal Connection Pool are in use", but only it seems when accessing RESTful services. I did a bit of research and it seems connection pooling can be detrimental if over used, I'm confused what the course of action should be so I just essentially disabled it I think in development, here's my defaults.xml:


      <entry key="jdbc.DriverType">thin</entry>

      <entry key="jdbc.InactivityTimeout">1800</entry>

      <entry key="jdbc.InitialLimit">1</entry>

      <entry key="jdbc.MaxConnectionReuseCount">1</entry>

      <entry key="jdbc.MaxLimit">1</entry>

      <entry key="jdbc.MaxStatementsLimit">10</entry>

      <entry key="jdbc.MinLimit">1</entry>

      <entry key="jdbc.statementTimeout">900</entry>


      We no longer get HTTP 500 errors calling RESTful services with this configuration.


      Dietmar Aust of Opal Consulting has a great guide which recommends increasing these limits. However, I also note that too much connection pooling action can cause problems too... https://www.youtube.com/watch?v=Oo-tBpVewP4


      Should I also disable Connection Pooling in production as I have done in development? If not, how do I know if the limits are high enough but not too high?


      Why does a vanilla install of ORDS fail so hard out of the box when just accessing RESTful services a few times?


      We are using ORDS on the RHEL7 packaged version of Tomcat (7.0.54). We had the same issue with ORDS 3.0.3 from memory.


      We would like to proceed with using ORDS in a production environment, if only exclusively for the RESTful services feature for now. Any advice on this matter would be greatly appreciated.