在Java中使用相同的数据源将两个应用程序连接到同一个数据库会有什么影响?

时间:2012-10-29 10:22:02

标签: java mysql jdbc jboss

在同一个jboss服务器上运行有2个不同的应用程序。我想通过相同的数据源将这两个应用程序与同一个mysql数据库连接起来。

运行这两个应用程序会产生什么样的影响 -

我认为这些问题可能会发生。   - 表锁定问题,性能低下,连接问题,ACID属性丢失问题。

这种方法有什么缺点吗?

4 个答案:

答案 0 :(得分:4)

这些都不会发生(表锁定问题,性能降低,连接问题,ACID属性丢失问题)。

数据库无法真正区分两个连接是否来自同一个应用程序。

当然,两个应用程序仍然意味着两倍的请求,因此性能可能会受到影响。 ACIDity不受影响,您也不太可能耗尽TCP端口。

访问同一数据库的两个应用的性能与一个应用的两倍广告效果相同

答案 1 :(得分:1)

没有任何缺点,只要两个应用程序都有足够的连接,并且您的事务写得很好,就可以共享相同的数据源

答案 2 :(得分:1)

也许您应该考虑是否有任何优势?

在我看来,必须有令人信服的理由为单独的应用程序创建单独的数据源 - 我觉得这不是你的情况。

在任何情况下,当您在应用程序之间共享连接池时或者由于它们是数据库的属性而不是时,您提到的一些缺点可能会发生。连接

编辑:总结下面与Jan Dvorak的良好讨论,以下是每个应用程序使用一个(或多个)数据源的一些论据:

  • 它可以让人丢弃例如。来自一个应用程序的过时或appserver-culled连接(-threads),而不影响其他应用程序
  • 每个应用程序拥有多个DS,可以在不影响生产连接的情况下重置管理连接。

干杯,

答案 3 :(得分:0)

主要问题是汇集。随着越来越多的应用程序使用数据源,会打开更多连接,因此默认池可能不够。

除此之外,所有其他问题都与数据库引擎和数据源设计有关。无论访问方式如何,数据库引擎都不会停止符合ACID标准,不会比来自不同数据源的访问速度慢,等等......