Tomcat Postgres连接

问题描述 投票:0回答:3

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

java postgresql tomcat jdbc
3个回答
1
投票

Tomcat中没有单例;当您只有一个连接并保持长时间打开时,这就是连接工作的方式。它称为“超时”。

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

您还应该在Tomcat中设置一个connection pool


4
投票

我不知道。只要做正确的事,就不要重新发明轮子。

使用DataSource。要么DataSource,要么自己做(我喜欢使用Spring,但是如果您的Web应用程序很简单,则可能会过大)。

使用obtain it via JNDI


0
投票

然后开始引发I / O异常

嗯,到底有什么例外?

此外,请注意,从多个线程使用相同的Postgres JDBC连接是安全的,但使用DataSource

© www.soinside.com 2019 - 2024. All rights reserved.