LBI Error in validating session

After a system outage, or maintenance, or reboot of LBI, you may encounter this “Error in validating session” error message when trying to navigate around LBI.  If you receive this message, the first step is to check the WebSphere systemout.log.  If you are seeing messages such as “Failed to obtain DB connection from data source” and “Could not retrieve datasource via JNDI url”, this could simply mean that the IBM services didn’t come up in the proper order.  The solution is to bring all the services down (order doesn’t matter), then bring them back up in the proper order, ensuring that each one is completely up before you move onto the next one.  That proper order is: Cell Manager, Node Manager, then Application Server.

[9/7/22 13:18:35:153 PDT] 0000009b ErrorLogger   E org.quartz.core.ErrorLogger schedulerError An error occured while marking executed job complete. job= ‘LBIAdmin.133’

org.quartz.JobPersistenceException: Failed to obtain DB connection from data source ‘ejs’: java.sql.SQLException: Could not retrieve datasource via JNDI url ‘java:comp/env/jdbc/LawsonRS’ javax.naming.ConfigurationException: A JNDI operation on a “java:” name cannot be completed because the server runtime is not able to associate the operation’s thread with any J2EE application component.  This condition can occur when the JNDI client using the “java:” name is not executed on the thread of a server application request.  Make sure that a J2EE application does not execute JNDI operations on “java:” names within static code blocks or in threads created by that J2EE application.  Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on “java:” names. [See nested exception: java.sql.SQLException: Could not retrieve datasource via JNDI url ‘java:comp/env/jdbc/LawsonRS’ javax.naming.ConfigurationException: A JNDI operation on a “java:” name cannot be completed because the server runtime is not able to associate the operation’s thread with any J2EE application component.  This condition can occur when the JNDI client using the “java:” name is not executed on the thread of a server application request.  Make sure that a J2EE application does not execute JNDI operations on “java:” names within static code blocks or in threads created by that J2EE application.  Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on “java:” names.]

at org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:575)

at org.quartz.impl.jdbcjobstore.JobStoreTX.triggeredJobComplete(JobStoreTX.java:1320)

at org.quartz.core.QuartzScheduler.notifyJobStoreJobComplete(QuartzScheduler.java:1490)

at org.quartz.core.JobRunShell.completeTriggerRetryLoop(JobRunShell.java:392)

at org.quartz.core.JobRunShell.run(JobRunShell.java:276)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)

* Nested Exception (Underlying Cause) —————

java.sql.SQLException: Could not retrieve datasource via JNDI url ‘java:comp/env/jdbc/LawsonRS’ javax.naming.ConfigurationException: A JNDI operation on a “java:” name cannot be completed because the server runtime is not able to associate the operation’s thread with any J2EE application component.  This condition can occur when the JNDI client using the “java:” name is not executed on the thread of a server application request.  Make sure that a J2EE application does not execute JNDI operations on “java:” names within static code blocks or in threads created by that J2EE application.  Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on “java:” names.

at org.quartz.utils.JNDIConnectionProvider.getConnection(JNDIConnectionProvider.java:166)

at org.quartz.utils.DBConnectionManager.getConnection(DBConnectionManager.java:111)

at org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:553)

at org.quartz.impl.jdbcjobstore.JobStoreTX.triggeredJobComplete(JobStoreTX.java:1320)

at org.quartz.core.QuartzScheduler.notifyJobStoreJobComplete(QuartzScheduler.java:1490)

at org.quartz.core.JobRunShell.completeTriggerRetryLoop(JobRunShell.java:392)

at org.quartz.core.JobRunShell.run(JobRunShell.java:276)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)