project_key: JBEPP See GTNPORTAL-2340
Release Notes Docs Status: Added: Not Yet Documented Release Notes Text: Added: PROBLEM: WebAppController needs to start RequestLifeCycle for every processing (including static resource processing). And starting of requestLifeCycle is quite expensive as it requires starting of Hibernate transaction among other things. This means that we need to start Hibernate transaction for processing of images and other static resources, which does not makes sense and it's not ideal from performance perspective. SOLUTION: Adding new method to WebRequestHandler class, so handlers can decide if they need to start RequestLifeCycle or not. Handlers for sending requests to portal (like PortalRequestHandler) needs to start transaction, but handlers for processing static resources (like StaticResourceHandler) don't need it. So now we are not starting Hibernate transaction anymore for processing images.
Link: Added: This issue is related to GTNPORTAL-2340
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: CAUSE: WebAppController needs to start RequestLifeCycle for every processing (including static resource processing). And starting of requestLifeCycle is quite expensive as it requires starting of Hibernate transaction among other things. This means that we need to start Hibernate transaction for processing of images and other static resources, which does not makes sense and it's not ideal from performance perspective. FIX: Adding new method to WebRequestHandler class, so handlers can decide if they need to start RequestLifeCycle or not. Handlers for sending requests to portal (like PortalRequestHandler) needs to start transaction, but handlers for processing static resources (like StaticResourceHandler) don't need it. So now we are not starting Hibernate transaction anymore for processing images.
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1,12 +1 @@ -CAUSE: WebAppController needs to start +A performance impact was discovered in the WebAppController that required RequestLifeCycle to be started for all processing, including static resources. Because RequestLifeCycle requires Hibernate transactions, this service needed to be started for all processing, which introduced a performance implication. The fix adds a new method (getRequireLifeCycle) to the WebRequestHandler class, which allows handlers to decide whether RequestLifeCycle is required to complete the transaction. Hibernate is only called for handlers sending requests to the portal, and not for handlers processing images.-RequestLifeCycle for every processing (including static resource processing). -And starting of requestLifeCycle is quite expensive as it requires starting of -Hibernate transaction among other things. This means that we need to start -Hibernate transaction for processing of images and other static resources, -which does not makes sense and it's not ideal from performance perspective. - -FIX: Adding new method to WebRequestHandler class, so handlers can decide -if they need to start RequestLifeCycle or not. Handlers for sending requests to -portal (like PortalRequestHandler) needs to start transaction, but handlers for -processing static resources (like StaticResourceHandler) don't need it. So now -we are not starting Hibernate transaction anymore for processing images.