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'EXPORTINGgroup_name                     = ' 'IMPORTINGmax_pbt_wps                    = lv_maxfree_pbt_wps                   = lv_freeEXCEPTIONSinvalid_group_name             = 1internal_error                 = 2pbt_env_already_initialized    = 3currently_no_resources_avail   = 4no_pbt_resources_found         = 5cant_init_different_pbt_groups = 6OTHERS                         = 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'EXPORTINGsrvname  = 'MSGSERVER'TABLESintg_tbl = intg_tblEXCEPTIONSOTHERS   = 01."刷新每个服务器数据LOOP AT intg_tbl WHERE value1 = 7353.CALL FUNCTION 'RZL_STRG_DEL'EXPORTINGsrvname = intg_tbl-namename    = 'FAV_COMPUTE_LGIN'typ     = 'C'EXCEPTIONSOTHERS  = 01.CALL FUNCTION 'RZL_SUBMIT'DESTINATION intg_tbl-nameEXPORTINGrepid  = 'RSRZLLG0'EXCEPTIONSOTHERS = 01.ENDLOOP."重新获取最新的数据CLEAR intg_tbl[].CALL FUNCTION 'RZL_STRG_READALL_I'EXPORTINGsrvname  = 'MSGSERVER'TABLESintg_tbl = intg_tblEXCEPTIONSOTHERS   = 01.DATA lv_num TYPE i.CLEAR lv_num.LOOP AT intg_tbl WHERE value1 = 7353.   " AND VALUE5 = 3537.  "Yuelv_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                    =TABLEStf_ccm_data                    = lt_ccm_dataEXCEPTIONSinternal_error_adress_failed   = 1internal_error_different_field = 2internal_error_no_new_line     = 3collector_not_running          = 4shared_memory_not_available    = 5collector_busy                 = 6version_conflict               = 7no_network_collector_running   = 8system_failure                 = 9communication_failure          = 10OTHERS                         = 11.IF sy-subrc <> 0.
* Implement suitable error handling hereENDIF.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_UsageUserIF 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.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java代码审计 | 第四篇】SQL 注入防范

文章目录 Java SQL 注入防御方法类型转换预编译查询&#xff08;PreparedStatement&#xff09;使用 ORM 框架&#xff08;如 MyBatis、Hibernate&#xff09;白名单限制ORDER BY 语句LIKE 语句 限制数据库权限过滤和转义特殊字符监控与日志审计使用 Web 应用防火墙&#xff08…

软考中级-数据库-3.3 数据结构-树

定义:树是n(n>=0)个结点的有限集合。当n=0时称为空树。在任一非空树中,有且仅有一个称为根的结点:其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3...,Tm…,其中每个集合又都是一棵树,并且称为根结点的子树。 树的相关概念 1、双亲、孩子和兄弟: 2、结点的度:一个结…

选择排序算法的SIMD优化

一、优化原理 将查找数组最小值索引的SIMD优化的函数嵌入选择排序主循环,优化最耗时的最小值查找环节,同时保留选择排序的交换逻辑。 二、关键改造步骤 1)最小值查找模块化 复用SIMD优化的 find_min_index_simd函数。 2)动态子数组处理 每次循环处理 arr[i..n-1] 子数…

考网络安全工程师证要什么条件才能考?

在当今数字化时代&#xff0c;网络安全问题日益凸显&#xff0c;网络安全工程师成为了一个备受瞩目的职业。许多有志于投身这一行业的学子或职场人士&#xff0c;都希望通过考取网络安全工程师证书来提升自己的专业素养和竞争力。那么&#xff0c;考网络安全工程师证需要具备哪…

uniapp项目运行失败Error: getaddrinfo *.bspapp.com 文件查找失败uview-ui及推荐MarkDown软件 Typora

一、uniapp项目运行失败Error: getaddrinfo *.bspapp.com 文件查找失败uview-ui 在运行一个uniapp项目时&#xff0c;出现报错 文件查找失败&#xff1a;uview-ui&#xff0c;Error: getaddrinfo ENOTFOUND 960c0a.bspapp.com。hostname异常&#xff0c;报错的详细信息如下&…

使用阿里云 API 进行声音身份识别的方案

使用阿里云 API 进行声音身份识别的方案 阿里云提供 智能语音交互&#xff08;智能语音识别 ASR&#xff09; 和 声纹识别&#xff08;说话人识别&#xff09; 服务&#xff0c;你可以利用 阿里云智能语音 API 进行 说话人识别&#xff0c;实现客户身份验证。 方案概述 准备工…

【Pandas】pandas Series unstack

Pandas2.2 Series Computations descriptive stats 方法描述Series.argsort([axis, kind, order, stable])用于返回 Series 中元素排序后的索引位置的方法Series.argmin([axis, skipna])用于返回 Series 中最小值索引位置的方法Series.argmax([axis, skipna])用于返回 Series…

大模型发展历程

大模型的发展历程 大语言模型的发展历程一、语言模型是个啥&#xff1f;二、语言模型的 “进化史”&#xff08;一&#xff09;统计语言模型&#xff08;SLM&#xff09;&#xff08;二&#xff09;神经语言模型&#xff08;NLM&#xff09;&#xff08;三&#xff09;预训练语…

springboot项目使用中创InforSuiteAS替换tomcat

springboot项目使用中创InforSuiteAS替换tomcat 学习地址一、部署InforSuiteAS1、部署2、运行 二、springboot项目打包成war包 特殊处理1、pom文件处理1、排除内嵌的tomcat包2、新增tomcat、javax.servlet-api3、打包格式设置为war4、打包后的项目名称5、启动类修改1、原来的不…

Seata

Seata是一款开源的分布式事务解决方案&#xff0c;由阿里巴巴发起并维护&#xff0c;旨在帮助应用程序管理和协调分布式事务。以下是对Seata的详细介绍&#xff1a; 一、概述 Seata致力于提供高性能和简单易用的分布式事务服务&#xff0c;它为用户提供了AT、TCC、SAGA和XA等…

Pytest自动化框架

Pytest简单介绍 下载pytest pip install pytest 第一章&#xff1a;Pytest console命令 默认需要test开头的py模块,test_开头的方法 1.pytest 执行pytest命令会自动匹配到test开头或者结尾的文件 将其作为测试用例文件执行&#xff0c;在测试用例文件中自动匹配到test开…

【spring】注解版

1.管理bean 之前我们要想管理bean都是在xml文件中将想要添加的bean手动添加进ioc容器中&#xff0c;这样太过麻烦了&#xff0c;在 Java 开发里&#xff0c;针对一些较为繁琐的操作&#xff0c;通常会有相应的简化方式&#xff0c;这个也不例外&#xff0c;就是spring提供的注…

RV1126+FFMPEG多路码流监控项目

一.项目介绍&#xff1a; 本项目采用的是易百纳RV1126开发板和CMOS摄像头&#xff0c;使用的推流框架是FFMPEG开源项目。这个项目的工作流程如下(如上图)&#xff1a;通过采集摄像头的VI模块&#xff0c;再通过硬件编码VENC模块进行H264/H265的编码压缩&#xff0c;并把压缩后的…

13.IIC-EEPROM(AT24C02)

1.为什么需要EEPROM? 在单片机开发中&#xff0c;断电数据保存是常见的需求。例如&#xff0c;智能家居设备的用户设置、电子秤的校准参数等都需要在断电后仍能保留。AT24C02作为一款IIC接口的EEPROM芯片&#xff0c;具备以下优势&#xff1a; 非易失性存储&#xff1a;断电后…

ubuntu22.04安装P104-100一些经验(非教程)

一、版本&#xff1a; 系统&#xff1a;ubuntu-22.04.5-desktop-amd64.iso Nvidia 驱动&#xff1a;NVIDIA-Linux-x86_64-570.124.04.run。官网下载即可 二、经验 1、通用教程⭐ 直接关键词搜“ubuntu p104”会有一些教程&#xff0c;比如禁用nouveau等 安装参考&#xff1a…

TCP7680端口是什么服务

WAF上看到有好多tcp7680端口的访问信息 于是上网搜索了一下&#xff0c;确认TCP7680端口是Windows系统更新“传递优化”功能的服务端口&#xff0c;个人理解应该是Windows利用这个TCP7680端口&#xff0c;直接从内网已经具备更新包的主机上共享下载该升级包&#xff0c;无需从微…

OSI七大模型 --- 发送邮件

我想通过电子邮件发送一张照片给我的朋友。从我开始写邮件到发送成功&#xff0c;按照这个顺序讲一下我都经历了OSI模型的哪一层&#xff0c;对应的层使用了什么样的协议&#xff1f; 完整流程示例&#xff08;补充物理层细节&#xff09; 假设你通过Wi-Fi发送邮件&#xff1a…

LINUX网络基础 [一] - 初识网络,理解网络协议

目录 前言 一. 计算机网络背景 1.1 发展历程 1.1.1 独立模式 1.1.2 网络互联 1.1.3 局域网LAN 1.1.4 广域网WAN 1.2 总结 二. "协议" 2.1 什么是协议 2.2 网络协议的理解 2.3 网络协议的分层结构 三. OSI七层模型&#xff08;理论标准&#xff09; …

【LLms】关键词提取

1. 停用词 在文本处理和信息检索领域&#xff0c;停用词&#xff08;Stop Words&#xff09;是指在文本中出现频率较高&#xff0c;但通常不包含实际语义信息或对语义理解贡献较小的词汇。这些词汇通常是一些常见的功能词&#xff0c;如冠词、介词、连词、代词、感叹词、助动词…

1998-2022年各地级市三次产业占比/地级市国内生产总值构成/地级市第一产业占比、第二产业占比、第三产业占比数据(全市)

1998-2022年各地级市三次产业占比/地级市国内生产总值构成/地级市第一产业占比、第二产业占比、第三产业占比数据&#xff08;全市&#xff09; 1、时间&#xff1a;1998-2022年 2、指标&#xff1a;第一产业占比、第二产业占比、第三产业占比 3、来源&#xff1a;城市统计年…