Help: Recipient List to All Legs

Posted by cwiseman on 11-Nov-2010 12:27

I have a set of web service operations being implemented in a SonicConnect service.  On a given operation, there are several sub-processes or sub-services that need to handle the incoming request message.  Typically, only one of these sub-processes will provide the response to the web service client.  The other sub-processes need to operate on the same message in an independent fashion.  The recipient list is the pattern I need but I simply need all legs tests to evaluate to true and to each get a copy of the incoming request message.  The SonicConnect service has routed the message properly and provided the SOAP stripped XML payload nicely.

With this exception being thrown, I'm uncertain as to whether my XPATH tests are failing or if my XCBR rules file is just not being found in the DS:

[10/11/11 13:08:37] ID=dev_ESBTest (severe) Trace follows...
com.sonicsw.xq.XQServiceException: XCBR rules URL could not be resolved: null
    at com.sonicsw.xq.service.xcbr.XCBRService.service(XCBRService.java:170)
    at com.sonicsw.xq.service.xcbr.XCBRService.service(XCBRService.java:134)
    at com.sonicsw.xq.service.cbr.CBRService.service(CBRService.java:86)
    at com.sonicsw.xqimpl.service.ServiceMessageHandler.callService(ServiceMessageHandler.java:477)
    at com.sonicsw.xqimpl.service.ServiceMessageHandler.handleMessageImmediate(ServiceMessageHandler.java:422)
    at com.sonicsw.xqimpl.service.XQDispatcher.onMessageImmediate(XQDispatcher.java:880)
    at com.sonicsw.esb.itinerary.model.EsbStepNode.doExecute(EsbStepNode.java:231)
    at com.sonicsw.esb.itinerary.model.EsbStepNode.execute(EsbStepNode.java:145)
    at com.sonicsw.esb.process.model.impl.DefaultActivityNode.offerIncoming(DefaultActivityNode.java:139)
    at com.sonicsw.esb.process.model.impl.DefaultActivityEdge.place(DefaultActivityEdge.java:90)

I've tried these tests on all legs:

//*(name() = '<RootNodeName>', or

count(/<RootNodeName>) > 0

I've tried simply using 'true' or leaving 'true()' which was the default when the service XCBR rules editor is initialized.

All Replies

Posted by jerem on 24-Nov-2010 03:16

Hello

How did you configure your CBR, at the service instance level or at the process level?

It seems that you must provide the cbr or xcbr file at the process level if you want to use it in a process.

Regards

Chan Jeremy

Posted by sk185050 on 24-Nov-2010 03:30

Can you please share you xcbr u are using.

Posted by cwiseman on 24-Nov-2010 10:19

My CBR is configured at the service level, not at the process level.  One of SonicConnect published web service operation routes/maps to the Router process.  The Router process contains a CBR service which uses the configured XCBR file - routing to all (both) legs.  One leg processes with a REPLY_TO exit endpoint to respond ultimately to the client requester.  The other leg just does independent processing.

My XCBR file is attached.  It appears to be working now, but it started working all of a sudden out of the blue without any deliberate actions on my part.  That kind of think perplexes me because I never thought I was doing anything wrong to begin with but was still getting the XCBR URL not found issue.

Thanks for the replies guys.

This thread is closed