Increase the session timeout of Oracle BPM Worklist app
The Oracle BPM Worklist app is a part of the Oracle SOA Suite. Working with the Worklist app is very annoying, because the default timeout is very short (seconds!). So after getting a cup of coffee or reading a mail you have to login again.
Solving this problem seems quite easy by increasing the session timeout in your (generated) ADF human task or in the worklist app in the weblogic console, but it all doesn’t work.
The solution for this annoying issue is quite easy, once you know where and how. Here is the trick.
First we need to create a deployment plan for the worklistapp. When you already have one, you can skip step 1 to 5 and continue with step 6.
1. Navigate in the Weblogic console to “Deployments” (in the menu on the left) and search in the list for “worklistapp”.
2. Expand the worklistapp [+] and under Modules click on Web Application “/integration/worklistapp”.
3. Go to the “Configuration” tab (subtab “General”).
4. Change the value of the “Session Timeout (in seconds)” to something else (it must be a different value).
5. Save and follow the weblogic directions to create a deployment plan (plan.xml).
6. Locate you deployment plan by going the “Deployments” page and search again for “worklistapp”.
7. Instead of expanding, click on the “worklistapp”.
8. You can see the location of your deployment plan under tab “Overview” after property “Path”.
9. Go to this location on the machine (server) where the BPM Worklist (SOA Suite) is installed.
10. Make a copy of the plan (e.g. Plan2.xml), leaving the original one as ‘backup’.
11. Edit the new deployment Plan2.xml file.
12. Search in the beginning of the file for the setting with the name SessionDescriptor_timeoutSecs_xxxxxxxxxxxxxx where x is a digit
Edit the value for the timeout you desire. The timeout value you define proves to be in minutes (not seconds, despite of the name)!
e.g. in my case, I’ve set the timeout to 45 minutes:
<variable> <name>SessionDescriptor_timeoutSecs_13064193293970</name> <value>45</value> </variable>
13. Search for the node “module-override” of the “worklist.war” module (xpath: /deployment-plan/module-override/module-name).
14. In this “module-override” node, there is a child node “module-descriptor” that contains child node “root-element” with value “web-app”, probably the last child node of node “module-override”).
Note: Don’t confuse it with node “module-descriptor” with “root-element” node “weblogic-web-app”.
15. When you’ve found the correct “module-descriptor” node, add the following child nodes after child node “uri”, which should have value “WEB_INF/web.xml”, and replace the xxxxxxxxxxxxxx with the same digits you have found in step 12:
<variable-assignment> <name>SessionDescriptor_timeoutSecs_xxxxxxxxxxxxxx</name> <xpath>/web-app/session-config/session-timeout</xpath> <operation>replace</operation> </variable-assignment>
e.g in my case:
<module-descriptor external="false"> <root-element>web-app</root-element> <uri>WEB-INF/web.xml</uri> <variable-assignment> <name>SessionDescriptor_timeoutSecs_13064193293970</name> <xpath>/web-app/session-config/session-timeout</xpath> <operation>replace</operation> </variable-assignment> </module-descriptor>
16. Save the file.
17. Go back to the Weblogic console and again go to the “Deployments” page.
18. Select “worklistapp” [v]
18. Stop the “worklistapp” with the Stop button.
19. Select “worklistapp” [v] again.
20. With the “Update” button use your new deployment plan (e.g. Plan2.xml)
Note: When there are problems (errors) with updating other applications as well, stop the other applications and restart them after the update of the “worklistapp”.
21. Start the “worklistapp”.
You can check if it works bij checking the session timeout of a session.
22. First login into the BPM Worklist to create a session.
23. In the Weblogic admin console, go to the “Deployments” page and search for the “worlistapp” again.
24. Expand the “worklistapp” [+] and under Modules click on Web Application “/integration/worklistapp”.
25 Click on tab “Monitoring” and select subtab “Sessions”.
26. If you’ve done it correctly, the “Max Inactive Interval” is set to your value multiplied by 60 (minutes to seconds).
e.g. in my case, it’s 2700 (45 * 60).
And from now on a less annoying life has began!
- Report from Oracle Open World 2007 – Slides from our Knowledge session
- The Golden Hammer – Dutch Oracle User Group Session on JDeveloper 11g Technology Preview 3
- Session announcement: Oracle Service Bus (25 feb 2009)
- How to let your user know his session has expired in an ADF10g application
- AMIS Query – Preview Session Oracle Open World 2008
- Weblogic Admin and Managed servers as a Windows service
- Hotsos Revisited 2013 – Presentatie materiaal
- ADF DVT Speed Date: Interactive Bubble Graph
- Oracle SQL – Finding free adjacent seats in an airplane, using Subquery Factoring, Analytical Functions (LISTAGG and LEAD), Outer Join, PIVOT and good old INSTR
- Oracle SQL – spotting combinations that occur and those that do not – demonstrating Analytical Functions, Outer Join and SubQuery Factoring
- How Oracle Database uses internal locks to make statement level constraint validation robust at the transaction level
- OTN Yathra 2013 – Spreading the story of Oracle across India – (Half time)
- Creating an hierarchical user structure in embedded LDAP of weblogic
- The Very Very Latest in Database Development – slides from the Expertezed presentation
- Oracle SOA Suite 11g PS 5 introduces BPEL with conditional correlation for aggregation scenarios