Netbeansで書かれたプログラムがあります。プログラムは、cassandraから約1,000,000のデータを読み取り、それらを処理して、結果をcassandraに再度書き込みます。私のプログラムは9時間で実行されていましたが、突然次のエラーで終了しました:
Java result: 137
これらのエラーは(128 + signalnember)を意味すると読まれました。私の場合、signalnember = 9はKILLSIGNALです。どのようにしてこのエラーを取り除くことができるか知っていますか?私を助けてください....
リソースを制限するcgroup構成がある場合、(消費されたメモリのように)制限を超えるとプロセスを強制終了する可能性があります。 cgconfigサービスが実行されているかどうかを確認します。 RHELの場合:
service cgconfig status
詳細については、Javaクラッシュログファイルhs_err_.logを確認することもできます。
128を超える終了コードは、プロセスが受信信号(exitCode = 128 + signalNumber)のために停止したことを意味します。 ==>あなたの場合、それはシグナル9(= SIGKILL
メモリ不足の問題なので、可能であれば操作を分割するだけです。今日は実際に約1億5,000万件のレコードを処理する必要がありました。私はそれを250,000のチャンクに分割してループし、配列をクリアしました。