SAP服务器进程预警通知

在财务月结,HR薪资核算等系统用户集中使用高峰时期。通过判断判断当前系统可用的并行对话框进程数,用户使用过多给出提示,服务器进程预警通知。

1. 根据配置的进程最大可使用率80%,根据进程数判断:当进程可用数少于20%,提示报错【初始化服务器组时,或系统进程高负载】

2. 根据配置的服务器响应时间(ms),获取服务器列表最新数据 ,超出最大响应时间,给出报警提示用户 系统响应慢 ,请稍后再试。

3. 根据CPU判断:如当CPU超出80%,提示 报错

FUNCTION zhrfm_judge_work_process.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(GROUP_NAME) TYPE  RZLLITAB-CLASSNAME DEFAULT SPACE
*"  EXPORTING
*"     VALUE(ES_MESG) TYPE  ZSHR_MESSAGE
*"     REFERENCE(IDLE_CPU) TYPE  ALPNEWVALS
*"----------------------------------------------------------------------

  DATA: ls_pm01 TYPE zthr_pm01.

  SELECT SINGLE * FROM zthr_pm01 INTO ls_pm01.


**************************************************************************************
*                   一、根据进程数判断:当进程可用数少于20%,提示报错
**************************************************************************************
  DATA: lv_max     TYPE i,
        lv_free    TYPE i,
        lv_percent TYPE p DECIMALS 2.

  IF ls_pm01-proc_switch = 'X'.
    CALL FUNCTION 'SPBT_INITIALIZE'
      EXPORTING
        group_name                     = ' '
      IMPORTING
        max_pbt_wps                    = lv_max
        free_pbt_wps                   = lv_free
      EXCEPTIONS
        invalid_group_name             = 1
        internal_error                 = 2
        pbt_env_already_initialized    = 3
        currently_no_resources_avail   = 4
        no_pbt_resources_found         = 5
        cant_init_different_pbt_groups = 6
        OTHERS                         = 7.
    IF sy-subrc = 4.
      es_mesg-msgty = 'E'.
      es_mesg-msgtx = '当前查询人员过多,初始化服务器组时出现错误,请稍后再试!'.
      RETURN.
    ENDIF.

    IF lv_max NE 0.
      lv_percent = ( lv_free / lv_max ) * 100.
      IF lv_percent LT ( 100 - ls_pm01-proc_num ).
        es_mesg-msgty = 'E'.
        es_mesg-msgtx = '当前查询人员过多,系统进程高负载,请稍后再试!'.
        RETURN.
      ENDIF.
    ENDIF.

  ENDIF.

**************************************************************************************
*                   一、根据进程数判断:当进程可用数少于20%,提示报错
**************************************************************************************
  DATA intg_tbl TYPE TABLE OF salstintg WITH HEADER LINE.
  DATA intg_tbl_pi TYPE TABLE OF salstintg WITH HEADER LINE.

  DATA:intg_tbl_mail TYPE TABLE OF salstintg WITH HEADER LINE.

  DATA :g_max_time  TYPE int4, "报警响应时间
        lv_sum_time TYPE int4.

  CLEAR intg_tbl_mail[].

  IF ls_pm01-response_switch = 'X'.

    g_max_time = ls_pm01-response_time."报警响应时间

    "获取服务器列表
    CALL FUNCTION 'RZL_STRG_READALL_I'
      EXPORTING
        srvname  = 'MSGSERVER'
      TABLES
        intg_tbl = intg_tbl
      EXCEPTIONS
        OTHERS   = 01.


    "刷新每个服务器数据
    LOOP AT intg_tbl WHERE value1 = 7353.
      CALL FUNCTION 'RZL_STRG_DEL'
        EXPORTING
          srvname = intg_tbl-name
          name    = 'FAV_COMPUTE_LGIN'
          typ     = 'C'
        EXCEPTIONS
          OTHERS  = 01.

      CALL FUNCTION 'RZL_SUBMIT'
        DESTINATION intg_tbl-name
        EXPORTING
          repid  = 'RSRZLLG0'
        EXCEPTIONS
          OTHERS = 01.
    ENDLOOP.

    "重新获取最新的数据
    CLEAR intg_tbl[].

    CALL FUNCTION 'RZL_STRG_READALL_I'
      EXPORTING
        srvname  = 'MSGSERVER'
      TABLES
        intg_tbl = intg_tbl
      EXCEPTIONS
        OTHERS   = 01.

    DATA lv_num TYPE i.
    CLEAR lv_num.
    LOOP AT intg_tbl WHERE value1 = 7353.   " AND VALUE5 = 3537.  "Yue
      lv_sum_time = lv_sum_time + intg_tbl-value2.
      IF intg_tbl-value2 GE '1000'.
        lv_num = lv_num + 1.
      ENDIF.
    ENDLOOP.

    IF lv_sum_time > g_max_time.
      es_mesg-msgty = 'E'.
      es_mesg-msgtx = '当前查询人员过多,系统响应慢,请稍后再试!'.
      RETURN.
    ENDIF.
    IF lv_num GE '3'.
      es_mesg-msgty = 'E'.
      es_mesg-msgtx = '当前查询人员过多,系统响应慢,请稍后再试!'.
      RETURN.
    ENDIF.
  ENDIF.

**************************************************************************************
*                   三、根据CPU判断:当CPU少于50%、80%,提示 报错
**************************************************************************************
*  DATA: lv_max     TYPE i,
*        lv_free    TYPE i,
*        lv_percent TYPE p DECIMALS 2.

  IF ls_pm01-proc_switch = 'X'.

*   CALL FUNCTION 'GET_CPU_ALL'.

    DATA lt_ccm_data TYPE TABLE OF ccm_data.
    DATA ls_ccm_data TYPE  ccm_data.
    DATA lv_dest_logical TYPE rfcdes-rfcdest.

    CONCATENATE sy-host '_' sy-sysid '_00'INTO  lv_dest_logical.  "ehr01-m-szzb   SY-PAUTH

*    lv_dest_logical = sy-title+4(19).

    CALL FUNCTION 'GET_CCM_DATA'
      EXPORTING
*       LOCAL_REMOTE                   = 'LOCAL'
        logical_destination            = lv_dest_logical  " ehr01-m-szzb_RP1_00
* IMPORTING
*       F_CCM_DATA_READ                =
*       ACTIVEFLAG                     =
*       INTERVAL                       =
*       DETAILSCOLL                    =
*       DETAILSREQI                    =
*       DETAILSMODE                    =
*       LASTCOLLWRT                    =
*       LASTCOLLINT                    =
*       NORMCOLLINT                    =
      TABLES
        tf_ccm_data                    = lt_ccm_data
      EXCEPTIONS
        internal_error_adress_failed   = 1
        internal_error_different_field = 2
        internal_error_no_new_line     = 3
        collector_not_running          = 4
        shared_memory_not_available    = 5
        collector_busy                 = 6
        version_conflict               = 7
        no_network_collector_running   = 8
        system_failure                 = 9
        communication_failure          = 10
        OTHERS                         = 11.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.

    IF lt_ccm_data[] IS NOT INITIAL.

      CLEAR ls_ccm_data.
      READ TABLE lt_ccm_data INTO ls_ccm_data WITH  KEY objectname = 'CPU'  attributename = 'Idle' mteclass = 'CPU_Idle'.   " CPU_UsageUser
      IF sy-subrc = 0.
*        DATA lv_idle2(5).
*        DATA(lv_idle) =   ls_ccm_data-perf_snap_total / ls_ccm_data-perf_snap_number / 10 ** ls_ccm_data-perf_decimals.
*        WRITE lv_idle TO lv_idle2 DECIMALS ls_ccm_data-perf_decimals.

        idle_cpu = ls_ccm_data-perf_snap_total.

*        IF ls_ccm_data-perf_snap_total LE '50'." AND ls_ccm_data-perf_snap_total GT '20' .   " Idle CPU
**          idle_cpu = 'A'.
*        ENDIF.
*        IF ls_ccm_data-perf_snap_total LE '20' .   " Idle CPU
*          idle_cpu = 'B'.
**          es_mesg-msgty = 'E'.
**          es_mesg-msgtx = '当前操作人员过多,请稍后再试!'.
*        ENDIF.
      ENDIF.
    ENDIF.
  ENDIF.

ENDFUNCTION.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/983122.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无人机推流/RTMP视频推拉流:EasyDSS无法卸载软件的原因及解决方法

视频推拉流/直播点播EasyDSS平台支持音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务&#xff0c;在应用场景中可实现视频直播、点播、转码、管理、录像、检索、时移回看等。此外&#xff0c;平台还支持用户自行上传视频文件&#xff0c;也可将上传的点播…

【工具】ProToDeviseR一个自动化的蛋白质拓扑方案生成器

文章目录 介绍代码案例参考 介绍 氨基酸序列表征是几乎任何蛋白质分析的基本组成部分&#xff0c;创建简洁清晰的蛋白质拓扑结构在蛋白质组学研究中具有重要意义。尽管存在许多数据库和预测服务器&#xff0c;但是将来自各种资源&#xff08;有时是竞争资源&#xff09;的数据…

数据结构基础(一)

文章目录 1 数据结构基础1.1 什么是程序&#xff1f;1.2 数据、数据元素、数据项、数据对象1.3 基本的逻辑结构 2 算法效率2.1 时间复杂度2.1.1 循环执行次数2.1.2 大O(n)表示法 2.2 空间复杂度 1 数据结构基础 1.1 什么是程序&#xff1f; ​ 程序 数据结构 &#xff0b; 算…

taosd 写入与查询场景下压缩解压及加密解密的 CPU 占用分析

在当今大数据时代&#xff0c;时序数据库的应用越来越广泛&#xff0c;尤其是在物联网、工业监控、金融分析等领域。TDengine 作为一款高性能的时序数据库&#xff0c;凭借独特的存储架构和高效的压缩算法&#xff0c;在存储和查询效率上表现出色。然而&#xff0c;随着数据规模…

RangeError: Maximum call stack size exceeded

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

《白帽子讲 Web 安全》之文件操作安全

目录 引言 &#xff08;一&#xff09;文件上传与下载漏洞概述 1.文件上传的常见安全隐患 1.1前端校验的脆弱性与服务端脚本执行危机在文件上传流程中&#xff0c;部分开发者可能会在前端使用 JavaScript 代码对文件后缀名进行简单校验&#xff0c;试图以此阻止非法文件上传…

[FE] React 初窥门径(五):React 组件的加载过程(commit 阶段)

1. 回顾 前一篇文章我们看到&#xff0c;ReactDOM.render 总共包含这些步骤&#xff0c; 然后介绍了 performSyncWorkOnRoot 做的事情&#xff0c;它主要做了两件事&#xff0c; renderRootSync 可称之为 render 阶段&#xff1a;创建了一颗 Fiber Tree&#xff08;包含 html …

Elastic如何获取当前系统时间

文章目录 1. 使用 _ingest.timestamp 在 Ingest Pipeline 中获取当前时间2. 使用 Painless Script 获取当前时间3. 使用 now 关键字在查询中获取当前时间4. 使用 date 类型字段的默认值5. 使用 Kibana 的 Dev Tools 查看当前时间6. 使用 date 聚合获取当前时间7. 使用 Elastics…

Elasticsearch 2025/3/7

高性能分布式搜索引擎。 数据库模糊搜索比较慢&#xff0c;但用搜索引擎快多了。 下面是一些搜索引擎排名 Lucene是一个Java语言的搜索引擎类库&#xff08;一个工具包&#xff09;&#xff0c;apache公司的顶级项目。 优势&#xff1a;易扩展、高性能&#xff08;基于倒排索引…

计算机毕业设计Python+DeepSeek-R1大模型医疗问答系统 知识图谱健康膳食推荐系统 食谱推荐系统 医疗大数据(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

网络安全通信架构图

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在安全通信里面我经常听到的2个东西就是SSL和TLS&#xff0c;这2个有什么区别呢&#xff1f;以及HTTPS是怎么通信的&#xff1f;包括对称加密、非对称加密、摘要、…

代码随想录算法训练营第22天 | 组合总和 分割回文串

39. 组合总和 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 题目链接/文章讲解&#xff1a;代码随想录 视频讲解&#xff1a;带你学透回溯算法-组合总和&#xff08;对应「leetcode」力扣题目&#xff1a;39.组合总和&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_…

esp32 arduino开发常用函数(需要和乐鑫的arduino文档配合使用)

说明&#xff1a;1、由于写函数参数浪费时间并且没有说明只有参数意义不大&#xff0c;所以在此函数一般只以函数名出现。 2、esp32有两个核心&#xff0c;编号为0和1&#xff0c;如果启动了wifi和蓝牙&#xff0c;则会默认将wifi和蓝牙运行在编号为0的核心上。 3、esp32adc2…

《鸢尾花数学大系:从加减乘除到机器学习》开源资源

《鸢尾花数学大系&#xff1a;从加减乘除到机器学习》开源资源 Gitee&#xff1a;https://gitee.com/higkoo/ bilibili&#xff1a;https://space.bilibili.com/513194466 GitHub&#xff1a;https://github.com/Visualize-ML

Markdown HTML 图像语法

插入图片 Markdown ![图片描述](图片链接)一般来说&#xff0c;直接复制粘贴过来就行了&#xff0c;部分网页/应用可以拖拽&#xff0c;没人会真敲图片的链接吧…… 示例图片&#xff1a; ![Creeper?](https://i-blog.csdnimg.cn/direct/f5031c8c4f15421c9882d7eb23540b8…

deepseek在pycharm 中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm&#xff0c;如何接入deepseek是我们窥探ai代码编写的第一步&#xff0c;熟悉起来总没坏处。 1、官网安装pycharm社区版&#xff08;免费&#xff09;&#xff0c;如果需要安装专业版&#xff0c;需要另外找破解码。 2、安装Ollama…

华为eNSP:配置单区域OSPF

一、什么是OSPF&#xff1f; OSPF&#xff08;Open Shortest Path First&#xff0c;开放最短路径优先&#xff09;是一种链路状态路由协议&#xff0c;属于内部网关协议&#xff08;IGP&#xff09;&#xff0c;主要用于在单一自治系统&#xff08;AS&#xff09;内部动态发现…

live555推流服务器异常

1.后端异常信息&#xff1a; MultiFramedRTPSink::afterGettingFrame1(): The input frame data was too large for our buffer size (100176). 48899 bytes of trailing data was dropped! Correct this by increasing "OutPacketBuffer::maxSize" to at least m…

ubuntu24.04-系统重装

1.下载系统并安装 参考 Ubuntu-24.04安装教程超详细(2024)_ubuntu24.04-CSDN博客 ubuntu.iso下载地址&#xff1a;https://cn.ubuntu.com/download/desktop 2.添加清华源 1.清华大学开源软件镜像站 | Tsinghua Open Source Mirror sudo passwd root #设置 root 密…

中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)

OceanBase《DB 大咖说》第 15 期&#xff0c;我们邀请到了中原银行金融科技部数据团队负责人&#xff0c;吕春雷。本文为本期大咖说的精选。 吕春雷是一位资历深厚的数据库专家&#xff0c;从传统制造企业、IT企业、甲骨文公司到中原银行&#xff0c;他在数据库技术与运维管理…