`
jolestar
  • 浏览: 197117 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring自动装配(autowire)导致quartz不能运行

    博客分类:
  • java
阅读更多

在spring中配置了一个简单的quartz任务,结果报错:

Failure obtaining db row lock: 第 1 行: 只有 DECLARE CURSOR 才允许使用 FOR UPDATE 子句。

只有 DECLARE CURSOR 才允许使用 FOR UPDATE 子句

at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
	at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
	at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
	at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
	at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:91)
	at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:92)

 

很郁闷,以为是事务控制的问题。

结果最后发现是自动配置(quartz)的问题。

 

spring的SchedulerFactoryBean中有个dataSource属性。如果这个属性不为空,则用数据库来持久化储存quartz的任务。结果正好我的spring中的DataSource的名字就叫dataSource,结果就导致了上面的错误。

 

这个哥们也遇到了同样的问题:

http://www.iteye.com/topic/38871

 

所以spring的autowire还是尽量少用为好。

 

 

 

分享到:
评论
1 楼 lxy19791111 2009-08-20  
在quartz配置文件中加上这句:
org.quartz.jobStore.selectWithLockSQL=SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
不过我用的数据库是MSSQL.
管用,在一个论坛里面看到的.

相关推荐

    Spring实现自动装配

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名,其中自动装配(Auto-Wiring)是DI的一种实现方式。自动装配允许开发者减少手动配置bean之间的依赖关系...

    Spring自动装配解析

    在Spring的XML配置文件中,可以通过`<beans>`标签的`autowire`属性来全局设置自动装配策略,或者在单个`<bean>`标签中通过`autowire`属性指定某一个bean的自动装配方式。 4. 使用注解进行自动装配 Spring 2.5引入了...

    spring自动装配

    标题中的“Spring自动装配”指的是Spring框架中的一个重要特性,它允许开发者在不显式配置Bean依赖的情况下,由Spring容器自动管理Bean之间的依赖关系。这一特性极大地简化了代码,提高了可维护性和可测试性。 在...

    Spring整合任务调度框架Quartz

    <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> ``` 这种方式的优点是简单易用,但也存在一些缺陷,如定时任务信息都会保存在内存中,因此服务器重启后这些...

    Spring自动装配的方式

    Spring自动装配的方式和举例、以及@Qualifier、@Autowire、@Resource的使用。

    Spring自动装配模式表

    ### Spring自动装配模式详解 #### 一、引言 在Spring框架中,自动装配是一种非常实用的功能,可以简化Bean的依赖注入过程。Spring提供了多种自动装配模式,每种模式都有其适用场景。本文将详细介绍Spring框架中的...

    Spring的自动装配源代码

    这种模式表示Spring容器不进行任何自动装配,所有依赖必须通过显式配置来解决。这是默认的自动装配模式。 4. constructor(构造器注入装配) 这种装配方式是通过Bean的构造函数来完成的。Spring会尝试找到与构造...

    自动装配 AutoWire

    自动装配是Spring框架提供的一个功能,它能自动查找并注入bean所依赖的其他bean。这种机制基于类型匹配,Spring容器会尝试寻找与所需类型匹配的bean,然后将其注入到目标bean的相应属性中。 ### 2. Autowired注解的...

    spring-autowire-demo.zip

    默认情况下,Spring不进行任何自动装配。如果一个bean声明了一个依赖,但没有指定如何装配,那么Spring会抛出一个异常,除非你明确告诉它如何处理这个依赖。 2. **byName(按名称自动装配)**: 使用`@Autowired`...

    spring-autowire.zip

    《Spring自动装配详解——基于IDEA 2020的小实例》 在Java开发领域,Spring框架以其强大的功能和灵活性,成为了企业级应用开发的首选。其中,Spring的自动装配特性(Autowired)是其核心特性之一,极大地简化了依赖...

    Spring中自动装配的4种方式

    在 Spring 框架中,自动装配是指容器可以自动将 Bean 之间的关系装配起来,不需要手动配置,从而简化了 XML 配置文件的编写。下面将详细介绍 Spring 中的 4 种自动装配方式。 byName 自动装配 byName 自动装配是指...

    Spring自动装配Bean实现过程详解

    在Spring中,自动装配是通过bean元素的autowire属性来实现的。autowire属性有五个值:byName、byType、constructor、autodetect和no。 * byName:根据Property的名称自动装配,如果一个Bean的名称和另一个Bean中的...

    autowire自动导入句柄

    虽然`autowire`能简化依赖注入,但过度依赖自动装配可能导致代码的可读性和可测试性降低。在某些情况下,如循环依赖、需要控制依赖注入顺序或处理null值时,可能需要手动配置bean。 ### 7. 总结 `autowire`自动...

    Spring中Quartz的配置

    <bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> ``` 在这段配置中,首先定义了要执行的任务对象`quartzJob`,然后...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    本篇将重点讲解Spring的@Autowired自动装配机制,包括XML配置版和注解版,并深入到源码层面进行解析。 @Autowired是Spring框架中的一个核心注解,用于实现自动装配bean的需求。当我们想要在类中注入某个依赖时,...

    3Spring使用annotation方式autowire

    本篇将详细探讨"3Spring使用annotation方式autowire"这一主题,包括注解驱动的自动装配(Autowiring)以及相关的源码分析。 ### 一、注解驱动的自动装配 自动装配是Spring框架的一个核心特性,它允许框架自动管理...

    Spring自动装配与扫描注解代码详解

    autowire 是 Spring 中的一种自动装配机制,通过在 Bean 的配置文件中使用 autowire 属性,可以将 Bean 之间的依赖关系自动装配起来。autowire 属性可以取三个值:no、byName、byType。 * no:不进行自动装配,这是...

    pring自动装配方式介绍共2页.pdf.zip

    在Spring框架中,自动装配(Auto-Wiring)是一种简化依赖注入(Dependency Injection,简称DI)的方式,它允许Spring容器自动管理Bean之间的依赖关系,而无需显式地在配置文件中指定。Spring提供了多种自动装配模式...

    Spring3.2.4+Quartz2.2.0 Demo

    Spring3.2.4+Quartz2.2.0 实例 <!-- 启动触发器的配置开始 --> <bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> ...

Global site tag (gtag.js) - Google Analytics