cancel
Showing results for 
Search instead for 
Did you mean: 

PCo 2.3: Exactly Once in Order Queue Stopper

Former Member
0 Kudos

Hello to the experts.

I created an PCo 2.3 agent to send notification messages "Exactly Once in Order" to a web service using the Web Service Destination.

If one web service call throws an exception and the maximum number of retries is reached, the message dispatcher stops working. The agent shows the "white cross on red square". No more messages are sent, the queue is stopped. You have to restart the agent.

This is quite hard. A single invalid message should not prevent the other 99,9% valid messages from being sent. It would be enough to move the message to the message failures queue after the last retry failed and continue with the next message.

Is there a way to configure PCo, that the dispatcher does not stop working and instead continues with the next message?

Sending the messages in parallel would solve the problem, but is not an option. We can afford to loose a single invalid message, but we have to keep the order.

Best regards,

Martin

Accepted Solutions (1)

Accepted Solutions (1)

former_member196557
Active Contributor
0 Kudos

Hi Martin,

The Dispatch handling of Exactly Once In Order is a synchronous process.  If a message cannot be deilvered the dispatcher will stop until that message is delivered after the agent instance is restarted. This is working as designed, and is described in the PCo Application Help for this setting.

If you do not select the Exactly Once In Order option, and your Agent Instance has only one notification, and the notification events are separated by a longer duration than the execution time of the destination, each notification message would be delvered in the order they were dispatched. However a failed message would be retried (on a separate thread) in parallel to notification event dispatch, and *could* be delivered out of order, and if two notification events occurred in a shorter interval, the dispatched messages could be delivered out of order as they are executed on separate threads.  If you do not configure any retries for Reliable Messaging settings, then the failed message would be discarded after a single attempt and would never be sent out of order.

Are you calling SAP Web Services, like the SAP ME Production web services, or a 3rd party web service?

Regards, Steve

Former Member
0 Kudos

Hi Steve,

thanks for the answer.

Not selecting the Exactly Once in Order option will not do in our case. We expect the messages to occur in shorter intervals than the service needs to process the message. I will discuss this issue with my client.

I developed the web service myself. Internally, it uses various PAPI services to do it's job. Therefore I can change the behavior of the service. I am thinking about adding a try-catch-block to catch any exception and log them somewhere else. For PCo every web service call would be successful (apart from network problems) and the dispatcher will never stop.

Best regards,

Martin

Answers (0)