Java 在类似web应用程序之间共享的过程中高超音速数据库

Java 在类似web应用程序之间共享的过程中高超音速数据库,java,web-applications,hsqldb,Java,Web Applications,Hsqldb,我在web服务器中多次部署同一个JavaWeb应用程序。我想共享一个进程中的高超音速数据库(不使用套接字)。数据库将不时更新 有人知道最好的方法吗?共享libs(web应用程序可用的服务器上的全局类路径)怎么样?共享库是否共享静态?如果是这样,也许我可以在共享LIB中设置一个小型连接工厂。据我所知,如果不使用专用服务器进程和进程间通信(例如套接字),就无法使用来自多个进程的进程内数据库 共享库不会在多个进程之间共享它们的状态。您可以这样做。秘密在于将共享库放在应用程序服务器的main/lib目录

我在web服务器中多次部署同一个JavaWeb应用程序。我想共享一个进程中的高超音速数据库(不使用套接字)。数据库将不时更新


有人知道最好的方法吗?共享libs(web应用程序可用的服务器上的全局类路径)怎么样?共享库是否共享静态?如果是这样,也许我可以在共享LIB中设置一个小型连接工厂。

据我所知,如果不使用专用服务器进程和进程间通信(例如套接字),就无法使用来自多个进程的进程内数据库


共享库不会在多个进程之间共享它们的状态。

您可以这样做。秘密在于将共享库放在应用程序服务器的main/lib目录中,以便由主类加载器加载。然后,JVM中只有一个静态类和变量的副本

不要将库放在WEB-INF/lib中。每个webapp都有自己的类加载器,如果多个类加载器加载同一个库,您将陷入类加载器地狱


请记住,此方案不如在进程外运行它可靠。除非您的数据是只读的,否则您更有可能被损坏。

它是Java应用程序服务器:)它不是每个应用程序的
fork()
,因此完全有可能共享同一个库,即使这是一个坏主意,并且会导致维护/支持问题。如果是共享库(当您将它放到appserv
lib/
)非破坏性行为的问题相当于多线程支持(因为一些web应用程序将从不同的线程调用HSQL DB API)。在这种情况下,HSQL DB 2.0声称完全没有问题(请参阅),所以绿灯:)请澄清。您是否使用一个包含多个Web应用程序的JVM java应用程序服务器?还是在同一个框上有多个应用程序服务器进程?