服务器重启,挂载失效,营业部配置等--5月底中泰问题排查

前言

可以用三句话来总结这周的感受:问题真多,问题真TMD的多,TMD问题真多。鄙人才学疏浅,没能用文雅的笔锋来描述内心之☞感受,实属抱歉。尽管很忙很累很无赖,但我仍然花点时间来记录,因为我是写给自己。

问题前瞻

/**
1、因需要升级内存,服务器重启,导致挂载失效,采集发布功能瘫痪。
2、挂载后无法通过命令chown -R 用户:用户组 目录或文件 来修改目录所属用户。直接导致邮件收下来的文件服务放到对应目录,导致new File(filePath);报错。
3、升级05版本后,解析规则配置界面的内嵌页面未展示。
4、公共数据,固定收益行情文件GDSYHQ[YYYYMMDD]读数失败。
5、产品有多营业部,配置了产品文件路径配置和估值的文件接收路径,但文件未发布,日志报错未查询到资金账号。
6、自动估值跑账异常,做交易数据导入节点未获取到JDBC Connection,等待60s超时异常。
7、修改执行计划报错:更新执行计划相关任务失败
8、一键估值报错:交易数据导入异常。
9、重新生成后,Ts_FileInfo表该启用的接口,任然未启用,导致交易文件发布到对账单队列。
10、长江证券的对账单模板导入库中,前台未能查询出数据来。

*/

问题处理

1、服务器重启,挂载失效

1、这个问题是排查某个监控目录有的文件监控到了并且发布了,有的文件缺没有监控,也没有发布,开始以为报错了或者是未监控到,排查日志发现并且有报错,但就是没有改文件对应的日志。最后才想到挂载失效了。使用命令 df -h显示系统上可使用的磁盘空间,发现挂载失效了。经过这个排查问题后明白了一点:

# mount命令是零时挂载,一旦服务器重启挂载就会失效。

百度后,也的确发现如此,但是,不管是生产环境还是测试环境,会因为种种原因导致服务器重启,所以,如果服务器重启后,能够自动挂载那就是最好的解决方案:

# 咋搞呢?
# 第一种方法:在etc/rc.local文件中写入自己的挂载命令
# 第二种方法:通过fstab文件,已经mount -a 来实现自动挂载。

2、挂载和目录权限

/**
1、用以下mount命令挂载windows磁盘后无chmod,chown权限.
2、百度发现可以在挂载的时候指定用户和用户组,例如:
mount -t ntfs  //10.115.246.122/wtpms /home/wingtech/new_system/python_project/system/uploads/PMS -o username=administrator,password=preLoad@2021^^,uid=1000,gid=1000
// 以下命令何以获取到用户和用户组id
$ id 用户名  
现场使用这种方式挂载,并不能能够实现,指定fam2用户挂载后目录的所属用户任然是root用户。
3、最后,通过挂载指定目录的权限即可。
mount -t cifs -o vers=3.0,**file_mode=0777,dir_mode=0777**,iocharset=utf8,username=真实用户名,password=真实密码 //window的ip/共享名 /home/share
*/

这样赋权挂在后,那么部署邮件接收服务的用户是fam2用户,就可以将邮件的附件保存到/home/share目录下,因为有的可读可写可执行的权限了,因此这样邮件就可以正常接收了。

3、解析规则配置界面的内嵌页面未展示

历史遗留问题,在我们系统中每一个页面都有一个code编码,对账单解析(FAM0401,FAM0403)和场外净值解析页面(FAM0402,FAM0404),这个就不必说了,和授权文案文件里面对应上就没问题。中泰会有这个问题是因为库里面之前都是使用的FAM0403和FAM0404,但是授权脚本给的是FAM0401和FAM0402.

4、固定收益行情文件GDSYHQ[YYYYMMDD]读数失败

导致这个的原因是因为运营Ts_FileInfo表中设置的文件名规则是GDSYHQ[YYYYMMDD].DBF,但是估值文件接收路径设置的文件名规则是GDSY[YYYYMMDD].DBF。这就导致在读数的时候未找到符合文件名规则GDSY[YYYYMMDD].DBF的文件。

/**
处理方案:将该接口设置未非必读,文件名规则改为GDSY[YYYYMMDD].DBF。
*/

5、产品有多营业部、文件未发布

导致这个问题的主要原因还是因为配置问题。多营业部的产品必须注意:

/**
1、产品文件路径配置要维护营业部
2、资金账号要配置营业部信息
3、估值文件接收路径也要设置营业部,

案例:比如普通和信用的文件都要发布到对应的产品下,如有相同名称的文件则发布后会导致覆盖问题,因此则配置估值的文件接收路径,这样就会则产品机构下面多出不同营业部的目录,将对应营业部的文件发布到对应营业部下。
*/

6、自动估值跑账异常,获取JDBC连接超时

从日志报错时间上可以知道是00:16:00 左右开始报错,获取不到JDBC连接,我能想到的原因可能是:

/**
1、有锁表,长时间未释放JDBC连接。
2、估值数据库服务器挂掉了,
3、估值服务器该时间点存在备份或者其他的定时任务,在占用数据库资源。
4、业务执行过长,超过获取JDBC连接最大等待时间。
*/

通过排查,除了估值库11点多有个定时任务,未发现有锁表情况,查看配置发现30facade服务最大的JDBC连接数设置的是20,最长等待时间是1分钟。我们的自动任务也是凌晨开始跑账的。这个问题的处理方案:将跑账时间设置到凌晨2点,最长等待时间调整为5分钟,在观察是否会发生这个问题。

7、修改执行计划报错:更新执行计划相关任务失败

8、一键估值报错:交易数据导入异常。

9、重新生成后,Ts_FileInfo表该启用的接口未启用

6月2号跑账测出问题情景:首先6月2号的因为估值还原库,导致凌晨定时任务会生成6月2号总览的明细未生成,6月2号跑5月31号的账,在总览页面,选择账套和业务日期重新生成,生成完明细后,会根据明细表中的内容更新Ts_FileInfo中接口的启用状态。若fam-filemanage-dg服务未填写日期部署参数,则会查询当天日期来更新Ts_FileInfo中接口的启用状态,当天明细为生成,则将所有接口都修改未未启用了。导致文件发布时,根据文件名称匹配Ts_FileInfo时,接口未启用,则将交易文件发布到对账单。 解决方案:

# 最终解决方案:修改代码
# 零时解决方案:填上部署参数,先跑31号的账

10、长江证券的对账单模板导入库中,前台未能查询出数据来。

导入对账单模板中机构和机构的社会信用代码错误会导致前台查询不出来,查询条件中带有机构和机构对应的社会信用代码。
end
  • 作者:旭仔(联系作者)
  • 发表时间:2022-06-03 12:33
  • 版权声明:自由转载-非商用-非衍生-保持署名
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者公众号二维码(公众号二维码见右边,欢迎关注)
  • 评论