2012-04-22 61 views
0

在我正在開發的Web應用程序中,我使用了使用JNI連接到外部應用程序的第三方Java庫(JPL):Prolog引擎。配置JBoss爲每個http會話創建一個進程?

對於我的問題的性質,我需要每個http會話有一個Prolog引擎。但據我所知,我使用的庫只能讓我使用每個Java VM的一個Prolog引擎。

爲了解決這個問題,我想出了爲每次HTTP會話試圖配置JBoss啓動新進程(而不只是一個新的線程),有點像CGI而正常情況下一個進程每次啓動的想法http請求。因爲正如我預期的那樣(並且希望這不是錯誤的),它們每個都會有一個獨立的Prolog具有不同狀態的引擎(例如,不同的Prolog事實)。

是否可以通過這種方式配置JBoss(或其他servlet容器)?任何反饋或指針將高度讚賞!

回答

0

據我所知,這是不可能的。但是查看文檔http://www.swi-prolog.org/packages/jpl/java_api/high-level_interface.html#Multi-Threaded%20Queries,唯一的問題似乎是每個VM只能有一個打開查詢。

+0

Hi @Philippe!,問題是我需要根據用戶交互爲每個會話分配其Prolog引擎中的不同狀態(例如,一組不同的被聲明的Prolog事實)。這個狀態需要持續整個HTTP會話的持續時間。所以每個人只有一個Prolog引擎似乎遠非理想。 – Sergio 2012-04-22 23:31:43

+0

你如何與引擎互動?你創建新的'Query'對象嗎?你是否在舊的'Query'對象周圍? – 2012-04-24 06:19:13