cancel
Showing results for 
Search instead for 
Did you mean: 

Error in JMS message routing

Former Member
0 Kudos

Hi,

I am doing interface which send JMS messages to IDOC. JMS is sending three different messages (three XSD's) and I have created three separate interfaces as a below.

A) Negative.xsd ; to IDOC1

B) Positive.xsd ; to IDOC2

C)Multiple.xsd ; to IDOC3

When I get the Negative.xsd from JMS for the first time, Interface u2018Au2019 is executing and itu2019s creating IDOC1 successfully. When I get the Negative.xsd for the second time then the Interface u2018Bu2019 is executing (Instead of Interface u2018Au2019) and itu2019s trying to send Negative.xsd into IDOC2 and itu2019s getting fail.

When we are getting all the three XSDu2019s at the same time then first interface u2018Au2019 is getting picked up and failed for the second (u2018Bu2019) and third (u2018Cu2019) interfaces and for first one is successful.

Can you please guide me to pick the right interface?

Regards,

Kishore

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi, Kishore:

In your situation, you need to configure Message Selector for your JMS sender adapter:

1. First you have to work with your JMS Queue system consultant, create a Property name, Saying "MsgType", its value is used to identify type of the message. e.g. the message of Positive Type put into the queue, its Property value "MsgType" can be set to "Positive"

2. In your JMS Communication Channel, Parameter Tab -> Advanced Tab, you need to Check " Adapter Specific Message Attribute"

3. Then Check "Specify Additional JMS Message Properties

Click "+" to add your property name, it should match the property name mentioned in step 1. e.g. "MsgType"

4. In "Process" tab, you specify message Selector:

e.g. MsgType = Positive"

After you have done above step, this JMS adapter only pick message of the Property value "MsgType" equals to "Postive"

You can create additonal JMS commnunication channels that polling from same queue, but only for different type of message: e.g. "Negative"

Regards !

Liang

Answers (1)

Answers (1)

Former Member
0 Kudos

For the JMS sender communication have you use single queue in all three communication channel.

If yes then that is your main problem. Keep the diff. queue name in all comm. channel.

Gaurav Jain

Points if answer is helpful

Former Member
0 Kudos

Hi Gaurav,

Your right I am using one queue name for all the interfaces, but I am getting all diffrent messages (xsd's) from the same queue and also it is my requirement.

Regards,

Kishore

Former Member
0 Kudos

Simple solution is define different Queue per interface (means communication channel)

it should work.

Gaurav Jain

Reward Points if answer is helpful