問題タブ [drools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jboss - 一般的なよだれの質問 x
ここ数か月間、私の会社では Informatica (以前の AgentLogic) という会社の RulePoint という製品を使用しています。この製品は、カスタマイズ用に十分に開発された使いやすい SDK により、非常に使いやすいことが証明されています。CEP に製品を使用する方法はかなり簡単です。ルール データを監視する 2 つのソースがあります。1 つ目は JMS キュー、2 つ目は Jabber IM アカウントです。この製品は、Java ベースのアプリケーション サーバー (WebLogic、Tomcat など) で動作し、ほぼ問題なく動作します。
先週、私の上司はこう言いました。
フローベースの操作 (検証など) に Drools を使用している人は聞いたことがありますが、実際に CEP 製品 (Fusion) を使用している人は聞いたことがありません。だから、勤勉な労働者として、私はこの仕事を引き受けました。すべてのファイル (バージョン 5.0) と付属のドキュメントをダウンロードし、読み始めました。ほぼすべてのドキュメントを読み、ほとんどの例を実行しましたが、CEP で drools がどのように機能するかはまだわかりません。
JMS から Data (または Facts だと思います) を使用する例はありますが、アプリケーションが実際に停止するまでキューを継続的に監視して、これがどのように「実行中」のままになるかはわかりません。RulePoint はただ座って耳を傾ける必要がありますが、Drools はそうではないようです。
私たちのニーズに合わせて本格的なコマンドライン アプリケーションを作成できると思いますが、アプリケーション サーバーが提供する利点を活用したいと考えていました。
私は、いくつかの優れたチュートリアル、または誰かが本番環境で Drools と CEP をどのように使用しているかの例を探していると思います。
java - Drools やその他のルール エンジンをすばやく学習する方法
いくつかの基準に基づいていくつかの推奨事項を生成するモジュールに着手しています。基準は一連のビジネス ルールの形式になるため、Drools (オープン ソースと Java :-) のようなビジネス ルール エンジンの使用を検討していました。
Drools をすばやく (2 ~ 3 週間) 学習し、JBoss Drools を使用してルールを実装できるようにする必要があります。どの記事、チュートリアル、書籍、ベスト プラクティスに従う必要がありますか?
jboss - DroolsとJBossESBの統合
ここ数週間、私は他のCEP /ルールエンジンの中でDroolsを研究してきましたが、Droolsを使いたいと思っています。また、異なるサービス間のメッセージのルーティングを担当するJBossESBもあります。
ボートを完全に見逃さない限り、JBossESBを介してDroolsにデータを取得する方法を一生見ることはできません。
ESBの内部には、正しく監視およびルーティングする必要のあるデータ(ファクト)があります(一部のデータプロパティも、各ファクトの他のプロパティに基づいて変更する必要があります。Drools(FusionとExpertの組み合わせ)を使用して計算しました。 )これを処理するための最良の方法ですが、JBoss(または他の)ドキュメントのいずれにも、それをどのように実行するかは実際にはわかりません。
これは馬車の前の状況ですか?私はどこかでボートを完全に逃していますか?
どんな助けでも大歓迎です。
ありがとう。
java - drools 5 の非常に基本的な実行、基本的なセットアップとクイックスタート
drools 5 のより包括的なクイック スタートはありますか。単純な Hello World .drl ルールを実行しようとしていましたが、おそらく javac/java だけを使用して、ant スクリプトを使用して実行したかったのです。
次のエラーが表示されます: 注: Eclipse やその他の IDE なしで完全に実行しているわけではありません:
drools 5 のより包括的なクイック スタートはありますか。単純な Hello World .drl ルールを実行しようとしていましたが、おそらく javac/java だけを使用して、ant スクリプトを使用して実行したかったのです。
次のエラーが表示されます: 注: Eclipse やその他の IDE なしで完全に実行しているわけではありません:
javac および java ターゲットに次のライブラリを含めます。
エラーをスローしている Java コードを次に示します。java.compiler コードをコメントアウトしましたが、それも機能しませんでした。
public void rules() {
}
...
ここでは、fork を true に設定しているため、Ant は関係ないと思います。
エラーは 1 行目でスローされます。
基本的に、私は呼び出し以外は何もしていません
最終的な KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
Windows XP、Java6、および Ant.1.7 で実行しています。Drools-Rules の最新 (昨日の時点) のバージョン 5。
drools - Drools 5.0 - ローカル... グローバル
自分のルール ファイルのみを対象とするグローバル変数を宣言したいと考えています。例: 変数 $reUseMe は一度だけ宣言されます。
ルール 1
$reUseMe : POJO(val = 1) //その他の条件
ルール 2
$reUseMe > 値
java - Java ルーチンの 1 つで開いているファイルが多すぎます
オブジェクトのセットを生成してファイルに書き込む必要があるマルチスレッド コードがあります。実行すると、例外で「開いているファイルが多すぎます」というメッセージが表示されることがあります。コードをチェックして、すべてのファイル ストリームが適切に閉じられていることを確認しました。これがスタックトレースです。
ulimit -a を実行すると、許可されるオープン ファイル数が 1024 に設定されます。この数を増やすことは、実行可能なオプション/解決策ではないと考えています。
開いているファイルのリストを詳しく調べてこれまでに確認したことは、VM が同じクラス ファイルを複数回開いていることです。
/export/BaseEvent.class 236
/export/EventType1BaseEvent.class 60
/export/EventType2BaseEvent.class 48
/export/EventType2.class 30
/export/EventType1.class 14
BaseEvent はすべてのクラスの一部であり、EventType1 と EventType2 はそれぞれ EventType1BaseEvent と EventType2BaseEvent を継承します。クラス ローダーが同じクラス ファイルを 200 回以上ロードするのはなぜですか。子インスタンスを作成するたびに基本クラスを開いているようです。
これは正常ですか?開いているファイルの数を増やす以外に、他の方法でハンドラーにすることはできますか?
tomcat - DroolsとTomcat6を使用してアプリケーションを再デプロイする際に問題が発生しました
JBossDrools5を使用するSpringアプリケーションがあります。開発中に変更を加えた後、アプリケーションを再デプロイ(つまり、ホットデプロイ)しようとする場合を除いて、正常に動作します。tomcatは、drools-compiler-5.0.1.jarとdrools-core-5.0.1.jarの2つのdroolsjarファイルをロックしているようです。それらは削除できないため、新しいwarファイルはデプロイされません。アプリケーションがDroolsロジック呼び出しを行わない場合、ホットデプロイは機能します。
誰かアイデアはありますか?
drools - Droolsを使用してエラー処理と結果管理を提供する
私は、Java例外を処理し、それらを処理するための戦略を決定することを目的としたモジュールに取り組んでいます。例外は、私が知っていること(TransformationExceptionなどの明示的なビジネス例外)またはより一般的な環境関連のもの(JMSエラー、IOエラーなど)である可能性があります。
ナレッジベースに挿入されたファクトはすべて同じクラスであり、例外をラップ(含む)します。
処理方法を知っている例外(TransformationExceptionなど)に明示的に一致するルールを作成し、「その他すべて」をキャッチする別のルールを作成したい
問題は、TransformationExceptionを含むファクトの場合、両方のルールが実行され、出力が不確実になることであるように思われます。
実行の順序を操作するために顕著性に依存せずに、このような排他的なルールを作成するにはどうすればよいですか(これは私が読んだものからは悪い習慣のようです)?
満足できない解決策があり、結果は.drlでルールが定義されている順序に依存します。
import - ワイルドカードを使用した Drools ルールのインポート
Drools ルールを使用しています。一部の開発者は、Guvnor (ルール リポジトリ) に配置してパッケージをビルドする必要があるルールを作成しました。これらのルールには、ワイルドカードを含む import ステートメントがあります。例: import org.drools.runtime.rule.*;
これを Guvnor にアップロードしてビルドしようとすると、次のように表示されます。必要な各ファクト タイプを明示的にインポートしてください。
Drools ルールでワイルドカード インポートを使用することは可能ですか?