cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP Proxy to JMS : Acknowledgement

former_member556412
Active Participant
0 Kudos
419

Hi All,

I have requirement, where an Outbound proxy is called via Function module and a message is triggered to a JMS queue, is it possible to send an ACK back to abap proxy back.

I undersatnd that the receiver JMS Adapter supports Acknowledgments, but that only means we will get a acknowledgment about success/failure of putting a message to the queue.

From an end to end perspective Acknowledgments are must be requested by the sender. It’s possible via ABAP Proxies to request a transport Acknowledgment.

However this is just a guarantee that PI delivered the Message to the Queue. You still cannot see if the application that consumes from this Queue already processed the Message or not (could still be stuck in the JMS Queue)


Requesting Acknowledgemnet in ABAP Outbound proxies.

http://help.sap.com/saphelp_nw70/helpdata/EN/f4/8620c6b58c422c960c53f3ed71b432/frameset.htm

But there are few restictions to the requiremnets.

The ACK is restricted to  ‘System Acknowledge’ for a JMS Receiver.

The question being how can we match the feedback to the right entry in the backend ECC?
The backend has a table that contains the JMS Correlation ID (also dispatched to the receiver) and the table has 2 key fields that are both present in the outgoing message.

We can not query the acknowledgement during the sending of the message. It is an a-sync message so we are not going to wait around until SAP PI comes to processing that specific message.
Would it be possible to route the acknowledgement message back to the backend and process it as an inbound message?
Or do we have to set up a program that at regular times will have to query SAP PI on acknowledgments?
                But then how would we know which messages to query?
                We are not looking for storing the message ID temporarily , since this will cause messore overload.

Any pointers to this is highly appreciable.

Br,

Bhanu

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I'm not sure you can "manually" send an application ack without a BPM.

If it's ok for you to use a BPM, then the 3rd party will need to send you back an agreed message interface containing the original JMS message ID (they should have it exactly as you have in the table you mentioned)
you can use it as a correlation in the BPM and then use the BPM to send a positive ack.

However - this seems like a big mess.

Can't you just make another interface with the 3rd party, that will in fact be the response?

Just identify what is the uniuqe key (for example: order number) of the application data, and process it as an incoming proxy that will modify the status of the original message.

In that way nobody has to save the message IDs for reference, and you will be focusing on the applicative data.

Answers (0)