当前位置: 首页 > news >正文

SAP PI PO 接口常见问题处理:队列平衡的统计平均分配

场景描述

异步 XI 消息的处理由 qRFC 条目的处理开始。qRFC 条目在 n 个并行队列中,分配基于随机算法。这意味着队列中的条目可能分配不均,即队列积压。队列积压可能有另一个原因,即队列条目在处理期间出错,随即冻结队列。

要避免或移除队列积压,必须满足以下两个条件:
•条目平均分配到 n 个并行队列。
•如果存在队列积压,则只会在条目较少的队列中调度新条目。

配置

参数 EO_QUEUE_BALANCING_READ
•参数 EO_QUEUE_BALANCING_READ 和参数 EO_QUEUE_BALANCING_SELECT 一同控制 EO 消息在队列中的分配,消息的数量由参数 EO_OUTBOUND_PARALLEL、EO_INBOUND_PARALLEL_SENDER 和 EO_INBOUND_PARALLEL 确定。如果参数的值是 0,则消息将在可用的队列中随机分配。这是缺省设置。不过,如果消息没有在队列中均匀分配,那么这将由该参数来抵消。如果 EO_QUEUE_BALANCING_READ 设置为值 n 且 n 大于零,那么平均来说,队列的当前填充级别将在每第 n 个消息后确定,并将存储在应用程序服务器的共享内存中。这些数据是确定队列的基础(请参阅参数 EO_QUEUE_BALANCING_SELECT 的描述)。值得注意的是,确定填充级别时需要进行数据库访问,因此会影响系统性能。所以,应根据消息的吞吐量和具体要求或均匀分配来确定 EO_QUEUE_BALANCING_READ 的值。

参数 EO_QUEUE_BALANCING_SELECT
•仅当参数 EO_QUEUE_BALANCING_READ 不等于 0,即处于活动状态时,此参数才有效。消息将继续随机分配到 EO 队列中。这些队列由此参数定义。它将队列的相对填充级别指定为百分比形式。相对这里指相对于最大填充队列。如果某些队列的填充级别低于这里定义的级别,那么仅考虑将这些队列进行分配。如果所有队列的填充级别都比较高,那么将考虑所有队列。相对填充级别的计算取决于受参数 EO_QUEUE_BALANCING_READ 影响的功能所确定的数据。

缺省值
•使用以下 ABAP XI 参数激活统计平衡:
•TUNING EO_QUEUE_BALANCING_READ 20
•TUNING EO_QUEUE_BALANCING_SELECT 80

注释:

该建议在新生成大约 20 条 XI 消息后为 XI 运行时生成新统计。统计平衡的配置必须使用场景优化。这意味着必须为许多 XI 消息增加值 TUNING EO_QUEUE_BALANCING_READ 以提高性能。

相关文章:

  • Vue学习之旅——开发准备
  • 【Unity小功能开发实战教程】重写MaskableGraphic实现UI图片圆角化功能
  • drools动态规则之Maven解析
  • 【收藏系列】多线程八股文总结
  • [Typescript]基础篇之接口
  • 现学现用的 10 个 Python 技巧
  • 3 UI开发的点点滴滴
  • 群晖docker实现IPV6访问
  • 攻防比赛中通过供应链进行渗透攻击
  • 实时即未来,车联网项目之电子围栏分析【六】
  • 前端应该掌握的浏览器调试技巧
  • Java的static关键字
  • Kafka原理介绍
  • 【Unity3D日常BUG】Unity3D中使用高亮插件Highlighting出现的错误:Parameter name:shader
  • LabVIEW编程语法学习笔记之全局变量
  • 【mysql】环境安装、服务启动、密码设置
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • C++类的相互关联
  • Golang-长连接-状态推送
  • If…else
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java到底能干嘛?
  • MySQL-事务管理(基础)
  • nodejs:开发并发布一个nodejs包
  • python学习笔记 - ThreadLocal
  • scala基础语法(二)
  • 悄悄地说一个bug
  • 入口文件开始,分析Vue源码实现
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 阿里云服务器购买完整流程
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #pragma multi_compile #pragma shader_feature
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (javascript)再说document.body.scrollTop的使用问题
  • (Matlab)使用竞争神经网络实现数据聚类
  • (二)c52学习之旅-简单了解单片机
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (七)Knockout 创建自定义绑定
  • (三分钟)速览传统边缘检测算子
  • (一)WLAN定义和基本架构转
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .cfg\.dat\.mak(持续补充)
  • .Net IOC框架入门之一 Unity
  • .net(C#)中String.Format如何使用
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • @vue/cli 3.x+引入jQuery
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用