2011年(9)
分类: Oracle
2011-12-19 09:59:01
SAP PI系统版本: PI7.1.1
ECC系统版本: ECC 6.0
目的:由于网络或系统问题,如例行系统停机维护或网络切换,可能会导致SAP PI的异步接口在ECC系统中队列中出现错误。由于SAP 通过队列方式处理异步接口消息,如果队列中的一条消息发生错误,会导致整条队列被阻塞,队列中的所有消息都无法继续执行。此时,需要ECC系统管理员登陆到系统,处理阻塞的队列中的错误消息,以便解锁整条消息队列。
实现方式: 手动队列解锁:SMQ2可以用来监控入站队列
TCODE:SMQ2, 输入需要监控的Client和队列名称,可以使用通配符”*”
显示当前正在执行或阻塞的队列,双击其中一个队列的Queue Name,如XBTS0004
Status状态为红色说明队列出现问题。SYSFAIL说明由于系统或网络原因,消息没有发送成功,导致整条队列阻塞。
双击QUEUE NAME,显示队列中的消息
进入队列消息显示界面。双击队列中第一条消息的QUEUE NAME,进入消息此消息详细内容的监控界面。
进入TCODE: SXI_MONITOR对应的消息监控界面。
对阻塞消息进行处理。点击消息行最左边的空白处选中消息,然后点击菜单栏中的Restart,重新触发消息执行。在弹出窗口中,选择Retain。
执行后刷新消息监控程序,可以看到消息已经成功被重新出发和执行。
队列中的第一条消息成功出发后,后续消息也会自动开始执行,整条队列解锁成功。回到队列监控界面,可以看到队列XBTS0004已经被成功处理,没有任何阻塞。
对于由于网络问题或消息对应的单据被前台用户锁定而导致的消息阻塞,本文中的方法可以直接将消息进行解锁。对于由于数据问题导致的队列阻塞,则需要对消息的内容进行处理或删除出现错误的消息,以便解锁整条队列。
自动队列解锁同时,SAP提供了一个自动解锁消息队列的程序,通过后台作业定时调用该程序,可以实现消息的定时自动解锁。
程序名称:RSXMB_RESTART_MESSAGES
对程序RSXMB_RESTART_MESSAGES的测试运行。
执行程序前,使用TCODE:SMQ2,可以看到系统中存在8条阻塞队列(这些阻塞是由于公司网络切换,导致接口无法正常发送数据造成的)。
TCODE:SA38。输入程序名称并执行。
输入时间范围,如720分钟(12小时)内的错误消息。然后点击执行
程序执行结果,所有阻塞队列被解锁,消息成功执行。
重新执行SMQ2,可以看到所有阻塞队列都已处理。
有关于SAP的问题大家一起探讨 QQ:1835845352