我在做项目的时候,在AS400的环境下遇到了一个内存泄漏的问题,当自动代理运行一段时间以后就会出现内存溢出的报错,从而代理将不再运行,由于本人对as400内存机制的不熟悉,找不出造成内存泄漏的原因,经过尝试当出现内存泄漏导致定时代理不运行以后可以通过重启amgr或者重启服务,重启以后自动代理就能够正常运行一段时间,不过不一定什么时候就又停止了。
解决问题的方法找到了,但手动重启amgr或服务显然不合适,如何能实现amgr的自动重启呢?在网上找了一圈没有完全适合的方法,不过通过查找倒是给我了一些思路,可以通过建立domino程序来实现这个功能,经过尝试做了两个程序:1、程序名:nserver,命令行:-c “tell amgr quit”。2、程序名:amgr 命令行:load。这两个程序的执行时间设置1程序先执行,紧接着就执行2程序,这样一般不会影响到客户系统。
图片1、2、3为配置信息说明参考,图片4为正常运行后的显示信息。