我正在开发一个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查询时出现此问题。它通过简单的选择查询工作正常。
任何想法请建议