web-dev-qa-db-ja.com

JavaプログラムはJavaで終了します結果:137

Netbeansで書かれたプログラムがあります。プログラムは、cassandraから約1,000,000のデータを読み取り、それらを処理して、結果をcassandraに再度書き込みます。私のプログラムは9時間で実行されていましたが、突然次のエラーで終了しました:

Java result: 137

これらのエラーは(128 + signalnember)を意味すると読まれました。私の場合、signalnember = 9はKILLSIGNALです。どのようにしてこのエラーを取り除くことができるか知っていますか?私を助けてください....

23
Anse danesh

リソースを制限するcgroup構成がある場合、(消費されたメモリのように)制限を超えるとプロセスを強制終了する可能性があります。 cgconfigサービスが実行されているかどうかを確認します。 RHELの場合:

service cgconfig status

詳細については、Javaクラッシュログファイルhs_err_.logを確認することもできます。

7

128を超える終了コードは、プロセスが受信信号(exitCode = 128 + signalNumber)のために停止したことを意味します。 ==>あなたの場合、それはシグナル9(= SIGKILL

2
user2600629

メモリ不足の問題なので、可能であれば操作を分割するだけです。今日は実際に約1億5,000万件のレコードを処理する必要がありました。私はそれを250,000のチャンクに分割してループし、配列をクリアしました。

0
user2600629