MoiaControlV5错误解决方法集锦

本文遵循BY-SA版权协议,转载请附上原文出处链接。


本文作者: 黑伴白

本文链接: http://heibanbai.com.cn/posts/991dbc1b/

MoiaControl V5

对日常已咨询过的问题及创建处理流程进行记录,方便后续问题回顾及快速便捷排查

1. 前言

如果在使用moia过程中出现异常,主要通过以下几点进行查看分析:

  • 确认各调度、执行及Web节点==服务==是否正常
  • 确认各节点==空间==均未满,包括调度节点、执行节点、Web等
  • 查看调度节点日志是否有错误信息
    • 到调度节点log目录对应的日期目录下查看是否有err结尾的日志文件,若有看下错误信息
  • 查看执行节点日志是否有错误信息
    • 到执行节点log目录对应的日期目录下查看是否有err结尾的日志文件,若有看下错误信息
  • 查看web日志
    • 这里以tomcat为例:到tomcat的log目录下,查看Catalina.out日志文件,确认是否有错误信息(可以在操作web前先tail -f catalina.out文件,查看即时日志信息)

一般情况下,操作web时报的错误看web日志即可,其他错误查看节点日志

2. 服务启停操作

2.1 环境信息

此环境为单机模拟环境,zookeeper为伪集群,在后面进行问题处理时,==以实际环境及安装路径为准==

IP地址 应用类型 安装路径 备注
199.188.166.110 zookeeper1节点 /home/moiasrv/zookeeper_01
199.188.166.110 zookeeper2节点 /home/moiasrv/zookeeper_02
199.188.166.110 zookeeper3节点 /home/moiasrv/zookeeper_03
199.188.166.110 调度节点 /home/moiasrv
199.188.166.110 C版本执行节点 /home/moiaagt
199.188.166.110 Java版本执行节点 /home/moiajava/MoiaControlAgent
199.188.166.110 Web服务 /home/moiasrv/apache-tomcat-7.0.100 此环境默认为Tomcat部署

2.2 激活环境变量

在进行服务相关命令时,对于调度节点以及C版本执行节点,需要激活环境变量后再行操作

  • 调度节点

    1
    2
    3
    cd /home/moiasrv
    # 注意.后有空格
    . setenv
  • C版本执行节点

    1
    2
    3
    cd /home/moiaagt
    # 注意.后有空格
    . setenv
  • Java版本执行节点

    1
    # Java版本执行节点无需激活环境变量

2.3 zookeeper服务

  • 停止服务

    1
    2
    cd /home/moiasrv/zookeeper_01/bin
    sh zkServer.sh stop
  • 启动服务

    1
    2
    cd /home/moiasrv/zookeeper_01/bin
    sh zkServer.sh start
  • 查看状态

    1
    2
    cd /home/moiasrv/zookeeper_01/bin
    sh zkServer.sh status

2.4 调度节点服务

  • 查看服务状态

    1
    2
    3
    4
    5
    6
    7
    8
    cd /home/moiasrv
    # 激活环境变量 注意.后有空格
    . setenv
    # 查看相关服务进程均正常存在
    # 查看方式1
    lsmt
    # 查看方式2 此方式会列出当前集群所有节点的服务状态
    MSrvAdm -l
  • 启动服务

    1
    2
    3
    4
    5
    6
    7
    8
    cd /home/moiasrv
    # 激活环境变量 注意.后有空格
    . setenv
    # 两种启动方式任选其一即可
    # 启动方式1
    startup.sh
    # 启动方式2
    MSrvAdm -t
  • 停止服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cd /home/moiasrv
    # 激活环境变量 注意.后有空格
    . setenv
    # 两种停止方式任选其一即可
    # 停止方式1
    shutdown.sh
    # 停止方式2
    MSrvAdm -q
    # 强制停止服务 一般只有在一些特殊情况下才用到
    moia_down

2.5 执行节点服务

2.5.1 C版本执行节点
  • 查看服务状态

    1
    2
    3
    4
    5
    cd /home/moiaagt
    # 激活环境变量 注意.后有空格
    . setenv
    # 查看服务均正常存在 执行节点无作业运行时一般为 MClmAgt MCtrlAgt 两个进程
    lsmt
  • 启动服务

    1
    2
    3
    4
    5
    6
    7
    cd /home/moiaagt
    # 激活环境变量 注意.后有空格
    . setenv
    # 启动方式1
    startup.sh
    # 启动方式2
    MClmAgt
  • 停止服务

    1
    2
    3
    4
    5
    6
    7
    cd /home/moiaagt
    # 激活环境变量 注意.后有空格
    . setenv
    # 停止方式1
    shutdown.sh
    # 停止方式2
    MClmAgt -stop
2.5.2 Java版本执行节点
  • 查看服务状态

    1
    2
    # Java版本执行节点服务为一个Java进程 查看相关进程是否存在即可
    ps -ef|grep moia-agent-core |grep -v grep
  • 启动服务

    1
    2
    3
    cd /home/moiajava/MoiaControlAgent
    cd bin
    sh startup.sh
  • 停止服务

    1
    2
    3
    cd /home/moiajava/MoiaControlAgent
    cd bin
    sh shutdown.sh

2.6 Web服务

此操作环境默认为tomcat部署,其他以实际使用中间件为准

  • 查看服务状态

    1
    2
    # 实际为tomcat一个进程 查看是否存在即可
    ps -ef|grep java
  • 启动服务

    1
    2
    3
    cd /home/moiasrv/apache-tomcat-7.0.100
    cd /bin
    sh startup.sh
  • 停止服务

    1
    2
    3
    cd /home/moiasrv/apache-tomcat-7.0.100
    cd /bin
    sh shutdown.sh

3. 日志查看

日常有报错及服务问题要查看日志,所以对日志在哪里要比较清楚,至少在远程支持时可以清楚去哪里查看

调度及执行的文件日志可用在系统管理 - 系统参数配置中进行配置,根据需要调整保留天数

image-20220208181606823

3.1 zookeeper日志

log4j用于记录zookeeper集群服务器运行日志,该日志的配置地址在conf/目录下的log4j.properties文件中,该文件中有一个配置项为“zookeeper.log.dir=.”,表示log4j日志文件在与执行程序(zkServer.sh)在同一目录下。当执行zkServer.sh 时,在该文件夹下会产生zookeeper.out日志文件

有时也要看实际使用的版本情况,如果log4j里面配置后仍不起作用,可查看bin目录下的zkServer.sh脚本的这段代码中ZOO_LOG_DIR是否给值,给赋值即可,指定的值就是日志的实际路径

1
2
nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

3.2 调度节点日志

默认日志路径在安装目录的log目录下:/home/moiasrv/log/yyyymmdd

如果日志路径有修改,以修改后的为准

一般情况下,日志路径下只有trc结尾日志,如果服务存在问题会有err结尾日志,排查问题时,先看err,再查trc

3.3 执行节点日志

3.3.1 C版本执行节点

默认日志路径在安装目录的log目录下:/home/moiaagt/log/yyyymmdd

如果日志路径有修改,以修改后的为准

一般情况下,日志路径下只有trc结尾日志,如果服务存在问题会有err结尾日志,排查问题时,先看err,再查trc

作业执行记录日志在/home/moiaagt/log/yyyymmdd/joblog下,可进行相关查看

3.3.2 Java版本执行节点

默认日志路径在安装目录的logs目录下:/home/moiajava/MoiaControlAgent/logs

一般情况下,日志路径下只有trc结尾日志存在内容,如果服务存在问题err结尾日志会有相关记录,排查问题时,先看err,再查trc

作业执行记录日志在/home/moiajava/MoiaControlAgent/logs/yyyymmdd/joblog下,可进行相关查看

3.4 Web日志

此操作环境为tomcat部署,其他以实际使用中间件操作为准

日志路径:/home/moiasrv/apache-tomcat-7.0.100/logs

如果web操作存在错误,可查看日志路径下的catalina.out日志文件

当日志文件过大时,可> catalina.out进行清空操作

也可以对tomcat进行配置,设置日志自动清理机制,在网上有很多解决方案,可以查询设定,在此不再赘述

4. 常见问题处理

4.1 日志查询失败:Socket读取数据错误

问题现象:查看日志的时候报错“日志查询失败:Socket读取数据错误!”

image-20211230151329118

问题排查:

这个问题一般是因为log文件里存在单行很长的数据

日志获取逻辑:按行取的日志, 单行太长就会出现内存溢出。 单行不要超过2048。

在5.10.003的java版agent做了优化,可以支持这种单行比较长的。

4.2 在moia中A用户配置的调度对象是否可以使用B用户调度对象产生的事件

可以,事件配置其实是不区分用户的,对全平台开放

4.3 卸载执行节点是否需要停调度节点服务

不需要

4.4 web端是否支持weblogic12c

不能完整支持,但可以在禁用rest相关接口调用后部署

weblogic12c解决方案:部署前,将MoiaControl.war包中WEB-INF/lib目录下的jersey*.jar删除(总共删除7个jar包)

4.5 计划不切日

不能日切,查调度节点MTimeScan服务日志看是否有报错,根据错误具体分析

4.6 进程停止不了

正常情况下激活环境变量后执行停止命令shutdown.sh后服务会正常停止,如果当前有执行的程序MTaskDec进程会处理后再推出,相对其他进程退出慢一些

如果停不掉的话就执行moia_down杀掉进程

停止后执行lsmt命令查看进程是否完全退出

4.7 Moia的license检验机制

比如最大上限21个执行节点,已经达到21个之后不能继续安装

4.8 安装执行节点配置哪个调度节点

c版本执行节点只填任意一个调度节点ip即可,会自动获取其他调度节点信息存储在本地文件。 java版执行节点目前最多只支持2个调度节点,两个调度节点的ip都要写入安装配置文件。

ps:一般建议调度节点安装两个即可

4.9 MTaskDec错误dbo_t04_job_info failed

err日志文件中报错示例如下:

1
2
dbo_t04_job_info failed
Dec node_id(4563bgdh7856sjchdjs543) failed!

原因分析:

一般为队列表里面有脏数据。把所有计划状态清除,再清理一下队列表( t05_que打头的),stat表数据也清除掉,调度节点没报错,再重新初始化

如果不能清除重新初始化,需要后台关联查询找出脏数据,备份后清除

4.10 moia参数传递

参数传递是指通过参数引用,将参数值从上级传递到下级,如:从计划传递 到任务,从任务传递到作业,需要逐层传递,不能直接从计划传给作业,以下通过实例进行说明。

任务参数及参数值:log_main_path=/home/user/logs

作业引用方式:job_log_path=#log_main_path#/[DATE]

计划当前业务日期:20160928

  • 常量类型,参数值解析结果:#log_main_path#/20160928
  • 字符串类型,参数值解析结果:/home/user/logs/20160928
  • 日期类型,参数值解析结果:/home/user/logs/20160928
  • 字符串密文类型,与字符串相同

    PS:一些公共参数 或者跟环境相关的参数,可以使用“环境变量管理”功能, 一般参数不需要通过计划或任务来传递。作业参数可以直接引用环境变量管理中设定的环境变量

4.11 web产生日志量大

可以关闭hibernate查询输出,减少一些日志量,在config.properties文件中改hibernate.show_sql=false,然后重启

当日志文件过大时,可> catalina.out进行清空操作

也可以对tomcat进行配置,设置日志自动清理机制,在网上有很多解决方案,可以查询设定,在此不再赘述

4.12 agent启动以后一直会在终端打印日志

这个问题只有在执行节点是Java版时才会出现,终端退出后再重新连接就不会再显示,且只会在启动节点服务时才会显示在屏幕上,没有其他影响

如果觉得麻烦不想让其打印,可以调整下节点bin目录下的启动脚本startup.sh,启动脚本中nohup最后加上>/dev/null重定向,最后再echo输出一句话即可,如下:

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
if [ "x$JAVA_HOME" = "x" ]; then
echo "Error:No JAVA_HOME environment variable defined,it must be needed to run this program"
exit 1
fi
echo "Using JAVA_HOME: $JAVA_HOME"
cd ..
CURRENT_DIR=`pwd`
nohup "$JAVA_HOME/bin/java" -Djava.ext.dirs=$CURRENT_DIR/lib -Dlog.root=$CURRENT_DIR/logs -Dmoia.base.path=$CURRENT_DIR -Dlog4j.configuration=file:$CURRENT_DIR/conf/log4j.xml -cp $CURRENT_DIR/bin/moia-agent-core.jar com.adtec.moia.control.agent.startup.Bootstrap start >/dev/null &

echo "[`date`] Start over."

4.13 存储过程out of range

调用存储过程时出现Parameter index of 4 is out of range (1,0),如下图所示,一般是因为驱动问题,更新下lib目录下对应的驱动即可

img

4.14 存储过程No matching authentication protocol

调用存储过程时出现ORA-28040: No matching authentication protocol的错误,是因为驱动版本不对,更新lib目录下对应的驱动即可

img

4.15 导入Excel时对事件的校验规则

导入计划时,会校验事件是否存在,不存在则报错,无法导入

导入计划流程时,会校验事件是否存在,不存在则报错,无法导入

导入作业流时,不会校验依赖事件是否存在,不存在则自动新增

导入作业时,不会校验依赖事件是否存在,不存在则自动新增

4.16 作业已分配执行节点但待执行

  • 问题描述

    作业已分配执行节点,但作业一直处于待执行状态无法执行

  • 处理方法

    查看作业引用的执行日历和返回值类,一般情况下是因为日历未配置具体值或返回值类未配置具体返回值

4.17 作业待执行不显示执行节点

  • 问题描述

    作业一直处于待执行状态无法执行,不显示执行节点

  • 处理方法

    一般是执行域的问题,首先确认执行节点的服务是否已经成功启动,查看执行域是否配置正确,如果都没有问题,可以新建一个执行域进行测试,如果新的执行域可以正常调度作业,则需要根据执行域名称去后台查询库表,可能是一个操作导致库表内生成了脏数据,需要手动清理

4.18 配置流程依赖,前依赖未满足却开始执行

  • 问题描述

    作业配置的为流程依赖,例如 A —> B —> C

    作业A还处于处理中状态,但作业B却开始执行了

  • 处理方法

    查看系统参数中数据库日志保留时间,应是作业处于处理中的时间超过了数据库日志保留时间,导致状态数据被删除,从而导致作业B开始执行了

4.19 作业流,任务状态不更新

  • 问题描述

    任务下的作业已全部成功,但作业流状态以及任务状态一直处于处理中更新

  • 处理方法

    查看MTaskScan进程日志,根据具体报错信息进行处理

    如果日志中统计信息不对,和安装包系统兼容性有关

4.20 作业执行完成但状态不更新

  • 问题描述

    作业实际已执行完成,但状态不更新

  • 处理方法

    查看Server节点MCmdSrv日志,如果是403错误,则是因为表统计信息不对,对日志中涉及的表进行runstats即可

4.21 导入失败:流程事件信息[abc]不存在导入失败!

  • 问题描述:

    导入失败:流程事件信息[abc]不存在导入失败!

  • 处理方法:

    通过下面SQL查询出数据进行核实(具体查询哪个flow表,根据实际错误确定),确认为垃圾数据则进行删除

    1
    select * from t04_flow_plan where plan_id='' and obj_id not in (select node_id from t04_plan_node where plan_id='');

蚂蚁再小也是肉🥩!


MoiaControlV5错误解决方法集锦
http://heibanbai.com.cn/posts/991dbc1b/
作者
黑伴白
发布于
2022年11月8日
许可协议

“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付