【问题标题】:Configuring JBoss to create one process per http session?将 JBoss 配置为每个 http 会话创建一个进程?
【发布时间】:2012-04-22 10:35:24
【问题描述】:

在我正在开发的 Web 应用程序中,我使用了第三方 Java 库 (JPL),它使用 JNI 连接到外部应用程序:Prolog 引擎。

就我的问题的性质而言,我需要为每个 http 会话配备一个 Prolog 引擎。但据我所知,我使用的库只允许我使用每个 java VM 的一个 Prolog 引擎。

为了解决这个问题,我想出了尝试配置 JBoss 以在每个 http 会话中启动一个新进程(而不仅仅是一个新线程)的想法,这有点像 CGI,通常每个 http 启动一个进程请求。

通过这种方式,某些 servlet 可以使用所需的基于 JNI 的库,而不必担心其自身的同步问题,因为正如我所期望的(希望不会错),它们中的每一个都将拥有一个独立的 Prolog 引擎具有不同的状态(例如,不同的断言 Prolog 事实)。

可以用这种方式配置 JBoss(或其他 servlet 容器)吗?任何反馈或指点将不胜感激!。

【问题讨论】:

    标签: java servlets jboss java-native-interface


    【解决方案1】:

    据我所知,这是不可能的。但是查看文档http://www.swi-prolog.org/packages/jpl/java_api/high-level_interface.html#Multi-Threaded%20Queries,唯一的问题似乎是每个 VM 只能有一个 open 查询。

    【讨论】:

    • 嗨@Philippe!,问题是我需要根据用户交互在其 Prolog 引擎中为每个会话分配不同的状态(例如,一组不同的断言 Prolog 事实)。这种状态需要持续整个 http 会话的持续时间。因此,每个人都只拥有一个 Prolog 引擎似乎远非理想。
    • 如何与引擎交互?您是否创建新的Query 对象?你会保留旧的Query 对象吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多