Sambit Mohanty created CAMEL-9185:
-------------------------------------
Summary: Quartz Scheduler unable to recover from a database outage
Key: CAMEL-9185
URL: https://issues.apache.org/jira/browse/CAMEL-9185
Project: Camel
Issue Type: Bug
Reporter: Sambit Mohanty
Hi,
Currently we have an implementation of Camel 2.12.1 and quartz .
The job states are being persisted in the database using the trigger tables.
After a database outage the scheduler is not able to revive and throws jdbc
connection exception. I have provided a stack trace below. Please what could be
the resolution steps.
QuartzScheduler_CSAClusteredScheduler-_ClusterManager ERROR o.q.i.j.JobStoreTX
ClusterManager: Error managing cluster: Failed to obtain DB connection from
data source 'csaDS': java.sql.SQLException: Could not retrieve datasource via
JNDI url 'java:comp/env/jdbc/CSA' 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.
org.quartz.JobPersistenceException: Failed to obtain DB connection from data
source 'csaDS': java.sql.SQLException: Could not retrieve datasource via JNDI
url 'java:comp/env/jdbc/CSA' 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:777)
~[quartz-2.2.0.jar:na]
at
org.quartz.impl.jdbcjobstore.JobStoreTX.getNonManagedTXConnection(JobStoreTX.java:71)
~[quartz-2.2.0.jar:na]
at
org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin(JobStoreSupport.java:3213)
~[quartz-2.2.0.jar:na]
at
org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:3836)
[quartz-2.2.0.jar:na]
at
org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.run(JobStoreSupport.java:3873)
[quartz-2.2.0.jar:na]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)