cancel
Showing results for 
Search instead for 
Did you mean: 

Message in status 'holding' without reasonable reason

Former Member
0 Kudos

Hi all,

I will explain this 'X file' problem.

We have an scenary between an R/3 --> XI --> R/3

The communication it's between an interface with .txt file; No conversion to XML, XI only does 2 steps at Interface Determination:

1º Writes in an FTP destination with Communication Channel Filereceiver

2º Executes an RFC who charges that file in a table at destination.

The interface sends between 100 and 200 files by day. At least 2 / 4 by day stays in status 'Holding'. These files are similar to another Succesfull messages.

At Integration Server, and SXMB_MONI, all logs are OK. But in Adapter Engine from RWB i see this log (For File CC and RFC CC):

2007-12-11 15:53:41 Success Message successfully received by messaging system. Profile: XI URL: http://xixsap:59000/MessagingSystem/receive/AFW/XI Credential (User): XIISUSER

2007-12-11 15:53:41 Success Using connection File_http://sap.com/xi/XI/System. Trying to put the message into the receive queue.

2007-12-11 15:53:41 Success Message successfully put into the queue.

2007-12-11 15:53:41 Success The message was successfully retrieved from the receive queue.

2007-12-11 15:53:41 Success The message status set to HOLD.

If we make a "Resend", the message tries to be delivered again and sets to Hold.

If i resend the same file from original /out directory, it's processed fine.

Thanks in advance for your help

Message was edited by:

Federico Martin

Message was edited by:

Federico Martin

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Federico,

Holding is the state of an EOIO message that cannot be delivered until its predecessors have been delivered.

When the quality of service of the messages is exactly once in order (EOIO) and messages are delivered in the same sequence that they were sent from the sender system. For that reason a sequential number is assigned to the message.

When a message runs on an error during the processing, all other messages in the same queue will not be processed until the error is fixed or the erroneous message is cancelled from processing.

To solve the problem it is necessary to

1.find the message which blocks the queue.

2.If there are a huge number of messages in your system you search for the lowest sequential number in the queue.

3. If you know the name of the queue that is stuck, you can add the queue name as additional filter criteria. Click on Show Additional Criteria.

4. Enter the queue name to the field Conversation ID and set the parameter Quality of Service to Exactly Once in Order.

5. To be able to see the sequential numbers in the message monitor, you configure the table columns.

6. Add Conversation Id (that is the queue name) and Sequential Number to the table columns.

7. Scroll the window right to see the new columns. Sort the sequential number ascending (the upper triangle).

8Now the erroneous message is the first message in the display. You can look at the error reason, try to fix the problem and resend or cancel the message to release the queue.

9. After you have resent or cancelled the message all other message will be processed immediately.

You have of course to make sure, that the next message in sequence does not run on error too.

**Pls: Reward with Points if helpful **

Regards,

Jyoti

Answers (6)

Answers (6)

Former Member
0 Kudos

THANKS ALL FOR YOUR HELP!

I cancelled all messages in Holding after detect "System Error" originally message.

Regards and thanks again

Former Member
0 Kudos

Check Message in AF, there is a possibilty there some or any of the message is in Systems Error state. and due to this some message get stuck in AF. and comes in status called Holding/Waiting state.

Cancel or Resend the message that are is Systems Error state and then send the rest of the message.

Thanks

Farooq.

Former Member
0 Kudos

What Farooq is said is very correct, check for any message which are in system error state. Just cancle them or inactive the CC for a time being and then test your scenario.

GabrielSagaya
Active Contributor
0 Kudos

HOLDING is a status which occurs normally for EOIO (Exactly Once In Order), so your message is set to Holding means some earlier message has not gone through. So until those messages are through this message will be in HOLDING state. Have a look at this link which explains how to handle such scenarios.

http://help.sap.com/saphelp_nw04/helpdata/en/49/e3fb40ef74f823e10000000a155106/content.htm

Former Member
0 Kudos

Hi Federico,

First check if there any inbound queues (smq2) and outbound queues (SMQ1) are blocked................If there is any such queues are blocked then go and right click on them to delate that queue....................This way u can delete the queues which are in error so that the messages which are behind them wil get processed sucessfully...................

Reward with points if helpful

Regards

Sai Ganesh

Former Member
0 Kudos

Check your inbound and outbpund queue by using tcode SMQ1 & SMQ2. Check if any message is stuck in queue. Clear all the queues and then again run your scenario.

Regards,

Sarvesh

Former Member
0 Kudos

Sarvech / Sai:

At smq1:

Cantidad entradas visualizadas : 0

Cantidad colas visualizadas : 0

Md. Nre.cola Destino Entradas

No se ha seleccionado nada

At smq2:

Cantidad entradas visualizadas : 0

Cantidad colas visualizadas : 0

Md. Nomb.cola Entradas

No se ha seleccionado nada

I had no blocked one.

aashish_sinha
Active Contributor
0 Kudos

Hi

use search filter to check the last message in waiting. then cancle that message and restart all holding messge.

Also check this link

/people/stefan.grube/blog/2006/04/27/how-to-deal-with-stuck-eoio-messages-in-the-xi-30-adapter-framework

Hope this will help you.

Regards

Aashish Sinha

Former Member
0 Kudos

Hi Aashish, The problem is not to resend the message, we wanna purge the circuit so no more 'holding' messages appears.

Thanks