环境是:linux(red hat) tomcat5.0 java5.0
通过single模式(长连接)来操作sqlserver 2000数据库,一直会报:error:SQLServer 2000 Driver for JDBC]Broken pipe。
通过网上的情况:
http://topic.youkuaiyun.com/u/20080119/11/adb37368-5138-43b7-8624-eb18ec14c75f.html
http://forums.java.net/jive/thread.jspa?messageID=272591
发现自己的single,getInstance方法没有加synchronized,这里极有可能参数的线程同步的问题。
经过测试和实际的应用,还是会出现同样的问题,现在的方式是:
每次连接数据时,都将其关闭,下次连接时,重新连接。不使用长连接。
Connection conn = null;
try {
conn = ...;
Statement stmt = null;
try {
stmt = ...;
// Do your thing here
} finally {
if (stmt != null) {
stmt.close();
}
}
} finally {
if (conn != null) {
conn.close();
}
}