Forum Stats

  • 3,760,368 Users
  • 2,251,694 Discussions
  • 7,871,082 Comments

Discussions

Render Response Phase taking a very long time

User_Q9TKT
User_Q9TKT Member Posts: 48 Red Ribbon
edited May 4, 2018 4:47PM in JDeveloper and ADF

I am using JDEV version 11.1.2.4.0.

I have an ADF Search page (it is NOT using querypanel) with some search fields and a results table.

We are NOT using querypanel so as to achieve the layout that business desires.

After I enter a value in the search field and click on Search it is taking a very long time to display search results.

I started debugging (by implementing PhaseListener) and noticed that till the end of Invoke Application phase (including the execution of the VO query and fetching of 26 rows) it is going quite very fast - no hiccups till this point - Please see below for sample output from application.

However, Render Response phase is taking a very long time (4+ minutes).

I also noticed that NO application code is executing in the Render Response phase - for example, no getters/setters on the managed bean are called and no other application code is invoked still the Render Response phase is taking 4+ minutes to complete.  After the completion of the Render Response phase I finally see the results displayed in the Search Results table.

Note: When I scroll thru the search results past the 26th record, another 26 records are quickly fetched and displayed without any latency.

What could be the root cause of this behavior of Render Response phase?

How to see what (ADF) code is being executed in Render Response phase that is taking so much time?  How to debug/resolve this?  Any known ADF/JSF bugs?

Sample Output from Application on Clicking Search Button:

START PHASE RESTORE_VIEW 1

setCreatedBy - Begin

setResultsTable - Begin

setReasonPopUpBind - Begin

<<<other Managed Bean setters are also called - for brevity, removed those SOPs>>>

END PHASE RESTORE_VIEW 1. Time Taken: 0.016 seconds.

START PHASE APPLY_REQUEST_VALUES 2

END PHASE APPLY_REQUEST_VALUES 2. Time Taken: 0.0010 seconds.

START PHASE PROCESS_VALIDATIONS 3

END PHASE PROCESS_VALIDATIONS 3. Time Taken: 0.0 seconds.

START PHASE UPDATE_MODEL_VALUES 4

END PHASE UPDATE_MODEL_VALUES 4. Time Taken: 0.029 seconds.

START PHASE INVOKE_APPLICATION 5

ActionListener: SearchBean.onSearch() - Begin

VO Query Execution Total Time: 0.071 seconds.

Creating 1 rows of VO

Creating 2 rows of VO

Creating 3 rows of VO

Creating 4 rows of VO

Creating 5 rows of VO

Creating 6 rows of VO

Creating 7 rows of VO

Creating 8 rows of VO

Creating 9 rows of VO

Creating 10 rows of VO

Creating 11 rows of VO

Creating 12 rows of VO

Creating 13 rows of VO

Creating 14 rows of VO

Creating 15 rows of VO

Creating 16 rows of VO

Creating 17 rows of VO

Creating 18 rows of VO

Creating 19 rows of VO

Creating 20 rows of VO

Creating 21 rows of VO

Creating 22 rows of VO

Creating 23 rows of VO

Creating 24 rows of VO

Creating 25 rows of VO

Creating 26 rows of VO

ActionListener: SearchBean.onSearch() - End

END PHASE INVOKE_APPLICATION 5. Time Taken: 0.131 seconds.

START PHASE RENDER_RESPONSE 6

END PHASE RENDER_RESPONSE 6. Time Taken: 252.823 seconds.

Tagged:
User_Q9TKT

Best Answer

  • User_Q9TKT
    User_Q9TKT Member Posts: 48 Red Ribbon
    edited May 4, 2018 4:46PM Accepted Answer

    Thank you Timo for your answer.

    I found the answer to my question pretty much immediately after my post.

    The VO query was taking less time because of the query optimizer hint: FIRST_ROWS(26).

    However, during Render Response phase, to determine the size of the scroll bar ADF is executing select count(1) on the same aforementioned VO query which is taking a very long time.

    For now I fixed the issue by overriding getQueryHitCount method to return -1 in the VOImpl class

Answers

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 37,576 Red Diamond
    edited May 1, 2018 4:50PM

    Does it matter which search you execute?

    What else is on the page?

    What do you get if you just drop the table on a fresh page without your query (just try a simple table with filter).

    Is the result table in edit mode?

    Timo


    User_Q9TKT
  • User_Q9TKT
    User_Q9TKT Member Posts: 48 Red Ribbon
    edited May 4, 2018 4:46PM Accepted Answer

    Thank you Timo for your answer.

    I found the answer to my question pretty much immediately after my post.

    The VO query was taking less time because of the query optimizer hint: FIRST_ROWS(26).

    However, during Render Response phase, to determine the size of the scroll bar ADF is executing select count(1) on the same aforementioned VO query which is taking a very long time.

    For now I fixed the issue by overriding getQueryHitCount method to return -1 in the VOImpl class

This discussion has been closed.