使用知行之桥EDI系统时,由于业务数据量的增多,难免会遇到一些系统异常情况,为了保证企业生产环境的稳定运行,EDI系统自带了错误邮件通知功能。此功能保证了在EDI系统自动处理数据的过程中可以将异常信息及时告知用户,使用户收到邮件及时处理,保证数据的正常传输。
那么除了一些常见的异常情况,随着企业业务数据量的增大,现有服务器环境可能无法提供足够的磁盘空间存放数据处理的日志和文件,特别是在使用跨平台版本(JAVA版本)的知行之桥EDI系统时,此情况比较常见。基于此背景,我们提供了堆内存占用超过80% 邮件预警以及磁盘空间使用率超过80%邮件预警功能。具体实现步骤如下:
一、堆内存占用超过 80% 邮件预警
Java堆内存管理是影响性能的主要因素之一,堆内存过高可能会造成内存溢出,导致进程无法无法访问,从而使EDI系统无法正常运行。为了避免这一问题的出现,提前预警,可以参考以下步骤进行配置:
1.新建监控脚本java_heap_usage_monitor.sh文件,监控脚本的具体代码如下(注:其中_java=/home/java/jdk1.8.0_201/bin/java是当前环境中java执行路径,需要根据自身情况进行修改):
#!/usr/bin/env bash
set -e
while getopts "v" opt; do
case $opt in
v) debug_mode=true;;
esac
done
function _log_msg() {
if [ $debug_mode ]; then
echo $1
fi
}
function error() {
echo $1 >&2
}
_java=/home/java/jdk1.8.0_201/bin/java
# Check if arcesb service is live
arcesb_pid=$(ps -aux | grep -e "java.*arcesb.jar" | grep -v grep | awk '{ print $2 }')
if [ ! -n "$arcesb_pid" ]; then
error "Failed to aceess arcesb process."
exit 2
fi
_log_msg "arcesb pid: $arcesb_pid"
# Get java major version
if [[ "$_java" ]]; then
java_version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
_log_msg "java version: $java_version"