Announcement Announcement Module
Collapse
No announcement yet.
SchedulerFactoryBean deadlock Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • SchedulerFactoryBean deadlock

    Hi all,

    I'm having deadlock issues using the SchedulerFactoryBean (Quartz integration) in a clustered environment. The environment specifics are: Jdk 1.4, clustered Borland Enterprise Server, Oracle 9i, using the OpenSessionInViewFilter. Here is the code for the scheduler factory creation:

    Code:
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
    <property name="dataSource"> 
    <ref bean="dataSource"/> 
    </property> 
    <property name="autoStartup"> 
    <value>true</value> 
    </property> 
    <property name="applicationContextSchedulerContextKey"> 
    <value>applicationContext</value> 
    </property> 
    <property name="waitForJobsToCompleteOnShutdown"> 
    <value>true</value> 
    </property> 
    <property name="quartzProperties"> 
    <props> 
     
    <!-- Scheduler --> 
    <prop key="org.quartz.scheduler.instanceId">$&#123;localhost.name&#125;</prop> 
     
    <!-- ThreadPool --> 
    <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop> 
    <prop key="org.quartz.threadPool.threadCount">5</prop> 
    <prop key="org.quartz.threadPool.threadPriority">5</prop> 
     
    <!-- Job store --> 
    <prop key="org.quartz.jobStore.misfireThreshold">60000</prop> 
    <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.oracle.OracleDelegate</prop> 
    <prop key="org.quartz.jobStore.useProperties">false</prop> 
    <prop key="org.quartz.jobStore.selectWithLockSQL">SELECT * FROM &#123;0&#125;LOCKS UPDLOCK WHERE LOCK_NAME = ?</prop> 
    <prop key="org.quartz.jobStore.isClustered">true</prop> 
     
    <!-- Plugins --> 
    <prop key="org.quartz.plugin.shutdownhook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop> 
    <prop key="org.quartz.plugin.shutdownhook.cleanShutdown">true</prop> 
    <prop key="org.quartz.plugin.triggHistory.class">org.quartz.plugins.history.LoggingTriggerHistoryPlugin</prop> 
    <prop key="org.quartz.plugin.triggHistory.triggerFiredMessage">Trigger &#123;1&#125;.&#123;0&#125; fired job &#123;6&#125;.&#123;5&#125; at&#58; &#123;4, date, HH&#58;mm&#58;ss MM/dd/yyyy&#125;</prop> 
    <prop key="org.quartz.plugin.triggHistory.triggerCompleteMessage">Trigger &#123;1&#125;.&#123;0&#125; completed firing job &#123;6&#125;.&#123;5&#125; at &#123;4, date, HH&#58;mm&#58;ss MM/dd/yyyy&#125; with resulting trigger instruction code&#58; &#123;9&#125;</prop> 
    </props> 
    </property> 
    <property name="schedulerContextAsMap"> 
    <map> 
    <entry key="articleManager"> 
    <ref bean="articleManager"/> 
    </entry> 
    <entry key="compManager"> 
    <ref bean="compManager"/> 
    </entry> 
    <entry key="mailSender"> 
    <ref bean="mailSender"/> 
    </entry> 
    </map> 
    </property> 
    </bean>
    The following error occurs on application restart:

    Code:
    ERROR &#91;main&#93; &#91;2005-01-04 12&#58;21&#58;27,999&#93; &#91;org.springframework.scheduling.quartz.LocalDataSourceJobStore&#93; - ClusterManager&#58; Error managing cluster&#58; Failure recovering jobs&#58; ORA-00060&#58; deadlock detected while waiting for resource 
     
    org.quartz.JobPersistenceException&#58; Failure recovering jobs&#58; ORA-00060&#58; deadlock detected while waiting for resource &#91;See nested exception&#58; java.sql.SQLException&#58; ORA-00060&#58; deadlock detected while waiting for resource 
    &#93; at org.quartz.impl.jdbcjobstore.JobStoreSupport.clusterRecover&#40;JobStoreSupport.java&#58;2145&#41; at org.quartz.impl.jdbcjobstore.JobStoreCMT.doCheckin&#40;JobStoreCMT.java&#58;1353&#41; at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage&#40;JobStoreSupport.java&#58;2250&#41; at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.initialize&#40;JobStoreSupport.java&#58;2237&#41; at org.quartz.impl.jdbcjobstore.JobStoreSupport.initialize&#40;JobStoreSupport.java&#58;509&#41; at org.quartz.impl.jdbcjobstore.JobStoreCMT.initialize&#40;JobStoreCMT.java&#58;150&#41; at org.springframework.scheduling.quartz.LocalDataSourceJobStore.initialize&#40;LocalDataSourceJobStore.java&#58;118&#41; at org.quartz.impl.StdSchedulerFactory.instantiate&#40;StdSchedulerFactory.java&#58;888&#41; at org.quartz.impl.StdSchedulerFactory.getScheduler&#40;StdSchedulerFactory.java&#58;1020&#41; at org.springframework.scheduling.quartz.SchedulerFactoryBean.createScheduler&#40;SchedulerFactoryBean.java&#58;467&#41; at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet&#40;SchedulerFactoryBean.java&#58;419&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods&#40;AbstractAutowireCapableBeanFactory.java&#58;1037&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;305&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons&#40;DefaultListableBeanFactory.java&#58;261&#41; at org.springframework.context.support.AbstractApplicationContext.refresh&#40;AbstractApplicationContext.java&#58;317&#41; at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh&#40;AbstractRefreshableWebApplicationContext.java&#58;131&#41; at org.springframework.web.context.ContextLoader.createWebApplicationContext&#40;ContextLoader.java&#58;177&#41; at org.springframework.web.context.ContextLoader.initWebApplicationContext&#40;ContextLoader.java&#58;105&#41; at org.springframework.web.context.ContextLoaderListener.contextInitialized&#40;ContextLoaderListener.java&#58;48&#41; at org.apache.catalina.core.StandardContext.listenerStart&#40;StandardContext.java&#58;3346&#41; at org.apache.catalina.core.StandardContext.start&#40;StandardContext.java&#58;3723&#41; at org.apache.catalina.core.ContainerBase.addChildInternal&#40;ContainerBase.java&#58;821&#41; at org.apache.catalina.core.ContainerBase.addChild&#40;ContainerBase.java&#58;807&#41; at org.apache.catalina.core.StandardHost.addChild&#40;StandardHost.java&#58;590&#41; at org.apache.catalina.core.StandardHostDeployer.install&#40;StandardHostDeployer.java&#58;267&#41; at org.apache.catalina.core.StandardHost.install&#40;StandardHost.java&#58;791&#41; at org.apache.catalina.startup.Catalina.deploy&#40;Catalina.java&#58;422&#41; at org.apache.catalina.startup.Catalina.load&#40;Catalina.java&#58;288&#41; at org.apache.catalina.startup.Catalina.load&#40;Catalina.java&#58;304&#41; at com.borland.enterprise.server.services.tomcat4.TomcatService.load&#40;Unknown Source&#41; at com.sun.server.ServiceManager.loadModule&#40;Unknown Source&#41; at com.borland.enterprise.server.PartitionModules.loadAll&#40;PartitionModules.java&#58;119&#41; at com.sun.server.ServiceManager.loadAllModules&#40;Unknown Source&#41; at com.sun.server.ServiceManager.autoStartServices&#40;Unknown Source&#41; at com.sun.server.ServiceManager.startPartitionServices&#40;Unknown Source&#41; at com.borland.enterprise.server.services.partition.PartitionServer.run&#40;PartitionServer.java&#58;296&#41; at sun.reflect.NativeMethodAccessorImpl.invoke0&#40;Native Method&#41; at sun.reflect.NativeMethodAccessorImpl.invoke&#40;NativeMethodAccessorImpl.java&#58;39&#41; at sun.reflect.DelegatingMethodAccessorImpl.invoke&#40;DelegatingMethodAccessorImpl.java&#58;25&#41; at java.lang.reflect.Method.invoke&#40;Method.java&#58;324&#41; at com.borland.enterprise.server.services.partition.Partition.main&#40;Partition.java&#58;190&#41;* Nested Exception &#40;Underlying Cause&#41; ---------------java.sql.SQLException&#58; ORA-00060&#58; deadlock detected while waiting for resource 
    at oracle.jdbc.dbaccess.DBError.throwSqlException&#40;DBError.java&#58;134&#41; at oracle.jdbc.oci8.OCIDBAccess.check_error&#40;OCIDBAccess.java&#58;2337&#41; at oracle.jdbc.oci8.OCIDBAccess.executeFetch&#40;OCIDBAccess.java&#58;1744&#41; at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch&#40;OCIDBAccess.java&#58;1905&#41; at oracle.jdbc.driver.OracleStatement.executeNonQuery&#40;OracleStatement.java&#58;2149&#41; at oracle.jdbc.driver.OracleStatement.doExecuteOther&#40;OracleStatement.java&#58;2032&#41; at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout&#40;OracleStatement.java&#58;2894&#41; at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate&#40;OraclePreparedStatement.java&#58;608&#41; at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate&#40;DelegatingPreparedStatement.java&#58;101&#41; at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.deleteSchedulerState&#40;StdJDBCDelegate.java&#58;3543&#41; at org.quartz.impl.jdbcjobstore.JobStoreSupport.clusterRecover&#40;JobStoreSupport.java&#58;2128&#41; at org.quartz.impl.jdbcjobstore.JobStoreCMT.doCheckin&#40;JobStoreCMT.java&#58;1353&#41; at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage&#40;JobStoreSupport.java&#58;2250&#41; at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.initialize&#40;JobStoreSupport.java&#58;2237&#41; at org.quartz.impl.jdbcjobstore.JobStoreSupport.initialize&#40;JobStoreSupport.java&#58;509&#41; at org.quartz.impl.jdbcjobstore.JobStoreCMT.initialize&#40;JobStoreCMT.java&#58;150&#41; at org.springframework.scheduling.quartz.LocalDataSourceJobStore.initialize&#40;LocalDataSourceJobStore.java&#58;118&#41; at org.quartz.impl.StdSchedulerFactory.instantiate&#40;StdSchedulerFactory.java&#58;888&#41; at org.quartz.impl.StdSchedulerFactory.getScheduler&#40;StdSchedulerFactory.java&#58;1020&#41; at org.springframework.scheduling.quartz.SchedulerFactoryBean.createScheduler&#40;SchedulerFactoryBean.java&#58;467&#41; at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet&#40;SchedulerFactoryBean.java&#58;419&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods&#40;AbstractAutowireCapableBeanFactory.java&#58;1037&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;305&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41; at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons&#40;DefaultListableBeanFactory.java&#58;261&#41; at org.springframework.context.support.AbstractApplicationContext.refresh&#40;AbstractApplicationContext.java&#58;317&#41; at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh&#40;AbstractRefreshableWebApplicationContext.java&#58;131&#41; at org.springframework.web.context.ContextLoader.createWebApplicationContext&#40;ContextLoader.java&#58;177&#41; at org.springframework.web.context.ContextLoader.initWebApplicationContext&#40;ContextLoader.java&#58;105&#41; at org.springframework.web.context.ContextLoaderListener.contextInitialized&#40;ContextLoaderListener.java&#58;48&#41; at org.apache.catalina.core.StandardContext.listenerStart&#40;StandardContext.java&#58;3346&#41; at org.apache.catalina.core.StandardContext.start&#40;StandardContext.java&#58;3723&#41; at org.apache.catalina.core.ContainerBase.addChildInternal&#40;ContainerBase.java&#58;821&#41; at org.apache.catalina.core.ContainerBase.addChild&#40;ContainerBase.java&#58;807&#41; at org.apache.catalina.core.StandardHost.addChild&#40;StandardHost.java&#58;590&#41; at org.apache.catalina.core.StandardHostDeployer.install&#40;StandardHostDeployer.java&#58;267&#41; at org.apache.catalina.core.StandardHost.install&#40;StandardHost.java&#58;791&#41; at org.apache.catalina.startup.Catalina.deploy&#40;Catalina.java&#58;422&#41; at org.apache.catalina.startup.Catalina.load&#40;Catalina.java&#58;288&#41; at org.apache.catalina.startup.Catalina.load&#40;Catalina.java&#58;304&#41; at com.borland.enterprise.server.services.tomcat4.TomcatService.load&#40;Unknown Source&#41; at com.sun.server.ServiceManager.loadModule&#40;Unknown Source&#41; at com.borland.enterprise.server.PartitionModules.loadAll&#40;PartitionModules.java&#58;119&#41; at com.sun.server.ServiceManager.loadAllModules&#40;Unknown Source&#41; at com.sun.server.ServiceManager.autoStartServices&#40;Unknown Source&#41; at com.sun.server.ServiceManager.startPartitionServices&#40;Unknown Source&#41; at com.borland.enterprise.server.services.partition.PartitionServer.run&#40;PartitionServer.java&#58;296&#41; at sun.reflect.NativeMethodAccessorImpl.invoke0&#40;Native Method&#41; at sun.reflect.NativeMethodAccessorImpl.invoke&#40;NativeMethodAccessorImpl.java&#58;39&#41; at sun.reflect.DelegatingMethodAccessorImpl.invoke&#40;DelegatingMethodAccessorImpl.java&#58;25&#41; at java.lang.reflect.Method.invoke&#40;Method.java&#58;324&#41; at com.borland.enterprise.server.services.partition.Partition.main&#40;Partition.java&#58;190&#41;
    Thanks for any help you can provide. I understand that most deadlock issues are related to developers not wrapping their scheduler calls in independent transactions, but in this case the problem seems to be a bit different, and i'm pretty stuck. I'm about to dive into the Spring source, but I was hoping maybe I was just missing something small.
Working...
X