0

私が開発している Web アプリケーションでは、JNI を使用して外部アプリケーションである Prolog エンジンに接続するサード パーティの Java ライブラリ (JPL) を使用しています。

私の問題の性質上、http セッションごとに 1 つの Prolog エンジンが必要です。しかし、私が使用しているライブラリを知る限り、Java VM ごとに 1 つの Prolog エンジンしか操作できません。

この問題を解決するために、JBoss を各 http セッションごとに (単なる新しいスレッドではなく) 新しいプロセスを起動するように設定するというアイデアを思いつきました。これは、通常、http リクエストごとに 1 つのプロセスが開始される CGI に少し似ています。

このようにして、特定のサーブレットは、必要な JNI ベースのライブラリをその側で同期の問題を心配することなく使用できます。これは、私が予想したように (間違っていないことを願っています)、それぞれが異なる状態の独立した Prolog エンジンを持つためです。 (たとえば、異なる主張された Prolog の事実)。

この方法で JBoss (または他のサーブレット コンテナー) を構成することは可能ですか? フィードバックやポインタは大歓迎です!.

4

1 に答える 1

0

私の知る限り、これは不可能です。ただし、ドキュメントhttp://www.swi-prolog.org/packages/jpl/java_api/high-level_interface.html#Multi-Threaded%20Queriesを見ると、唯一の問題は、 VMごとに1つのオープンクエリしか持てないことです。。

于 2012-04-22T17:39:23.873 に答える