研究、分享我学习零售业SAP的历程
------------打造中国第一个零售SAP博客
posts - 253,comments - 439,trackbacks - 2

Messages in XI can fail due to many reasons. Most of the common failures are due to connection failure to end systems, wrong or missing configuration settings, exceptions that weren't handled or lack of disk space for processing messages. These errors can be categorized as  those generated in 
                    I.  Integration Engine
                    II. Adapter Engine.

I. Errors in Integration Engine

a)  qRFC Errors

在inbound queues里常常会出出SYSFAIL 状态的数据,当出现这个错误后,整个queue将无法处理,你可以手工的触发queue重新处理,使用t-code:smqr 或者smq2 ,

image

可以设置下列参数,实现message queue自动重发
MONITOR QRFC_RESTART_ALLOWED to value 1

image

也可以自定义job report RSQIWKEX ,使之周期性运行.

b) tRFC Errors
Like qRFC errors one can either manually or automatically initiated processing of messages hanged tRFC calls.
Manual Resend of messages: Use transaction SM58 and check through the list. If necessary, start hanging tRFC calls
under the Edit menu by choosing Execute LUWs.
For automatic tRfC failure recover, schedule the report RSARFCEX for periodic execution.

c) Other Errors
All the errors generated and captured in Integration engine can be viewed using transaction SXMB_MONI. Message that were sent asynchronously and had failed due transient system/configuration failures can be manually restarted in SXMB_MONI.

image

But would it be fun to restart many messages manually. What is required is a way to be able to automatically resend messages that error out. Thankfully there are many ways of doing this in XI.

Option 1
IS_Retry
A batch job( internal in XI) is automatically scheduled to reprocess the entry after 2 minutes.
If the maximum number of retries was reached (10 by default; IS configuration parameter
TUNING IS_RETRY_LIMIT), a communication error then causes a SYSFAIL status for a queue.
 

Option 2 The problem with setting IS_RETRY is that every message with a failure status will be retried every 2minitues till the maximum number of retries is reached. Since there is no control on the retry period , a high retry count could cause excessive load on XI. The other option is to do Mass Restart  by scheduling the report RSXMB_RESTART_MESSAGES at a predetermined retry period like 1hr. There is a catch here, RSXMB_RESTART_MESSAGES tries to restart a failed message 800 times by default. So if there is a message that failed due to genuine reasons, we may want to limit the number of retries. It is recommend by SAP to reduce the retry count to 20 restarts. (You can always manually restart a message, from the monitor, up to 990 times).


This value can be maintained in SXMB_ADM-> specific configuration 'DELETION'  'MAX_VERSION'    'BATCH_RETRY' . If you don't see the DELETION category , you must run the report RSXMB_CREATE_CONF_ENTRIES3 to generate the configuration parameter.


Finally here is the table that describes ways to handle resubmit of errors in Integration Engine

Type of Error

Manual Start

Automatic Start

qRFC

SMQ2

RSQIWKEX

tRFC

SM58

RSARFCEX

OTHER errors

SXMB_MONI

RSXMB_RESTART_MESSAGES


II. Errors in Adapter Engine
Till now we have seen how to resubmit/restart message that failed in Integration Engine.  One a message makes it from Integration Engine to Adapter Engine, the message is flagged as checked in Integration Engine. The status of the message in Adapter engine does not effect the processed state in Integration Engine. Now if this message was asynchronous, XI will by default try to restart the message 3 times at intervals of 5 minutes before the status of the message is changed from Waiting to System Error .

image


image


image

As shown in the above figures a message is initially put into waiting status, XI tries 3 times before changing the status of the message to System Error. One can Manually resend the error messages by using the RESEND button in RWB. In scenarios where XI was trying to send the message to an end system that was down for maintenance, you would want XI to resubmit the message automatically without human intervention. What would be nice is to able to tune the retries like IS_Retry which is available for Integration engine.
We can achieve this by changing the retry count used by the Adapter Engine, by default its set to 3 times, 5 minutes apart. This count can be changed in Visual Admin->server->services-> SAP XI Adapter: XI.
Here  change the number Retries parameter from 3 to 10 and change the retry retryInterval to around 10minutes. For these configuration changes to be picked up, restart SAP XI Adapter: XI.
 

Conclusion
Error in XI are inevitable, but when they occur we should be able to restart or resend the messages in a way that requires minimal human intervention, especially if the errors were due to system outage or system memory exceptions. In this weblog I have tried to list out the most commonly occurring errors and the many ways of  restarting these messages.

posted on 2008-07-26 18:12 会东 阅读(207) 评论(7)  编辑 收藏 网摘 所属分类: SAP XI/PI

FeedBack:
2008-08-06 10:53 | 张彦祥 [未注册用户]
您好!
我SAP刚入行,做XI开发顾问,非常想认识您。
您的blog里怎么会有这么多模块的文章?工作中都用到吗?
  回复  引用    
#2楼 [楼主]
2008-08-06 13:26 | 会东      
嗯,工作中遇到的和自己学习的一些笔记,欢迎交流。
  回复  引用  查看    
2008-11-13 10:41 | abapsydney [未注册用户]
我在澳洲做ABAP顾问,也自学XI/PI,不知你这里有啥较好的教材或项目资料可供学习. 非常希望能相互交流,共同提高!
  回复  引用    
#4楼 [楼主]
2008-11-13 11:43 | 会东      
of course
  回复  引用  查看    
#5楼 [楼主]
2008-11-13 11:45 | 会东      
你的邮箱有误,发送不成功,我的MSN:fhd1983@hotmail.com
  回复  引用  查看    
2008-12-15 11:12 | 俞樑 [未注册用户]
妳好!!我初学PI 。不知您有什么联系方式比如msn、qq什么的希望能得到您的指点

  回复  引用    
#7楼 [楼主]
2008-12-15 12:26 | 会东      
QQ group:9463184
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: