System is not adding entry into pr_sys_context table
A user cannot log in if already logged in. If the user has already logged in, another session will not be opened and an error message is thrown.
When user has already logged in, an entry is added into custom table and this entry would be removed when the user logged off or requestor is timed out. Agent runs for every 15 mins to check for pr_sys_context table, and if entry is available in pr_sys_context table then that user record is cleared from custom table. If the entry is available in custom table, another session will not be logged in with the user.
But sometimes, if the session timed out, entry is not added to pr_sys_context table. The agent does not pick the record. Another session cannot be logged in.
User added the below entry in prconfig xml file to save into pr_sys_context table.
<env name="initialization/persistrequestor/storage" value="database" />
Steps to Reproduce
1. Log in to application.
2. Keep the session idle till it is timed out.
An issue in the custom application code or rules:
The previous session is not passivated unless the passivation daemon is run. Despite the entry made by user in custom table, user cannot log in to system, since there is no entry in pr_sys_context table for the old session.
Define an activity with a Java step, and write Java code as below to delete the stale requestor, which is active but not visible in ‘pr_sys_context’ table.
The statement given below returns a string value, which is the list of requestors in XML format.
Object test =
// test is an instance of string , for any string operations please type
cast test to String object.
String specific operations, like the example below, can be performed.
Boolean checkActive = test.contains("REQUESTOR_ID");
Published April 4, 2016 - Updated October 8, 2020
Was this useful?
0% found this useful
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.