i'm developing a drools 7 project and are using decision tables along with some other static .drl files. I created a seperate kjar maven project that "builds" the rules and gets installed as a .jar file in the maven repository.
The application then uses the maven kie scanner to load this kjar from the maven repository.
This all works very good, except for the following:
- When the application is started the rules are still compiled or something by drools, because the first call to getKieBase() takes a very long time (>5 minutes).
- When a new kjar version is detected by the kie scanner, the first request also takes >5 minutes because I think he needs recreate the kiebase on the first application request
Seeing this issues, does anybody know if it is possible to either:
- on application start-up: completely compile the kjar with the kie-maven-plugin up-front so that the call to getkiebase will not take several minutes
- on new kjar version: execute some custom logic before adding the kiemodule to the application, so that I can, for instance, do a call to getkiebase before the new kjar is active? The way it is now is that after the reload of the kjar the first request also takes minutes to complete.
I've been googling and researching this topic for quite some time now, but there is very litle info on how to improve the performance of the kiebase initialization when using the maven kie scanner for dynamically fetching new versions of a kiemodule project.
One of the biggest problems I have is that startup of the application takes over 5 minutes, so development on the project is tedious. Of course I could reduce the size of the decision tables, but then I cant really test certain cases in the application. And I dont want to always build a new customized kiemodule with just the entries from the decision table that I need.
I hope you guys could give me some pointers on the topic, any help would be greatly aprreciated!
Regards,
Kim The Netherlands