执行Oracle'更新已跳过锁定' Tomcat DataSource无效的子句

时间:2015-01-09 14:05:09

标签: sql tomcat7 jndi spring-jdbc

我正在开发一个spring应用程序,它在锁定模式下从Oracle8i DB中选择行。我使用的是Tomcat7.0.57。我在context.xml中配置了我的数据源,如下所示。

<Resource name="jdbc/MyDataSource" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
              url="jdbc:oracle:thin:@hostname:SID"
              username="user1" password="pwd1" maxActive="20" maxIdle="10"
              maxWait="-1"/>

在我的spring应用程序上下文中,我提到了查找语句为

<jee:jndi-lookup id="testds" jndi-name="jdbc/MyDataSource"/>

使用Spring jdbcTemplate am执行下面的select query

select * from employees where deptno=3 for update skip locked

我收到此错误

StatementCallback; uncategorized SQLException for SQL [select * from employees where deptno=3 for update skip locked]; SQL state [null]; error code [17410]; No more data to read from socket; nested exception is java.sql.SQLException: No more data to read from socket

然而,作为临时修复,我使用apache BasicDataSource来测试我的功能。

<bean id="clarifyds" class="org.apache.commons.dbcp.BasicDataSource"
        p:driverClassName="${jdbc.driverClassName}"
        p:url="${jdbc.url}"
        p:username="${jdbc.username}" p:password="${jdbc.password}" />

但是当在UAT和Prod环境中部署时,我需要查找在context.xml中配置的数据源

使用带有'for update'子句的select查询时出现此问题。它通过简单的选择查询工作正常。

任何想法请建议

0 个答案:

没有答案