我在Web服务器中多次部署相同的Java Web应用程序。我想共享一个进程内Hypersonic数据库(不使用套接字)。数据库将不时更新。
任何人都知道最好的方法吗?共享库(Web应用程序可用的服务器上的全局类路径)怎么样?共享库是否共享静态?如果是这样,也许我可以在共享库中放置一个小连接工厂。
答案 0 :(得分:1)
你可以做到。秘诀是将共享库放在app服务器的main / lib目录中,以便主类加载器加载它。然后,您将在JVM中只有一个静态类和变量的副本。
不要将库放在WEB-INF / lib中。每个webapp都有自己的类加载器,如果多个类加载器加载相同的库,你将下载到类加载器地狱。
请记住,此方案不如在进程外运行它可靠。除非您的数据是只读的,否则您更有可能受到腐败。
答案 1 :(得分:0)
据我所知,没有使用专用服务器进程和进程间通信(例如套接字),就无法使用来自多个进程的进程内数据库。
共享库不会在多个进程之间共享其状态。