Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使用相同的数据源将两个应用程序连接到同一个数据库会有什么影响?_Java_Mysql_Jdbc_Jboss - Fatal编程技术网

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

在java中使用相同的数据源将两个应用程序连接到同一个数据库会有什么影响?,java,mysql,jdbc,jboss,Java,Mysql,Jdbc,Jboss,在同一jboss服务器上运行两个不同的应用程序。我想通过相同的数据源将这两个应用程序与相同的mysql数据库连接起来 运行这2个应用程序会产生什么样的影响- 我认为这些问题可能会发生。 -表锁定问题、性能缓慢、连接问题、ACID属性丢失问题 这种方法有什么缺点吗?没有缺点,只要两个应用都有足够的连接,并且您的事务都写得很好,共享同一个数据源是正常的没有缺点,只要两个应用程序都有足够的连接,你的事务写得很正常,共享相同的数据源 也许你应该考虑是否有任何优势? 在我看来,不为单独的应用程序创建单独的

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

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

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


这种方法有什么缺点吗?

没有缺点,只要两个应用都有足够的连接,并且您的事务都写得很好,共享同一个数据源是正常的

没有缺点,只要两个应用程序都有足够的连接,你的事务写得很正常,共享相同的数据源

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


在我看来,不为单独的应用程序创建单独的数据源必须有令人信服的理由——我觉得这不适合您

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

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

  • 它使您能够在不影响其他应用程序的情况下,从一个应用程序中丢弃过时或appserver剔除的连接(-threads)
  • 每个应用程序都有多个DS,这样可以在不影响生产连接的情况下重置管理员连接

Pa>喝彩,

< P>也许你应该考虑是否有任何优势?


在我看来,不为单独的应用程序创建单独的数据源必须有令人信服的理由——我觉得这不适合您

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

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

  • 它使您能够在不影响其他应用程序的情况下,从一个应用程序中丢弃过时或appserver剔除的连接(-threads)
  • 每个应用程序都有多个DS,这样可以在不影响生产连接的情况下重置管理员连接

干杯,

这一切都不会发生(表锁定问题、性能缓慢、连接问题、ACID属性丢失问题)

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

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


访问同一数据库的两个应用程序的性能与两倍流行的一个应用程序的性能相同

这一切都不会发生(表锁定问题、性能缓慢、连接问题、ACID属性丢失问题)

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

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


访问同一数据库的两个应用程序的性能与两倍于流行应用程序的一个应用程序的性能相同

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


除此之外,所有其他问题都与数据库引擎和数据库设计有关,而不是与数据源有关。DB引擎不会停止与ACID兼容,无论访问方式如何,也不会比访问来自不同数据源的速度慢,等等……

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


除此之外,所有其他问题都与数据库引擎和数据库设计有关,而不是与数据源有关。DB引擎不会停止与ACID兼容,无论访问方式如何,也不会比访问来自不同数据源的速度慢,等等…

“不创建单独数据源的令人信服的理由”,例如,实际购买或租用额外机器的现金?我指的是AppServer JNDI意义上的数据源,不是4U机架铁感:-)在这种情况下,从性能的角度来看,使用相同的数据库(如“mysqld进程”)可能是合适的。Jan,这仍然与我的说法不冲突。appserver上可能有两个应用程序,在JNDI树中使用两个不同的DS,两个DS可能引用相同的物理数据库实例(参见“mysqld进程”)。与共享一个DS相比,这样的设置不会导致任何性能下降。扩展此参数并说每个应用程序创建多个JNDI资源可能会有好处,这样您就可以在不影响用户的情况下重置管理员连接了。怎么样?:-)“不创建单独数据源的令人信服的理由”,如实际购买或租用额外机器的现金?我指的是AppServer JNDI意义上的数据源,而不是4U rack iron意义上的数据源:-)在这种情况下,从性能角度来看,使用相同的数据库(如“mysqld进程”)可能是合适的。Jan,这仍然与我的发言不矛盾。appserver上可能有两个应用程序,在JNDI树中使用两个不同的DS,两个DS可能引用相同的物理数据库实例(参见“mysqld进程”)。与sharin相比,这样的设置不会导致任何性能下降