现象
某环境由于ESP进程启动过多,导致SQL执行报错,报错信息为:
ERROR[2012] Server process tdm_arkesp could not be created on xxx- Operating system error 4022, TPCError = 31, error detail = 0. Insufficient buffer space.
分析
问题原因:
esp是由monitor启动的,而monitor启动的进程总数是有限制的,是由内部的宏MAX_PROCESSES限制的,这个值是2048,目前这个值在代码中是硬编码的,外部无法修改。
monitor启动的进程数超过这个值时,就会报2012错误,同时,monitor日志中会打印 [CExtNewProcReq::performRequest], Unsuccessful, MAX_PROCESSES limit!
解决
由于代码中对进程个数有硬性限制,需要考虑kill部分进程,如ESP进程。

本文分析了因ESP进程启动过多导致SQL执行报错的问题。错误表现为:Serverprocessesp启动失败,提示“Insufficientbufferspace”。原因是monitor启动的进程总数达到上限(2048)。解决方法包括考虑kill部分ESP进程。

被折叠的 条评论
为什么被折叠?



