我在WebSphere Portal Server 6.1和WAS 7中运行应用程序。在native_stderr.log中,我收到以下错误消息:
<JNI GetStringCritical: buffer=0x000000004D810988>
<JNI ReleaseStringCritical: buffer=000000004D810988>
这些消息快速填满日志,日志大小迅速增加,并在大约5分钟内增长到1 GB。
这似乎与我们部署的应用程序无关,因为即使应用程序未使用,日志也会不断生成。
任何人都可以帮我解决这个问题。提前谢谢。
答案 0 :(得分:2)
消息来自-verbose:jni。关闭它以删除消息。从管理控制台:
服务器&gt; (服务器类型)&gt; WebSphere应用程序服务器&gt; server1&gt; (Java和过程管理)&gt;过程定义&gt; (附加属性)&gt; Java虚拟机
有一个选项“Verbose JNI”。或者,您可以在“Generic JVM Arguments”参数中手动指定-verbose:jni。
答案 1 :(得分:0)
除此之外,您还需要提供其他信息,以便大家帮忙。
你的申请中有什么JNI东西?
注意这里的调用 - GetStringCritical()可能会阻塞JVM上的GC。
尝试并关闭应用程序的JNI组件,并查看服务器的行为方式
Manglu
答案 2 :(得分:0)
您必须启用-verbose:jni才能让appserver获取这些行。就像bkail所说,关闭它以避免垃圾邮件。
有关使用JNI的更多信息,另请参阅此文章: http://www.ibm.com/developerworks/java/library/j-jni/
答案 3 :(得分:0)
您也可以在配置文件中将其关闭:
(您必须将此路径修改为您自己的设置)
../WAS-7.0/WebSphere/AppServer/profiles/AppSrv01/config/cells/localhostNode01Cell/nodes/localhostNode01/servers/server1/server.xml
找标签,你会看到它有:
verboseModeClass="false"
verboseModeGarbageCollection="false"
verboseModeJNI="false"
等