cancel
Showing results for 
Search instead for 
Did you mean: 

Setting Acknowledgement through JMS

former_member192105
Participant
0 Kudos

Dear Experts,

We have a JMS sender application and a JMS receiver, my question is can we configure Acknowledgement in this scenario which will inform the sender that the message was successfully received by the receiver? What I know is File does not support Ack processing, so does JMS also behave the same way?

If JMS can ask for an acknowldgement , how and where to configure it (SAP Note on JMS does not provide any information on this, config will be in the sender but does anybody have an idea how it is done)?

And once ACK is configured will PI have to perform any additional set of configurations to be done to send back the Ack? in IDOC we create an additional channel to send the ACK; something like that?

Thank you.

Accepted Solutions (0)

Answers (2)

Answers (2)

stefan_grube
Active Contributor
0 Kudos

> ...can we configure Acknowledgement in this scenario which will inform the sender that the message was successfully received by the receiver?

Maybe you should figure out wht it means, that the sender should be informed.

How should this look like?

Is the sender capable to receive ack. messages? How does sender match message and ack, what is done with this information and so on.

In principle the receiver of the message (and not the adapter) should send a message back. This is the only way to know, if the message data where posted successfully. It it not sufficient to know, the the JMS adapter has put the data in a queue where they data might be lost.

Former Member
0 Kudos

Hi Abhishek,

As Stephan mentioned, for End to End delivery acknowledgment you have to build an own interface. I think you should get back at your client and discuss what's the exact requirement.

For just notifiying your sender that a message was successfully put into a receiver JMS queue, yes you could build an BPM that requests an ack from the JMS receiver adapter and sends a message back to the sender on a separate interface...doesn't sound like a quite slick solution anyway and is not so suitable for high volumes.

I ve seen a "similar" requirement from time to time, that people just want to "JMS"-acknowledge a message from a sender Queue, when they already processed it to a receiver and otherwise let it reside in that Queue. This is possible with some other tools (e.g. TIBCO BW), but not possible with PI due to its processing nature (first step of sender adapter is receiving a JMS message and take it out of the Queue when its stored in PI's message system, second step PI tries to send it to a receiver).

Best wishes

Sebastian

former_member192105
Participant
0 Kudos

Hello,

I think you should get back at your client and discuss what's the exact requirement.

Yes, I have replied back to the client team with set of doubts, but yet to receive a response. Will keep the thread updated when I get a response.

yes you could build an BPM that requests an ack from the JMS receiver adapter and sends a message back to the sender 
on a separate interface

BPM will not suit our requirement as we have many such scenarios where the above requirement is to be implemented.

This is possible with some other tools (e.g. TIBCO BW), but not possible with PI due to its processing nature

Sad to hear it, it will be a huge task to convince the client about this behavior. Other than BPM can we implement some workaround which is easy to configure and implement for all the scenarios? It is the same as you have mentioned.

Thanks once again for keeping a track of my question.

former_member192105
Participant
0 Kudos

Hello,

Got a confirmation that the acknowledgement will flow back in another call and in terms of SAP PI it will not be an acknowledgement but another scenario.

~Thanks.

former_member192105
Participant
0 Kudos

Any idea on the above scenario? I do not think it should be that difficult for the experts of this forum

Thanks.

stefan_grube
Active Contributor
0 Kudos

You are right. The question is easy. It is enough to read online help to find the answer.

The answer is: No.

Former Member
0 Kudos

Hi Abhishek,

Stefan put the answer quite lean

It's not possible for an end to end acknowledgment as the PI doesn't "know" if a message that was transferred to a jms Queue is really consumed by the depending clients.

JMS actually aside has its "own" acknowledgment features, but they are just related to guaranteed delivery from a queue/topic to a Consumer/Producer (in that case your JMS Adapter in PI). (see here: http://docs.sun.com/source/819-0068/progfeatures.html)

It's no mechanism that relates to PI Acknowledgments.

With best wishes

Sebastian

former_member192105
Participant
0 Kudos

Thanks a lot for your replies.

I should have seen this reference from help: http://help.sap.com/saphelp_nwpi711/helpdata/en/48/ce29693a8e5430e10000000a42189b/frameset.htm

If I navigate through How to configure JMS Receiver in this section: http://help.sap.com/saphelp_nwpi711/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm

There is a point
21.      If the JMS receiver is an application, the JMS adapter should return a delivery acknowledgment. Select Send PI Delivery 
Acknowledgment (Adapter Is Endpoint).

As per my understanding it should mean, the JMS receiver-channel will get back an acknowledgement from the JMS receiver to PI; so what will PI do with the acknowledgement ?

Thanks.

former_member192105
Participant
0 Kudos

The actual requirement is:

JMS -(ZIP File)--> SAP PI 7.11 --> JMS

PI is supposed to receive an acknowledgement from JMS-receiver and then send a confirmation message to JMS-sender saying that the message was successfully delivered to the JMS-receiver.

The above scenario description is as per the functional requirement that I got. So how the above can be achieved?

Thanks.

Former Member
0 Kudos

Hi Abhishek,

Yes the receiver JMS Adapter supports Acknowledgments, but that only means you ll get a acknowledgment about success/failure of putting a message to the queue.

From a end to end perspective Acknowledgments are must be requested by the sender. In your case (JMS Sender Adapter)

this is not possible. Its possible e.g. for ABAP Proxies to request a transport Acknowledgment.

So if you d have a scenario like this ABAP Proxy -> SAP PI -> JMS Receiver, you'd be able to get acknowledgments about the delievry to the JMS Queue in the Receiver Adapter back to your System, where the ABAP Proxy runs.

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)

The solution you re looking for (JMS Sender gets ack from JMS Receiver) is only possible to implement if you build a second separate interface that makes the answer back (however from my feeling that feels kind of unnatural for a decoupled technology like JMS).

With best regards

Sebastian

former_member192105
Participant
0 Kudos

Hello,

Yes the receiver JMS Adapter supports Acknowledgments, but that only means you ll get a acknowledgment about 
success/failure of putting a message to the queue.

I would at least need to know how this Acknowledgement will be like (just an indicator or a message). I actually want to know about an interface which shows how this ACK is utilized (any blog).

In BPM there is a Transport Acknowledgement option which is an indicator and it can be used for further processing, so now how can I use this ACK sent by JMS-receiver?

In your case (JMS Sender Adapter) this is not possible.

Yes, I came to know this from the help section.

So if you d have a scenario like this ABAP Proxy -> SAP PI -> JMS Receiver, you'd be able to get acknowledgments about 
the delievry to the JMS Queue in the Receiver Adapter back to your System, where the ABAP Proxy runs.

Unfortunately the scenario has JMS as sender.

I will try to get more clarification from the person who developed the functional document; meanwhile I will be grateful if somebody can help me resolve the issue.

Thanks.