Docker在执行JDBC查询时死亡



我在docker中运行一个spring启动项目,我正在执行以下JDBC代码:

SqlRowset rowset = jdbcTemplate.queryForRowSet(queryString);

查询字符串如下:

SELECT * 
FROM tableName 
WHERE timestamp >= '2022-04-03 01:00:00.000000 -0700' 
AND timestamp <= '2022-04-13 01:59:59.999999 -0700' 
ORDER BY timestamp 
LIMIT 2500 
OFFSET 0

通过JDBC执行此查询时,docker容器死亡并删除。我有其他的查询工作得很好,但由于某种原因,这个包含日期的查询杀死了docker机器。有人知道为什么会发生这种事吗?

在docker容器中吐出的最后一个日志是:

2022-06-20 19:56:00,985 DEBUG org.springframework.jdbc.core.JdbcTemplate : 
Executing SQL query 
[SELECT * FROM tableName WHERE timestamp >= '2022-04-03 01:00:00.000000 -0300' AND timestamp <= '2022-04-13 01:59:59.999999 -0300' ORDER BY timestamp LIMIT 2500 OFFSET 0]

我明白是怎么回事了。在我的环境文件中没有为Docker容器分配足够的内存。

我遵循了@eol提供的链接中的指示:

您可以尝试更改入口点以保持容器在spring应用程序崩溃后仍在运行。你应该能够看到到底发生了什么。Keep Your Docker Container Running for Debugging

当Docker容器失败时,我删除了我们的标签。

我SSH到容器并做了一些调查。我在状态"OOMKilled": "true"中发现内存不足错误。这使我得出结论,内存没有分配到我们需要的大小。

相关内容

  • 没有找到相关文章