大きな XML ファイルを読み込んで処理しているときに、JBOSS で問題が発生しました。
私のハードウェア:
-OS: Windows 2008 Server R2 Enterprise -CPU: Intel E7210 @ 2.4 Ghz (デュアルコア) -RAM: 12 GB
約 370 MB の XML ファイルを読み取ろうとしました。JBOSS の私のプログラムがこのファイルを読み取っている間、メモリ使用量は約 5 GB に増加します。
ただし、ファイルの読み取り中にJBOSSがクラッシュして再起動するたびに。ログファイルには、JBOSS が再起動している理由に関するヒントはありません。
fromHdd.trf の部分は、xml ファイルの読み取りを開始する部分です (16:46:57,411)。2 秒後 (16:48:31,036)、jboss はエラーなしで再起動します。
jboss ログの一部:
2012-07-09 16:46:51,083 INFO [de.softproject.integration.engine.X4engine] Started process "iMan_WebConnect/Stammdaten/ERW16/AttributeSets/Process/getAttributeSetsFromCML.wrf".
2012-07-09 16:46:57,411 INFO [de.softproject.integration.engine.X4ModuleImpl] Executed action "fromHdd.tra" in 6.313 ms.
2012-07-09 16:48:31,036 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] JBossTS Transaction Service (JTA version) - JBoss Inc.
2012-07-09 16:48:31,036 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] Setting up property manager MBean and JMX layer
2012-07-09 16:48:31,645 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] Starting recovery manager
2012-07-09 16:48:31,755 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] Recovery manager started
2012-07-09 16:48:31,755 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] Binding TransactionManager JNDI Reference
2012-07-09 16:48:35,926 INFO [org.jboss.ejb3.EJB3Deployer] Starting java:comp multiplexer
私の推測: Java プログラムは saxon パーサーを使用しています。Java または saxon パーサーが原因でメモリー障害が発生します。
この部分は、Java に 8 GB の RAM を構成したファイル wrapper.conf からのものです。
# Java Additional Parameters
wrapper.java.additional.1=-Dprogram.name=run.bat
wrapper.java.additional.2=-Dx4.config.file=../../X4config.xml
wrapper.java.additional.3=-Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
wrapper.java.additional.4=-Xms128m
wrapper.java.additional.5=-Xmx8192m
wrapper.java.additional.6=-XX:MaxPermSize=256m
wrapper.java.additional.7=-server
wrapper.java.additional.8=-Dsun.rmi.dgc.client.gcInterval=3600000
wrapper.java.additional.9=-Dsun.rmi.dgc.server.gcInterval=3600000
wrapper.java.additional.10=-Djava.endorsed.dirs=../lib/endorsed
JBOSS がリボットしないようにするにはどうすればよいですか。あなたがいくつかのアイデアを持っていることを願っています.
よろしくお願いします LStrike
PS: はい、わかっています。コードを投稿していません。関数 fromHdd.trf の背後にあるコードにアクセスできないので、一般的な回答を得ようとします。