2016-12-08 1 views
1

J'ai généré les alertes en utilisant les baves, j'avais créé les fichiers de bave de la base de données. Chaque fois que je charge le fichier .drl du dossier de ressources dans le projet parce que je fais beaucoup de io opération.Comment charger le fichier bave à partir de la mémoire?

Je veux surmonter ce problème, de toute façon est-il possible de charger le fichier de bave de in-memory même que l'encaissement?

+1

Vous pouvez préparer une base de règles en compilant et en sérialisation le résultat. Comment créez-vous votre session maintenant? – laune

+0

StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); comme ceci je crée la session statefull? – Mahabaleshwar

Répondre

1

C'est du Drools 5? Temps de mettre à niveau. Mais vous utilisez simplement les mêmes étapes que celles que j'ai fournies en utilisant du code pour Drools 6; les noms des classes ont quelque peu changé. Pour ce faire, une fois:

KieBase kieBase = ...; 
    FileOutputStream fos1 = new FileOutputStream(OUTPATH); 
    ObjectOutputStream oos1 = new ObjectOutputStream(fos1); 
    oos1.writeObject(kieBase); 
    oos1.close(); 

Vous faites cela pour chaque course:

FileInputStream fis9 = new FileInputStream(OUTPATH); 
    ObjectInputStream ois9 = new ObjectInputStream(fis9); 
    KieBase kieBase1 = (KieBase)ois9.readObject(); 
    KieSession kieSession = kieBase1.newKieSession();