Java:在其他J2SE应用程序之间共享连接池......?

时间:2010-03-08 19:31:27

标签: connection-pooling java

所以我有一个connection pool设置。这是伟大的,因为我有一个真正需要它的应用程序。但是,我想知道的是,是否可以与其他J2SE应用程序共享此连接池?这是否值得,而不是根据每个应用程序需求创建连接池?如果它是谨慎的,我怎么能做到这一点?

1 个答案:

答案 0 :(得分:3)

单个JVM中的连接池执行多项操作并不困难 - 这就是应用程序服务器每天所做的事情(使用JNDI跨类加载器抛出对象)

有趣的是,当你将连接池放在一个单独的JVM中,而不是需要它的客户端代码时,因为这不会立即只是从池中请求并获得连接并在之后返回它。

基本上你有两个选择:

  1. 通过网络对所有JDBC命令进行远程请求。这很可能意味着数据将通过网络传输两次,从数据库传输到连接池,然后从连接池传输到应用程序。如果数据库连接是非常昂贵的对象,那么这可能是一个可行的解决方案。

  2. 使用RMI将连接对象从连接池JVM获取到您自己的计算机。这是一个非常昂贵的操作,但据我所知,可以包括实际的驱动程序类,允许您的连接池提供与应用程序JVM不知道的数据库的连接。对我来说,这只有在数据库连接非常昂贵或者需要能够在部署之后支持其他数据库而不改变原始部署的情况下才有意义。

  3. 请注意,拥有连接池的主要原因是因为创建连接很费用,很快就会使用,然后丢弃。有些数据库比其他更多,例如MySQl(或者当我尝试的时候)非常便宜,所以它可能是最简单的。

    因此。首先:衡量你的连接池及时购买的东西,然后考虑是否值得你进一步集中这一点。