cancel
Showing results for 
Search instead for 
Did you mean: 

Problem in Message Processing Rules

Former Member
0 Kudos

Hi All,

I have created Webservice(URL) for an transaction through Message Processing rule, with server name: 'XMIIMESSAGELISTENER'

URL: http://<IP Address>/XMII/Illuminator?Service=WSMessageListener&mode=WSMessageListenerServer&NAME=Shop_order_data&XacuteLoginName=<username>&XacuteLoginPassword=<passwrd>

Above URL or transaction has 1 input(XML) and 1 output(string)

As it tested from Oracle system, its working fine and updating all the data and saving xml file in MII DB.

As it save data in MII, it will send success message(string) in the output parameter of transaction.

This message has to send back Oracle system

Issues is, they are not recieving success message.

Is Message Process rule wont return any value or message from MII transaction to other system?

Please help me on this

Thanks,

Kind Regards,

Praveen Reddy M

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member193328
Active Participant
0 Kudos

Hi Praveen

The WSMessageListener HTTP Service does not process the incoming message immediately.

What you have done in MII.

1. Created a MII Transaction with an Input Param type XML and an Output Param Type String.

2. Configure the Transaction in MII Processing Rules for WSMessageListener server.

3. Sent XML Message to URL http://<IP Address>/XMII/Illuminator?Service=WSMessageListener&mode=WSMessageListenerServer&NAME=Shop_order_data&XacuteLoginName=<username>&XacuteLoginPassword=<passwrd>

What happens in the system:

1. MII WSMessageListener receives the XML Message and stores the message in MII DB.

2. It invokes the processing rule and runs the transaction that was configured for it.

3. Message status is set to Success.

This means that MIIWSMessageListener does not run the Transaction immediately upon receiving the XML Message. Hence the response of the Transaction output is not sent to the sender application. The reason for this is that the WSMessageListener service is treated as an asynchronous service where the sender does not care about the response of the receiver.

If this is not what you want then you can run your transaction in one of the following ways:

1. http://<host:<port>/XMII/Runner?Transaction=<project/folder/trx name>&OutputParameter=<paramname>

2. with a Soap Message to the URL http://<host>:<port>/XMII/SoapRunner/<Transaction full path>. Please note that this service expects a SOAP Message and not just an XML payload.

Hope this helps you.

Regards

Partha

Former Member
0 Kudos

Hi Sarathi,

Thanks for response

exactly you have understood what i mean to ask

So i need to use direction transaction as URL to receive xml file from oracle and sending back success message.

And onemore thing, as you mentioned in webservice(URL) for transaction

http://<host:<port>/XMII/Runner?Transaction=<project/folder/trx name>&OutputParameter=<paramname>

Is i need to add output parameter also. Here i didnt get you

Thanks,

Kind Regards,

Praveen Reddy M

former_member193328
Active Participant
0 Kudos

Hi Praveen

No it is not necessary but an option. You can set the input param value in the HTTP Payload and also get the output in the HTTP Response object.

Regards

Partha

Former Member
0 Kudos

Hi Sarathi,

Is there any chance for to use message listener for this.

My client need to pass data from Message listener.

Thanks,

Kind Regards,

Praveen Reddy M

former_member193328
Active Participant
0 Kudos

Hi Praveen

You cannot post a message to Message Listeners and expect a response from the Transaction that is executed. The only way to achieve this would be to call a HTTP URL from the transaction back to the Oracle System to post the response. This will be in a separate context.

As I mentioned earlier the Message Listeners are for asynchronous messaging.

Regards

Partha

Former Member
0 Kudos

Hi Sarathi,

Thanks for your knowledge share,

Can you please tell in steps or procedure to create transaction for category(processing type) which we specific in the Message Processing rules

As this also work asynchronous

And if i create webservice URL direct to the transaction which i have mentioned previously, then this will send back success message to oracle DB.

Thanks,

Kind Regards,

Praveen Reddy M

Edited by: praveen2425 on Feb 23, 2012 6:21 AM

former_member193328
Active Participant
0 Kudos

Hi Praveen

With categories also Message Listeners will work in asynchronous mode. What a Category does is instead of running a Transaction it just marks the incoming message o be of a certain category. You can then read the messages for a certain caegory through BLS Actions and process them. The messages are always returned in order of the received timestamp.

How to use this:

1. Create a Processing Rule in MII Message Listener and choose processing type as Category. Select or Add a Category for the messages.

2. Send messages to MII Message Listeners.

3. You can see in the Message Monitor that these messages are stored with Status Categorized and the category name is displayed.

4. Create a BLS Transaction using the Actions under the head "Message Services". First Query the messages in a Category using the Query Messages action. Next pass ID of each of these messages to the Read Message action to get the XML Payload. Proces them and then set the appropriate status of the messages using the Update Message action.

5. Schedule this transaction in MII Scheduler and run it at appropriate frequencies.

Regards

Partha

Former Member
0 Kudos

Hi Sarathi,

last question on this and i will close this forum

if i create webservice URL direct to the transaction which i have mentioned previously, then this will send back success message to oracle DB.

Thanks,

Kind Regards,

Praveen Reddy M

former_member193328
Active Participant
0 Kudos

Hi Praveen

Yes this is correct.

Regards

Partha

Former Member
0 Kudos

Hi Sarathi,

Thanks a lot for your time sarathi.

Kind Regards,

Praveen Reddy M