免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1730 | 回复: 0
打印 上一主题 下一主题

R3系统中执行RFC导致ccBPM堵塞 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-11 21:44 |只看该作者 |倒序浏览
   在WAS 6.20(没有安装APPINT add-on)之前版本的系统,我们无法使用Proxy interface,不得不使用RFC interface。
   使用RFC往XI发送消息的代码类似如下:
CALL FUNCTION 'Z_RFC_ORGANIZATION_1'
     IN BACKGROUND TASK DESTINATION 'RFC_SENDER'
EXPORTING
   ZIF_LSH = ZIF_LSH
  TABLES
    ZMM002 = it_zmm002.
COMMIT WORK.
其中'RFC_SENDER'是一个TCP/IP类型的RFC,ZIF_LSH和it_zmm002是需要传送给XI的数据。
  在ccBPM中,发送RFC请求时,有时为了提高系统性能,我们会考虑使用两个异步的消息传输代替一个同步的消息传输,我们通常在ccBPM中放置一个Send Node和一个Receive Node(都是异步的),Send Node发送RFC请求,Receive Node接收RFC返回的消息。
  如上所述的ccBPM开发完成后,正常使用过程中没有任何问题,但如果有人在R3系统中执行了RFC程序(如通过SE37),这时RFC程序也会向XI发送消息,而且是发向ccBPM,但由于并没有接收这条RFC消息的ccBPM实例,于是导致了ccBPM队列出现错误,通过SMQ2可以查看到如下错误:
"Permanent error in BPE inbound processing"
   应用用户在不知晓的情况下,照常执行ccBPM,会发现无法生成ccBPM实例,消息成功发送到ccBPM后,流程就停止不动了,通过SMQ2,会发现队列问题。
   XI系统管理员可以通过删除错误的条目,然后unlock queue,再restart停止的条目可以解决这个问题,但要想彻底避免发生可以修改RFC程序,将COMMIT WORK注释掉,通过ccBPM去调用RFC时,调用结束后会自动COMMIT WORK的,代码修改如下所示:
CALL FUNCTION 'Z_RFC_ORGANIZATION_1'
     IN BACKGROUND TASK DESTINATION 'RFC_SENDER'
EXPORTING
   ZIF_LSH = ZIF_LSH
  TABLES
    ZMM002 = it_zmm002.
* COMMIT WORK.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/109665/showart_2146046.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP