开发者

Tomcat Postgres Connection

开发者 https://www.devze.com 2023-01-02 05:31 出处:网络
I\'m using a singleton class for a PostgresSQL connection inside a servelet. The problem is that once it is open it works for a while (I guess until some timeout), and then it starts throwing a I/O ex

I'm using a singleton class for a PostgresSQL connection inside a servelet. The problem is that once it is open it works for a while (I guess until some timeout), and then it starts throwing a I/O exce开发者_如何学运维ption. Any idea what is happening to the singleton class inside Tomcat VM? Thanks


I have no idea. Just do the right thing and do not reinvent the wheel.

Use a DataSource. Either obtain it via JNDI, or do it yourself (I like using Spring, but if your web application is very simple, it's probably overkill).

Use a DataSource.


There's no singleton inside Tomcat; that's just the way connections work when you only have one and keep it open for a long time. It's called "timeout".

This design cannot scale. A better solution is to keep connections open for as short a time as possible. Your code should open a connection, use it, and close it in transaction scope.

You should also set up a connection pool in Tomcat.


and then it starts throwing a I/O exception

Well, what is the exception exactly?

Also, as a note, it's safe to use the same Postgres JDBC connection from multiple threads, but it is not recommended to do so.

0

精彩评论

暂无评论...
验证码 换一张
取 消