首页 > 解决方案 > 重新启动时如何从 RDBMS 批处理元数据表加载步骤执行上下文?

问题描述

我知道步骤执行上下文被加载到内存映射中,然后加载到batch_step_execution_context 表的short_context列中,当作业重新启动时,相同的内存映射执行上下文会自动为我们加载重新启动的作业。但是,当内存映射被擦除后触发重启时(例如:应用程序重启),我知道它是从批处理元数据 RDBMS 表(准确地说,batch_step_execution_context表)中加载的。我的问题是 - 由于列长度为 2500,spring batch 会截断数据并在内容中添加一个省略号,如果我输入的数据超过 2500 个字符怎么办?它如何能够加载原始数据(不是用省略号截断的数据)?

PS:如大多数示例所示,我使用此步骤执行上下文将预期分区的标识符传递给我的读者。

请帮助我了解框架中如何处理这一点。谢谢。

标签: spring-batch

解决方案


执行上下文首先从上下文的完整版本中反序列化,请参见此处。如果您使用持久作业存储库并重新启动相同的作业实例,则默认情况下应自动保存/加载分区步骤的重新启动元数据。


推荐阅读