运气不错,7点的飞机,3:30把一个疑难问题处理完,这个问题不处理,就得改签机票明天处理完才能走。想想,一切都是运气。
这个问题调试了1天半,几近绝望。
情况是这样的,系统有个pdf签章功能,工作流结束之后,用户可以下载pdf,pdf生成的过程是系统生成word文档,发起http请求,传输到另一台服务器部署的PdfServer,PdfServer向另一台服务器的签章服务请求签章,和Word文档合并,生成Pdf,最后返回系统,弹出下载框,供用户下载。
PdfServer是我们公司开发的,之前负责的同事离职了,手头没有源码,生成pdf用的框架是jacob,之所以和部署在Linux的系统分开是因为Linux下生成pdf乱码,所以部署在windows下。
签章服务是另一个厂商提供的。
PdfServer和签章服务刚刚做了迁移,换了服务器,换了IP,迁移是客户公司的员工小L完成。
~~~以上是背景~~~
一开始怀疑是文件没有上传成功,跟踪文件的去向,发现pdfserver配置有问题,配置是e盘的临时目录,服务器有c,d,f,g盘,唯独没有e盘,此处吐血一两。
修改配置,指到d盘,但临时目录还是没有文件,怀疑配置没有生效,一度想用分区软件分出个e盘来,由于服务器配置太低,太卡,分区软件打不开,再则客户公司负责人警告分出
问题要跟我拼命,上面部署了pdm系统,出了问题,就别想走了,遂罢休。
还好老的pdfserver还在跑,切过去看看,没问题啊,pdfserver能生成返回pdf文档,但签章服务报错,找不到签章,打签章服务厂商工程师小M电话,一头汗,小M的思路很乱,感觉对这个根本不熟,和这个感觉非常类似的一次是某YX公司的工程师,差点没忍住骂人。
好吧,指望别人是没戏了。这个问题查了足足半天,最后原来用这台电脑的小Q说这台电脑生成签章有问题,一直生成不了的,于是换小L的key和电脑,一切正常!此处吐血一斤。
好吧,问题终于定位了,是pdfserver有问题,切回来测试。反编译看代码,配置应该是生效的。没办法,电话找了前员工要源代码,搭建环境,在各个关键地方输出日志,复制class到服务器(客户是涉密单位,电脑只能通过硬件加密拷贝文件,只能往电脑拷贝文件,不能从电脑拷出,更别提连上去联调了,所以一切修改都是盲调,客户不允许有测试环境)。这回有pdf返回了,但大小只有1kb,不正常,文档打不开。中间所有服务都没有报错。
折腾又是一顿折腾,快要崩溃了。水都没的喝,厕所都没机会上。赚钱养家我容易么?
最后原因是服务器没有安装office的pdf插件,装好还要重启服务器才行。
中间还发现一个问题是签章服务也是有一个mysql数据库的,小L没有和原数据库同步,而是让两个服务并行了一天,此处吐血二两。
这就是整个过程。
之前公司用的都是新技术,docker,angular,dubbo,mybatis,再回来用这些老技术。深切感受到新技术带来的好处,真不是一句两句描述能说完,可维护性,可测试性,整体都有量级提升。
唉,前面还要别的路吗?