我正在运行一个预定的代理,该代理询问文件系统上的特定目录以查找图像文件,并在它们超过特定文件大小时更改其尺寸。
我正在使用名为ImgScalr的Java图像库:http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/
我遇到的问题是,在某些图像上,进程会因java.lang.OutOfMemory错误而失败。它所覆盖的图像相对较大,通常在5MB到6MB之间。
它运行的服务器有8GB的RAM,我认为可以。
我的问题是Agent Manager JVM是否使用与HTTP任务相同的内存设置,即HTTPJVMMaxHeapSize?
我已将该设置增加到1792MB,但在图像缩小代理运行时似乎没有影响。注意,将配置增加到高于该数字的任何值会使HTTP JVM在启动时抛出以下错误: HTTP JVM:JVMJ9VM015W库j9gc24的初始化错误(2):无法实例化堆; 2G要求)
如果代理管理器没有使用与HTTP JVM相同的设置,那么它是否具有自己的设置我们可以更改以增加可用内存以便停止获取OutOfMemory错误?
答案 0 :(得分:0)
我的问题是代理管理器JVM是否使用相同的内存 设置为HTTP任务,即HTTPJVMMaxHeapSize?
代理管理器是否在与HTTP
任务相同的Java进程中运行?如果是这样,那么最可能的答案是肯定的。但是你不必依赖猜测,你可以使用JConsole或JVisualVM(两者都是免费的并且随JDK一起)连接到Java进程 - 并自行查找。通过这样做,您甚至应该在流程失败时看到遥测数据的峰值。
注意,将配置增加到高于该数字的任何值都会产生 HTTP JVM在启动时抛出以下错误:HTTP JVM:JVMJ9VM015W 库j9gc24的初始化错误(2):无法实例化 堆; 2G要求)
您可能正在使用32-bit
Java运行时,它将具有更少的可寻址内存。尝试运行-d64
(假设您有32位和64位版本可用),或者使用64位版本的Java下载和替换运行时。或者阅读IBM的页面上的FAQ,特别是那些说:
问题:Domino是否作为64位应用程序运行?答案:Domino 8.0.1和8.0.2在以下64位操作系统(OS
)上作为64位应用程序运行