如何在同一个 tomcat 中部署同一个 Rails 应用程序的多个实例

How to deploy multiple instances of same Rails application in same tomcat

我们想使用 jruby-rack 在单个 Tomcat 容器中部署同一个 Rails 应用程序的多个实例。

第一个实例正常,但第二个实例失败:

INFO: Deploying web application directory app1
...
INFO: Deploying web application directory app2
Apr 10, 2017 4:48:25 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Apr 10, 2017 4:48:25 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/app2] startup failed due to previous errors
Apr 10, 2017 4:48:25 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

解决问题的方法是将 app2web.xml 中的 jruby.max.runtimes 增加到 2。但是如果我得到这个参数,这意味着两个 jRuby 'processes' 可以在一个实例中产生 - 这不是我们想要的,并且会阻止应用程序正常工作。我们需要的是两个独立的 'processes',一个用于我们部署的每个实例。

这是否可能并且正在设置 jruby.max.runtimes 正确的解决方案?

看起来这是一个 jRuby issue 问题已在 9.1.8.0 中修复。我们无法再重现该问题。