ilog jrules и подключение к базе данных

Я использую пробную версию IBM ilog jrules 7.1 для выполнения POC. Я использую таблицы решений для проверки регистрационных данных клиентов.

мое правило таблицы решений ilog таково: если состояние клиента совпадает с CA,IL,AL, тогда установите статус "отвечающий требованиям", в противном случае сделайте клиента "не отвечающим требованиям" для предложения.

В счастливом пути я могу добавить коды состояния в качестве литералов домена, и правило будет работать нормально. Но мне нужно динамически загружать значения этого домена из базы данных ( mysql), используя некоторый код IRL. Кто-нибудь выполнил подобное требование, как у меня? Было бы очень полезно, если бы кто-то указал мне правильное направление.

1 ответ

Решение

Один из общих принципов JRules заключается в том, что вы должны вызывать механизм правил со всей необходимой информацией, если это возможно. С точки зрения производительности, доступ к базе данных во время выполнения правил не очень хорошая идея. Вы также можете потерять возможность использовать ваше приложение для правил в кластерной среде. Кроме того, решения менее прослеживаемы и воспроизводимы, потому что в любой момент сложнее узнать, что находится в вашей базе данных.

В зависимости от того, как часто изменяются ваши данные, я предлагаю вам добавить эти значения в качестве второго входного параметра и получить данные, прежде чем вызывать механизм правил. Вторая возможность - использовать плагин динамического домена для загрузки этих значений из базы данных перед развертыванием. Но вам придется заново развертывать ruleApp каждый раз, когда изменяются данные. С помощью плагина динамического домена вы можете указать поставщика данных (например, Excel, MySQL и т. Д.) И заполнить свою спецификацию атрибутами, содержащимися в базе данных. Эти динамические доменные значения отображаются как атрибуты и могут быть синхронизированы из представления спецификации в студии правил, а также с сервера команды:

Пример динамического домена

В WODM (преемник JRules 7.1) эта функциональность встроена, возможно, этот плагин не является частью демонстрации и должен быть добавлен в 7.1 отдельно.

Другие вопросы по тегам