场景:最近在用ODI的时候,里面调用接口的脚本是用jython写的。代码用了定时执行,五分钟一次,每天都会偶尔出现一些问题,而且不固定是哪个场景。
错误信息:java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: unable to create new native thread。
定位报错代码:out = PrintWriter(OutputStreamWriter(httpConn.getOutputStream(), "utf-8"))
out.print(parmas)
out.flush()
解决办法:将out关闭。添加:out.close()
定位报错代码:httpConn = URL(weburl).openConnection()
解决办法:httpConn本身并没有提供诸如 httpConn.close()这样的方法。有一个disconnect(),但是并不能解决当前问题。需要查看你从httpConn中得到了什么流,比如httpConn.getOutputStream(),这样的代码,那么需要将该outputStream关闭,执行close()方法。
总结:打开的流之类的,如有用到,要记得关闭。