3 Replies Latest reply on Jun 21, 2016 5:35 PM by e.*181572*en

    Performance regression in ORDS 3.0.5?

    TobiasE

      Hi all,

       

      I've been trying out the latest ORDS 3.0.5 (deployed on WLS 10.3.6, database is 12.1.0.2), and have noticed that all RESTful requests take significantly longer than in previous versions. Even the simplest RESTful handler, defined as "select 1 from dual" takes over 300ms to execute, whereas the same exact handler on earlier versions (have tried various earlier 3.0.x and 2.0.x versions, and it doesn't seem to vary much) takes around 100ms. Seems a bit ironic, considering that one of the bugs fixed in 3.0.5, according to the release notes, is this one:

       

      • BUG:23146410 - Decrease per request overhead and improve database resource management

       

      Does anyone have similar experiences?

       

      Thank you,

      Tobias

        • 1. Re: Performance regression in ORDS 3.0.5?
          Kiran Pawar

          Hi TobiasE,

          TobiasE wrote:

           

          I've been trying out the latest ORDS 3.0.5 (deployed on WLS 10.3.6, database is 12.1.0.2), and have noticed that all RESTful requests take significantly longer than in previous versions. Even the simplest RESTful handler, defined as "select 1 from dual" takes over 300ms to execute, whereas the same exact handler on earlier versions (have tried various earlier 3.0.x and 2.0.x versions, and it doesn't seem to vary much) takes around 100ms. Seems a bit ironic, considering that one of the bugs fixed in 3.0.5, according to the release notes, is this one:

          • BUG:23146410 - Decrease per request overhead and improve database resource management

          Does anyone have similar experiences?

                Please provide the following info which will help pointing out the issue:

          • Detail Oracle APEX Version (if using ORDS + APEX)
          • Detail Oracle Database Version
          • Detail ORDS Version
          • Detail Supported Java EE Application Server Version (if using one)
          • Detail JDK Version

               NOTE : Here "Detail" means the major+minor version. For e.g. Application Express 4.2.4.00.08

           

               Locate the ORDS configuration folder, edit the config.xml file and paste out the JDBC configuration parameters (jdbc.*) for ORDS 3.0.5, earlier 3.0.x and 2.0.x versions in the forum reply.

           

               Refer the following thread on ORDS Performance:

           

          Regards,

          Kiran

          • 2. Re: Re: Performance regression in ORDS 3.0.5?
            TobiasE

            Hi Kiran,

             

            OK, sure.

             

            • APEX version is 5.0.3 (I've tried using both APEX workspace RESTful services and the schema-based ones in ORDS 3, and the performance seems to be the same)
            • Database version is 12.1.0.2
            • ORDS versions are 3.0.5 (slow) and 2.0.3 (fast). Before 3.0.5 was released, I ran 3.0.4 instead, and couldn't see any performance difference compared to 2.0.3.
            • ORDS (both versions) are deployed on WLS 10.3.6 running on Windows 2008 R2.
            • JDK version is 1.7.0_79.

             

            The JDBC parameters are the same on both versions:

             

            <entry key="jdbc.DriverType">thin</entry>
            <entry key="jdbc.InactivityTimeout">1800</entry>
            <entry key="jdbc.InitialLimit">3</entry>
            <entry key="jdbc.MaxConnectionReuseCount">1000</entry>
            <entry key="jdbc.MaxLimit">50</entry>
            <entry key="jdbc.MaxStatementsLimit">10</entry>
            <entry key="jdbc.MinLimit">3</entry>
            <entry key="jdbc.statementTimeout">9000</entry>
            

             

            Best regards,

            Tobias

            • 3. Re: Performance regression in ORDS 3.0.5?
              e.*181572*en

              I am seeing that APEX web page accesses using ORDS 3.0.5 vs mod_plsql 11.1.1.7 are doing extra logons/logoffs to APEX_REST_PUBLIC_USER which correspond with the number of get_file (#WORKSPACE_IMAGES#) and ajax (dynamic action) calls on the web page.  Mod_plsql only uses the APEX_PUBLIC_USER connection pool whereas APEX uses the connection pool and individual logons/logoffs.  This is despite having APEX rest services turned off.    Seems like the configuration needs to mature some.  The extra connects/disconnects are a performance killer.   I would also like the "defaults" validation function to work on the url mapping ("DADS") level rather than for all databases (for PL/SQL Web Toolkit Applications).