现在有个系统在做压力测试的时候出现OutOfmemory异常。期间有很多相同的 Transaction rolled back because it has been marked as rollback-only。
这个OutOfMemory异常的位置在springMvc层调用service层的方法的时候,而且异常不是从service里面跑出,就在service的调用时抛出,初步猜想是在进入这个方法是spring要初始化一些环境的时候出问题了。
之前也出现过类似的进不了service方法的异常,当时是给dao层得find方法额外配置了Propagation_requireNew引起的。所以猜想这次的异常也是和事务有关,而service调用service会出现Transaction rolled back because it has been marked as rollback-only,因为调用的service屏蔽了被调用service抛出来异常造成外部事务提交而内部有异常的情况(?),可能在这个时候有数据库的资源没有被释放。 大量资源的泄露造成了内存溢出