从纯JAVA程序中保持JDBC连接池的活跃性

时间:2014-02-19 19:37:49

标签: java jdbc pool

我的目标:在Apache中建立一个JDBC连接池,它将在多次运行纯JAVA程序之间保持活动/可重用

到目前为止,我知道该怎么做:

1)在Netbeans中创建一个JavaScript应用程序,该应用程序使用基于context.xml中定义的数据源的JDBC连接池。建立的连接在多次运行应用程序之间保持活动状态,无论在应用程序中连接/断开多少次,数据库端连接的数量都不会增加。这正是我想在纯JAVA中实现的目标。

2)在Netbeans中创建一个纯JAVA应用程序,用于建立和使用JDBC连接池。 问题:每次运行应用程序时都会建立/销毁JDBC连接池。 该应用程序计划是一个短期的程序,经常运行,只有几个连接/断开连接。因此,上述创建/破坏池的目的无法实现。


是否可以结合以上两者中的最佳值来实现我的目标: 以某种方式使Apache创建一个JDBC连接池,可以在我使用该池的纯JAVA应用程序的众多运行之间存活下来?

2 个答案:

答案 0 :(得分:0)

你接近这个错误的方式。

没有连接池可以在JVM重启后继续存在,因为当退出JVM时,它打开的所有套接字都将被销毁。

如果你想拥有一个持久连接池,你需要在某个地方运行一个持久的JVM进程。

Tomcat是一个非常熟练的长期运行服务器,可以托管连接池。

如果您有一个只想偶尔运行的查询,那么在Tomcat中部署的应用程序中可以使用不同的技术。两个现成的示例是Java计时器,或使用Quartz等库。

如果你坚持使用“run one”风格的程序,你总是可以在启动时(使用ContextListener,或者在启动时加载Servlet的init方法)部署一个运行代码的简单WAR,然后让外部进程根据需要部署该代码。与Tomcat的连接池将保持活动状态,您只需重新部署该程序即可运行代码。

因此,这里可以应用不同的技术。

答案 1 :(得分:0)

我了解到实现我想要的更好方法是开发Web服务并将我的“纯Java”代码打包到Web服务客户端。