Hi,

I am trying to set up quartz in clustered mode to work with camel quartz in
my camel route.

(i.e) we have deployed the bundle with the camel route having camel quartz
endpoint, in all the cluster nodes. But I would like to have my camel route
triggered only in one of the nodes in the cluster at the scheduled time & I
am hoping that if the camel quartz refers to quartz in clustered mode, then
the trigger will reach the camel route in only one node.

The datasources are available as OSGI services in the cluster. But I need to
configure the data source by its name (JNDI name) in the quartz properties
of the QuartzComponent & I am getting a missing datsasource exception. Pls.
find attached the spring xml with the camel route   beans.xml
<http://camel.465427.n5.nabble.com/file/n5738400/beans.xml>  

Any suggestions to make this work are welcome. Kindly help.

Thanks,
Lakshmi


Code snippet used for clustering:
<bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
<property name="properties">
<props>
  <prop
key="dataSource">osgi:service/javax.sql.DataSource/(dataSourceName=default)</prop>
 
  <prop key="org.quartz.jobStore.dataSource">
osgi:service/javax.sql.DataSource/(dataSourceName=default)</&lt;/prop>
    …
</props>
</property>
</bean>



Exception trace: org.quartz.JobPersistenceException: Failed to obtain DB
connection from data source 'default': java.sql.SQLException: There is no
DataSource named
'osgi:service/javax.sql.DataSource/(dataSourceName=default)'[See nested
exception: java.sql.SQLException: There is no DataSource named 'default']
       at
org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:715)
       at
org.quartz.impl.jdbcjobstore.JobStoreTX.getNonManagedTXConnection(JobStoreTX.java:69)
       at
org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3785)
       at
org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:90)
       at
org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3693)
       at
org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1561)
       at
org.quartz.core.QuartzScheduler.getTrigger(QuartzScheduler.java:1448)
       at org.quartz.impl.StdScheduler.getTrigger(StdScheduler.java:551)
Caused by: java.sql.SQLException: There is no DataSource named
'osgi:service/javax.sql.DataSource/(dataSourceName=default)'
       at
org.quartz.utils.DBConnectionManager.getConnection(DBConnectionManager.java:105)
       at
org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:712)


org.quartz.JobPersistenceException: Failed to obtain DB connection from data
source 'jdbc/DefaultDB': java.sql.SQLException: There is no DataSource named
'jdbc/DefaultDB' [See nested exception: java.sql.SQLException: There is no
DataSource named 'jdbc/DefaultDB']





--
View this message in context: 
http://camel.465427.n5.nabble.com/Missing-datasource-exception-while-referring-to-OSGI-datasource-for-clustering-quartz-with-camel-quaz-tp5738400.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to