我通过JNDI连接MS SQL Server。我的应用程序将连接到DB一次,并将存储该con以供将来使用。我能够成功连接和检索所需的数据。但是,当数据库重新启动时,我的连接失去了“通过对等方重置连接:套接字写入错误”。
因此我需要重启我的应用程序。所以,每当我的conn通过代码关闭时,我决定创建连接。这是正确的方法吗?我应该将conn存入会话吗?
答案 0 :(得分:1)
不要!使用Apache DBCP之类的东西创建一个连接池,您可以从中查找连接。当您需要连接时,请从池中查找它,完成后将其释放回池中。 Connection对象生命周期将由dbcp库管理。
答案 1 :(得分:1)
这里的答案相同:使用连接池。
我建议使用Tomcat one而不是旧的Apache DBCP,即使对于独立/非Web应用程序,也不是在任何容器中运行
答案 2 :(得分:0)
唐'吨。它会很脆弱。
使用连接池,最好是在分发之前可以探测连接的连接池,以确保它有效。
如果您的容器没有提供这样的池,您可以将自己的容器放入Web应用程序中。
答案 3 :(得分:0)
当您不需要时,不应该保持与DB的活动连接。一旦您的任务完成且无需处理更多数据,您应该关闭它。当你需要它再次请求datasource新的。
所以你想要为这个数据库保留一个DataSource对象。
答案 4 :(得分:0)
这就是Apache DBCP等连接池的用途。
在会话中保留对池的引用,并在需要连接时使用它,如下例所示: