23

我有一个用 netbeans 编写的程序。该程序从 cassandra 中读取了大约 1,000,000 条数据,对其进行处理,然后再次将结果写入 cassandra。我的程序运行了大约 9 个小时,但突然因以下错误而终止:

java result: 137

我听说这些错误意味着(128 + signalnember)。在我的情况下,signalnember = 9 即 KILLSIGNAL。有没有人知道我怎样才能消除这个错误?请帮我....

4

3 回答 3

7

如果有 cgroup 配置限制资源,如果超出限制(如消耗的内存),它可能会终止进程。检查 cgconfig 服务是否正在运行。在 RHEL 上:

service cgconfig status

您还可以检查 Java 崩溃日志文件 hs_err_.log 以获取更多详细信息。

于 2015-05-27T11:11:33.840 回答
2

Exit-code 高于 128 表示进程因收到信号而死亡(exitCode = 128 + signalNumber)。==>在你的情况下它是信号9(= SIGKILL

于 2013-08-30T03:56:11.467 回答
0

由于这是一个内存不足的问题,如果可能的话,我只会将操作分成几部分。我今天必须这样做,实际上我今天处理了大约 15,000,000 万条记录。我只是将它分成 250,000 个循环它并清除我的数组。

于 2013-08-30T04:04:42.310 回答