cancel
Showing results for 
Search instead for 
Did you mean: 

Configuration for sync/async bridge in Jms adapter

Former Member
0 Kudos

Can someone give me a hint what I might be doing wrong?

The scenario is: synchronous proxy to jms.

Integration repository:

Created synchronous outbound interface and synchronous inbound interface, message mapping, interface mapping.

Integration directory:

Created jms receiver communication channel and jms sender communication channel and configured them according "How to correlate jms messages".

Created receiver determination, interface determination and receiver agreement.

No sender agreement necessary for proxy sender.

So far so good, but...

Both the receiver and sender jms adapter have its own queue (the receiving system will get the request in one queue and put the response in another).

<b>How does the waiting jms receiver adapter know where to expect the answer?</b>

When I test this scenario the (outbound) message get the status "Log version" (abap moni) and "To be delivered" (java moni).

PS:

The testing is performed by using the tool rfhutil. With this tool you can read and write directly from/to the MQ queues where the jms adapters are pointing to.

After receipt of the request in the queue of the reveicer jms communication channel, I manually put a message in the queue of the sender jms communication channel with the XI message ID filled in the correlation ID.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

I solved it, turns out that I was doing two things wrong.

1. At first I did not configure a sender agreement on the synchronous inbound interface, but because I am receiving the reply in a different queue, this is necessary.

2. I overlooked the parameter JMS-Compliant, we always used the setting Websphere MQ, but for the jms bridge you need to set this to JMS-Compliant in at least the sender channel in the sync/async scenario.

3. (optional) You set fill in a reply to queue, so the other application automatically knows where to put the reply.

Thanks for your replies, it pointed me to the right direction.

Former Member
0 Kudos

Hi,

Could you pls forward ur scenario as well as config setting as we are also going to work on same like this.

If possible could you please tell me what are the prerequisites required before going for dev.

my scenario is ...

(Java program/Web service)>JMS queue>XI>JMSQueue>(Java custom pgrm/Web service).

My mail id:nivas4081@yahoo.co.in

Thanks in advance.

Regards..

Former Member
0 Kudos

Have a look at the SAP documentation, it describes the communication channel configuration pretty well. The catch is to send the jms header, you can do that by selecting "jms-compliant".

What I thought that was confusing, is the need for a sender agreement on the inbound synchronous interface, but that is probably just a lack of knowledge from my part. This was pointed to me by Prateek in this thread, have a look at that discussion.

For the rest I do not really have anything to add to the documentation and this forum thread, but if you have any questions while developing your scenario, you could always open a thread.

Regards.

Former Member
0 Kudos

Thanks a lot for your reply.I found some documents from help.sap.com and SDN.

Former Member
0 Kudos

More information, In the jms adapter the following error appears:

XI inbound processing failed for message at time 2007-06-11|11:12:48.908+0100. JMS and XI identifiers for the message are ID:414d512052545849444556312020202045f55b6c20d73102 and 4e5bff20-1804-11dc-c2b4-00096b6ed15c respectively. The JMS adapter will rollback the database and JMS session transactions. If the session is transacted, the message is not lost and will be retried later. The exception stack trace is java.lang.Exception: Minimum address data not configured. Field InterfaceNamespace is empty.

at com.sap.aii.af.service.jms.WorkerJMSReceiver.onMessage(WorkerJMSReceiver.java:1516)

at com.ibm.mq.jms.MQMessageConsumer.receiveAsyncQ(MQMessageConsumer.java:2538)

at com.ibm.mq.jms.MQMessageConsumer.receiveAsync(MQMessageConsumer.java:4260)

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

Have not worked on Synch - Asynch Bridge, but check if this blog helps you,

/people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19

Regards

Bhavesh

Former Member
0 Kudos

Thanks for your reply, but that blog does not add anything to the documentation.

Former Member
0 Kudos

Hi,

In receiver JMS adapter you will find one parameter called JMS ReplyToQueueName. There you mention the queue name that you have mentioned in sender JMS CC.

Regards,

Sudheer.

Former Member
0 Kudos

Tried that, but still receiving "java.lang.Exception: Minimum address data not configured. Field InterfaceNamespace is empty" error in jms adapter.

Former Member
0 Kudos

Hi,

Are u using Module in the communication channels? i feel that the error is suggesting there is some issue with the namespace.Please make sure that you have correctly configured everything.

Regards,

Sudheer.

Former Member
0 Kudos

Checked configuration again, everthing looks ok.

prateek
Active Contributor
0 Kudos

The similar problem was solved here

Regards,

Prateek

Former Member
0 Kudos

Now I configured a sender agreement on the synchronous inbound interface (how crazy can it get) and the namespace error is gone.

However the scenario still does not work. My suspicion is that the jms correlation id is not properly filled by the utility.