1 Reply Latest reply on Mar 14, 2007 12:37 PM by genman

    Quartz MBean cannot find Classloader

      Hi,

      Loading a deploy/quartz-service.xml works quite nicely upon startup, but if there is a class in the Quartz Job table, the MBean-launched service can't find the classloader. I attempted to resolve it with a element, but after reading for hours, there are no clear answers. There are some posts that skirt the issue, but no best practice or practical replies.

      Following is the descriptor, then the error:

      <server>
      
       <classpath codebase="." archives="MyApp.ear" />
      
       <mbean code="org.quartz.ee.jmx.jboss.QuartzService"
       name="user:service=QuartzService,name=QuartzService">
       <depends>jboss.jca:service=DataSourceBinding,name=MyDS</depends>
      
       <attribute name="Properties">
       # Default Properties file for use by StdSchedulerFactory
       # to create a Quartz Scheduler Instance, if a different
       # properties file is not explicitly specified.
       #
      
       # org.quartz.scheduler.classLoadHelper.class =
      
       org.quartz.scheduler.instanceName = MyScheduler
       org.quartz.scheduler.rmi.export = false
       org.quartz.scheduler.rmi.proxy = false
       org.quartz.scheduler.xaTransacted = false
      
       org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
       org.quartz.threadPool.threadCount = 5
       org.quartz.threadPool.threadPriority = 4
       org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
       org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
       org.quartz.jobStore.useProperties=false
       org.quartz.jobStore.dataSource=MYDS
       org.quartz.jobStore.isClustered=false
       org.quartz.dataSource.MYDS.jndiURL = java:/MyDS
       org.quartz.jobStore.tablePrefix = QRTZ_
      
       #org.quartz.jobStore.nonManagedTXDataSource = QUARTZ_NO_TX
       #org.quartz.dataSource.QUARTZ_NO_TX.jndiURL = java:/jdbc/QuartzNoTxDS
      
       org.quartz.jobStore.misfireThreshold = 60000
       </attribute>
       </mbean>
      

      ERROR:
      --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
      ObjectName: user:service=QuartzService,name=QuartzService
      State: FAILED
      Reason: org.quartz.SchedulerConfigException: Failed to start Scheduler - [See nested exception: org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Couldn't retrieve trigger: No ClassLoaders found for: com.mycom.dto.TimerInfo [See nested exception: java.lang.ClassNotFoundException: No ClassLoaders found for: com.mycom.dto.TimerInfo]]]
      I Depend On: