Tomcat Postgres连接

时间:2010-06-06 10:29:58

标签: java postgresql tomcat jdbc

我在servelet中使用单例类进行PostgresSQL连接。问题是,一旦它打开它会工作一段时间(我想直到一些超时),然后它开始抛出一个I / O异常。知道Tomcat VM中的单例类发生了什么吗? 感谢

3 个答案:

答案 0 :(得分:3)

我不知道。做正确的事情,不要重新发明轮子。使用DataSource,或者通过JNDI获取它(参见http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html),或者自己动手(我喜欢使用Spring,但是如果你的Web应用程序很简单,那可能就是矫枉过正了。)

使用数据源。

答案 1 :(得分:1)

Tomcat中没有单身人士;这只是连接工作的方式,当你只有一个并保持打开很长一段时间。它被称为“超时”。

此设计无法扩展。更好的解决方案是尽可能短的时间保持连接打开。您的代码应该打开一个连接,使用它,并在事务范围内关闭它。

您还应该在Tomcat中设置connection pool

答案 2 :(得分:0)

  

然后它开始抛出I / O异常

嗯,究竟是什么例外?

另外,作为一个注释,从多个线程使用相同的Postgres JDBC连接是安全的,但是it is not recommended to do so