首頁 >資料庫 >mysql教程 >org.quartz.JobPersistenceException

org.quartz.JobPersistenceException

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-06-07 15:13:063538瀏覽

运行quartz在MS SQL是出现异常,异常代码如下: org . quartz . JobPersistenceException : Couldn 't acquire next trigger: Couldn' t retrieve trigger : [ Microsoft ] [ SQLServer 2000 Driver for JDBC ] ResultSet can not re - read row data for co

运行quartz在MS SQL是出现异常,异常代码如下:
 

<span><span>org</span><span>.</span>quartz<span>.</span>JobPersistenceException<span>:</span> Couldn<span>'t acquire next trigger: Couldn'</span>t retrieve trigger<span>:</span> <span>[</span>Microsoft<span>]</span><span>[</span>SQLServer 2000 <span>Driver</span> <span>for</span> JDBC<span>]</span><span>ResultSet</span> can <span>not</span> re<span>-</span><span>read</span> row data <span>for</span> column 9<span>.</span> <span>[</span>See nested <span>exception</span><span>:</span> <span>org</span><span>.</span>quartz<span>.</span>JobPersistenceException<span>:</span> Couldn<span>'t retrieve trigger: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 9. [See nested exception: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 9.]]<br>    at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2741)<br>    at org.quartz.impl.jdbcjobstore.JobStoreSupport$35.execute(JobStoreSupport.java:2699)<br>    at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3711)<br>    at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2695)<br>    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:266)<br>Caused by: org.quartz.JobPersistenceException: Couldn'</span>t retrieve trigger<span>:</span> <span>[</span>Microsoft<span>]</span><span>[</span>SQLServer 2000 <span>Driver</span> <span>for</span> JDBC<span>]</span><span>ResultSet</span> can <span>not</span> re<span>-</span><span>read</span> row data <span>for</span> column 9<span>.</span> <span>[</span>See nested <span>exception</span><span>:</span> <span>java</span><span>.</span><span>sql</span><span>.</span><span>SQLException</span><span>:</span> <span>[</span>Microsoft<span>]</span><span>[</span>SQLServer 2000 <span>Driver</span> <span>for</span> JDBC<span>]</span><span>ResultSet</span> can <span>not</span> re<span>-</span><span>read</span> row data <span>for</span> column 9<span>.</span><span>]</span><br>    at <span>org</span><span>.</span>quartz<span>.</span>impl<span>.</span>jdbcjobstore<span>.</span>JobStoreSupport<span>.</span>retrieveTrigger<span>(</span>JobStoreSupport<span>.</span><span>java</span><span>:</span>1549<span>)</span><br>    at <span>org</span><span>.</span>quartz<span>.</span>impl<span>.</span>jdbcjobstore<span>.</span>JobStoreSupport<span>.</span>retrieveTrigger<span>(</span>JobStoreSupport<span>.</span><span>java</span><span>:</span>1525<span>)</span><br>    at <span>org</span><span>.</span>quartz<span>.</span>impl<span>.</span>jdbcjobstore<span>.</span>JobStoreSupport<span>.</span>acquireNextTrigger<span>(</span>JobStoreSupport<span>.</span><span>java</span><span>:</span>2728<span>)</span><br>    <span>.</span><span>.</span><span>.</span> 4 more<br>Caused by<span>:</span> <span>java</span><span>.</span><span>sql</span><span>.</span><span>SQLException</span><span>:</span> <span>[</span>Microsoft<span>]</span><span>[</span>SQLServer 2000 <span>Driver</span> <span>for</span> JDBC<span>]</span><span>ResultSet</span> can <span>not</span> re<span>-</span><span>read</span> row data <span>for</span> column 9<span>.</span><br>    at com<span>.</span>microsoft<span>.</span>jdbc<span>.</span>base<span>.</span>BaseExceptions<span>.</span>createException<span>(</span><span>Unknown</span> <span>Source</span><span>)</span><br>    at com<span>.</span>microsoft<span>.</span>jdbc<span>.</span>base<span>.</span>BaseExceptions<span>.</span><span>getException</span><span>(</span><span>Unknown</span> <span>Source</span><span>)</span><br>    at com<span>.</span>microsoft<span>.</span>jdbc<span>.</span>base<span>.</span>BaseResultSet<span>.</span>validateColumnIndex<span>(</span><span>Unknown</span> <span>Source</span><span>)</span><br>    at com<span>.</span>microsoft<span>.</span>jdbc<span>.</span>base<span>.</span>BaseResultSet<span>.</span><span>getInt</span><span>(</span><span>Unknown</span> <span>Source</span><span>)</span><br>    at com<span>.</span>microsoft<span>.</span>jdbc<span>.</span>base<span>.</span>BaseResultSet<span>.</span><span>getInt</span><span>(</span><span>Unknown</span> <span>Source</span><span>)</span><br>    at <span>org</span><span>.</span>apache<span>.</span>commons<span>.</span>dbcp<span>.</span>DelegatingResultSet<span>.</span><span>getInt</span><span>(</span>DelegatingResultSet<span>.</span><span>java</span><span>:</span>236<span>)</span><br>    at <span>org</span><span>.</span>quartz<span>.</span>impl<span>.</span>jdbcjobstore<span>.</span>StdJDBCDelegate<span>.</span>selectTrigger<span>(</span>StdJDBCDelegate<span>.</span><span>java</span><span>:</span>2129<span>)</span><br>    at <span>org</span><span>.</span>quartz<span>.</span>impl<span>.</span>jdbcjobstore<span>.</span>JobStoreSupport<span>.</span>retrieveTrigger<span>(</span>JobStoreSupport<span>.</span><span>java</span><span>:</span>1531<span>)</span><br>    <span>.</span><span>.</span><span>.</span> 6 more</span>

分析:使用SQLServer 数据库时,可能发生此异常,原因是微软自己的jdbc驱动不支持同一个记录的字段的重复读取,因为微软加入了text,image这种类型的支持,就限制了字段的回读功能.原因是如果该表存在TEXT, NTEXT, IMAGE等大型字段,对于ResultSet的字段读取必须按照从左向右读,如果你用:

int a = rs.getInt(2);
int b = rs.getInt(1);

则报错。Microsoft给出的方案是不能从右往左也不能连续读2次。

解决方法:这个是微软JDBC驱动的一个bug,我们也可以不用他的驱动,自己到网上下载jtds.jar驱动,使用这种驱动就不会出现上面的异常了.

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn