我将Apache BasicDataSource用于公用DBCP和连接池:
org.apache.commons.dbcp.BasicDataSource并通过Spring进行管理:
org.springframework.jdbc.datasource.DataSourceTransactionManager在对Teradata驱动程序使用此组合时,如果我的数据库出现故障或出现网络故障,则会收到以下错误:
08S01 804 : I/O错误,套接字关闭。分组流写入错误
这正确地反映了情况,但问题在于重新连接。当错误在物理上被消除,或者DB重新出现并且我的程序试图查询它时,我仍然会在一段时间内得到相同的错误,例如20分钟,小时,永远不会。当我重新启动JVM或更改连接字符串(例如,使用IP地址而不是主机名)时,问题就消失了。
DataSource或中是否有任何可以纠正这种情况的设置?或者是TCP/IP设置?
发布于 2010-09-01 09:44:19
我将查看Apache上的设置:
http://commons.apache.org/dbcp/configuration.html
SELECT 1可以是一个高效的验证查询。应设置返回测试。
我还要求它删除和记录废弃的连接,这样您就可以看到正在发生的事情了。
发布于 2010-09-15 19:19:30
您在Windows和Linux上都看到了这个错误吗?如果您只在Linux上看到它,那么我建议您查看Teradata指南。在登录时,他们使用的算法在Linux版本的JVM上速度很慢。尝试添加以下行来启动您的服务命令,以查看您是否有任何改进
-Djava.security.edg=file:/dev/./urandom注意:这是来自Teradata驱动程序用户指南中的故障排除部分。
https://stackoverflow.com/questions/3616704
复制相似问题