MoiaControlV5错误解决方法集锦
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
3cd /home/moiasrv
# 注意.后有空格
. setenvC版本执行节点
1
2
3cd /home/moiaagt
# 注意.后有空格
. setenvJava版本执行节点
1
# Java版本执行节点无需激活环境变量
2.3 zookeeper服务
停止服务
1
2cd /home/moiasrv/zookeeper_01/bin
sh zkServer.sh stop启动服务
1
2cd /home/moiasrv/zookeeper_01/bin
sh zkServer.sh start查看状态
1
2cd /home/moiasrv/zookeeper_01/bin
sh zkServer.sh status
2.4 调度节点服务
查看服务状态
1
2
3
4
5
6
7
8cd /home/moiasrv
# 激活环境变量 注意.后有空格
. setenv
# 查看相关服务进程均正常存在
# 查看方式1
lsmt
# 查看方式2 此方式会列出当前集群所有节点的服务状态
MSrvAdm -l启动服务
1
2
3
4
5
6
7
8cd /home/moiasrv
# 激活环境变量 注意.后有空格
. setenv
# 两种启动方式任选其一即可
# 启动方式1
startup.sh
# 启动方式2
MSrvAdm -t停止服务
1
2
3
4
5
6
7
8
9
10cd /home/moiasrv
# 激活环境变量 注意.后有空格
. setenv
# 两种停止方式任选其一即可
# 停止方式1
shutdown.sh
# 停止方式2
MSrvAdm -q
# 强制停止服务 一般只有在一些特殊情况下才用到
moia_down
2.5 执行节点服务
2.5.1 C版本执行节点
查看服务状态
1
2
3
4
5cd /home/moiaagt
# 激活环境变量 注意.后有空格
. setenv
# 查看服务均正常存在 执行节点无作业运行时一般为 MClmAgt MCtrlAgt 两个进程
lsmt启动服务
1
2
3
4
5
6
7cd /home/moiaagt
# 激活环境变量 注意.后有空格
. setenv
# 启动方式1
startup.sh
# 启动方式2
MClmAgt停止服务
1
2
3
4
5
6
7cd /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
3cd /home/moiajava/MoiaControlAgent
cd bin
sh startup.sh停止服务
1
2
3cd /home/moiajava/MoiaControlAgent
cd bin
sh shutdown.sh
2.6 Web服务
此操作环境默认为tomcat部署,其他以实际使用中间件为准
查看服务状态
1
2# 实际为tomcat一个进程 查看是否存在即可
ps -ef|grep java启动服务
1
2
3cd /home/moiasrv/apache-tomcat-7.0.100
cd /bin
sh startup.sh停止服务
1
2
3cd /home/moiasrv/apache-tomcat-7.0.100
cd /bin
sh shutdown.sh
3. 日志查看
日常有报错及服务问题要查看日志,所以对日志在哪里要比较清楚,至少在远程支持时可以清楚去哪里查看
调度及执行的文件日志可用在系统管理 - 系统参数配置
中进行配置,根据需要调整保留天数
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 |
|
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读取数据错误!”
问题排查:
这个问题一般是因为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 |
|
原因分析:
一般为队列表里面有脏数据。把所有计划状态清除,再清理一下队列表( 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 |
|
4.13 存储过程out of range
调用存储过程时出现Parameter index of 4 is out of range (1,0)
,如下图所示,一般是因为驱动问题,更新下lib目录下对应的驱动即可
4.14 存储过程No matching authentication protocol
调用存储过程时出现ORA-28040: No matching authentication protocol
的错误,是因为驱动版本不对,更新lib目录下对应的驱动即可
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='');
蚂蚁🐜再小也是肉🥩!
“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付