Oracle JVM で Java コードを実行しようとしていますが、java.lang.OutOfMemoryError が発生します。
そのため、Oracle JVM により多くのメモリを割り当てたいと考えています。どうすればいいですか?
前もって感謝します。
Oracle JVM で Java コードを実行しようとしていますが、java.lang.OutOfMemoryError が発生します。
そのため、Oracle JVM により多くのメモリを割り当てたいと考えています。どうすればいいですか?
前もって感謝します。
OJVM のヒープ サイズを超えているようです。
まず、現在利用可能なヒープ サイズの合計を確認する必要があります。初期化パラメータを見てくださいJAVA_POOL_SIZE
。0 の場合、自動メモリ管理 (10g または 11g) を使用しており、ヒープ サイズは Oracle サーバーによって「自動的に」決定されます。次に、sga_target
(10g) またはmemory_target
(11g) を上限として使用できます。
セッションごとの最大ヒープ サイズは、パラメータによって制限されますjava_max_sessionspace_size
(値 0 は、デフォルトの 4GB を意味します)。
これら 2 つの値を手元に置いて、小さい方の値を取得し、コードに起因するメモリ要件/ヒープ サイズがこのメモリ量に収まるかどうかを確認します。
java_pool_size
そうでない場合: 、sga_target
/memory_target
または
のいずれかを増やしますjava_max_sessionspace_size
。http://docs.oracle.com/cd/B28359_01/java.111/b31225/chnine.htm#BABGFDAE (Java メモリ使用量) およびhttp://docs.oracle.com/cd/B28359_01/server.111/を参照してください。詳細なドキュメントについては、 b28320/initparams099.htm#REFRN10074 + http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams100.htm#REFRN10075 (パラメータ)。
また、件名の「Oracle JVMに割り当てられたメモリを表示する方法」という質問について:
select * from v$sgastat where pool = 'java pool';
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html、具体的には -XX:MaxHeapFreeRatio および -XX:MinHeapFreeRatioを使用できます