[rules-users] JMS/Pipeline how to get the result out of it?

jschmied nabble at juergenschmied.de
Thu Feb 11 17:44:19 EST 2010


Hi!

I'm implementing a architecture where Drools is behind a Oracle Message
Queue.

I have already done a OracleJmsMessenger because I use it without a
Appserver (JNDI/Context) and I'd like to use the Oracle XMLType as message
payload. (Dosn't work with vanilla JMS)

My pipeline consists of:
PipelineFactory.newStatefulKnowledgeSessionPipeline(ksession);
Action unwrapObjectStage = new OracleJmsUnwrapAdtObject();
PipelineFactory.newJaxbFromXmlTransformer(unmarshaller);
PipelineFactory.newStatefulKnowledgeSessionInsert();
Action resultHandlerStage = PipelineFactory.newExecuteResultHandler();
Service messenger = new OracleJmsMessenger(pipeline, ds, factory);

messenger.start();

new Thread(new Runnable() {
	public void run() {
		ksession.fireUntilHalt();
		messenger.stop();
		System.out.println("#### READY####");
	}}).start();


I can send messages throu the queue and the they go into the KB and they are
processed.

But: how can I get the result out of the KB? The ExecuteResultHandler gets
executed immediately after the message in the KB and it gets a Map with the
current Objects from my Workspace. The KB is still fireing rules... 


How can I retrive the result of the processing and where from do I know
which result is from which input message? Everything runs within one
seeesion...

Thanks

Jürgen

-- 
View this message in context: http://n3.nabble.com/JMS-Pipeline-how-to-get-the-result-out-of-it-tp202493p202493.html
Sent from the Drools - User mailing list archive at Nabble.com.




More information about the rules-users mailing list