23

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

java result: 137

これらのエラーは (128 + シグナル番号) を意味すると読みました。私の場合、signalnember = 9、つまり KILLSIGNAL です。このエラーを削除する方法を知っている人はいますか? 私を助けてください....

4

3 に答える 3

7

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

service cgconfig status

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

于 2015-05-27T11:11:33.840 に答える
2

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

于 2013-08-30T03:56:11.467 に答える
0

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

于 2013-08-30T04:04:42.310 に答える