I have a service configured to take input from a queue (say Sample.Q1).When I input the endpoint with an message (XML Type) it says some error like *No Partner Links defined in the message*. I guess this is because the endpoint expects a message of XQMessage type and I would need to set some of its headers.
I am having difficulty in creating an XQMessage type. Could anyone explain how I could
You can use the Workbench, message sender tool,
check the attached picture.
The type XQMessage don't exist. To test a service or a ESB process, the simple way
is to create a JMS/ESB message in Workbench and save it.
Create a scenario using your message in input file. Run scenario.
Rares, Thank you for the reply,
Ya I am able to create the message in the workbench (in the message sender as your image shows) but my problem is that if we don't have XQMessage then how would we use the service when it is deployed.
I am able to create scenario and test the service as you say, but how would it be deployed then?
The XQMessage is a SonicESB internal message which is an Multipart JMSMessage.
To start a ESB process you have to send a JMS Message to the EntryPoint (Queue/Topic).
In the fact, a simple ESB service can not be executed standalone.
A service is a piece of the puzzle. You have to include the service in a ESB process.
Create a new ESB process and drag&drop your service in the schema. After that you can test it by creating a scenario. If you want to deploy your process you have to upload it (use the upload icon). Strat the SMC (Sonic Management console) and check the list of Process. After that you have to deploy the process into a ESB Container. Create 4 Sonic EndPoints (Entry,Exit, Faut, RMC) for your process and finish the configuration of your process. You have to deploy the process into the ESB container, restart the container.
Guess I have not been able to make my question clear,
Well I have got the document that could solve my problem in the Sonic IW help section.
I have attached the portion of the thing I am trying to refer to.
I am pretty sure what the document says, but the thing is how do I implement it, in other words, how do create XQMessage object?
I don't known if this you search but you can touch the XQMessage using a Java Custom Service.
Create a new Java->SourceFolder named "src".
Create a new->JavaServiceType.
There you can use the java object XQMessage, but as I say
this is an ESB internal message type.
Can you perhaps give us more information on exactly what you're trying to do? Partner links are a BPEL concept and the documentation you posted also refers to BPEL. From the sounds of it, you're sending a message directly to a BPEL process's Entry Endpoint, but the message you're sending doesn't have the required properties/headers.
Perhaps a simpler approach would be to have your custom service not try to send directly to the BPEL process, but rather to add a BPEL step to the process, right after your custom service.
Thank you Jamie,
First of all sorry not have mentioned the word BPEL even once though my question is totally related to BPEL.
Ya, you got me right. I am trying to send a message directly to BPEL process's Entry Endpoint and hence facing the error.
I have done the way you suggested and it works perfectly fine.
Nevertheless, I would still like to know if the way I am trying is possible?
Whether or not I can instantiate XQMessage and add the desired headers to it?
I dare say that adding the appropriate headers to the message and directly sending it to the BPEL Entry Endpoint will work, as in the end, both an ESB Message (XQMessage) and a BPEL Message are just Sonic MQ message with the appropriate headers & parts.
That said, if you want to drop a message directly on the BPEL Entry Endpoint, you're effectively rebuilding some of the functionality provided out of the box. As the various standards evolve, updates to the implementation may be required and of course the out of the box solution will provide the required modifications. For you own implementation, you would need to figure out what the required changes are and implement them yourself.
Now, if you still want to go ahead and do this, you might have trouble finding out want headers you need to set, as I'm fairly sure that they're not provided in any public documentation. Of course, you could always make the BPEL Entry Endpoint a topic and look into the message that actually gets sent.
Thanks again Jamie,
I never intended to do that way though,
I feel I was muddled by the part of the help of the Workbench which says that it is possible and also shows which headers to be set and how.
Could you explain this? (I have attached the part of the help in the 6th post of this thread help.PNG)
Hey look, it did make it into the docs - I just didn't come across it yet
I guess the doc just covers how to do it manually, if you don't want to take advantage of the simple way. I don't see a good reason for wanting to do it manually. I guess the documentation is a little misleading in not pointing out that there is a simpler way.
Beyond that, I can't really comment, because I've never implemented the manual approach either...
I thought it was just me that the doc misleaded