在我正在开发的Web应用程序中,我正在使用第三方Java库(JPL),它使用JNI连接到外部应用程序:Prolog引擎。
对于我的问题的性质,我需要每个http会话有一个Prolog引擎。但据我所知,我使用的库只允许我使用每个java VM的一个Prolog引擎。
为了解决这个问题,我提出了尝试将JBoss配置为每个http会话启动一个新进程(而不仅仅是一个新线程)的想法,有点像CGI,通常每个http启动一个进程请求。
通过这种方式,某些servlet可以使用所需的基于JNI的库而不必担心其侧面的同步问题,因为正如我所期望的那样(并且希望没有错),每个servlet都有一个独立的Prolog引擎具有不同的状态(例如,不同的Prolog事实)。
可以用这种方式配置JBoss(或其他servlet容器)吗?任何反馈或指针都将受到高度赞赏!
答案 0 :(得分:0)
据我所知,这是不可能的。但是,查看文档http://www.swi-prolog.org/packages/jpl/java_api/high-level_interface.html#Multi-Threaded%20Queries,唯一的问题似乎是每个VM只能有一个打开查询。