步骤执行上下文是如何从RDBMS批处理元数据表加载重新启动?

2022-01-30 12:38:16 标签 spring-batch

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

PS:我使用这个步骤执行上下文将我想要的分区标识符传递给我的读者,正如大多数例子中所示。

请帮助我理解这是如何在框架中处理的。

谢谢。

###执行上下文是反序列化的,首先从完整版本的上下文看到这里。如果您使用一个持久的作业存储库并重新启动同一个作业实例,那么在默认情况下应该自动保存/加载分区步骤的重新启动元数据。

###经过仔细观察,我发现Spring Batch足够智能,可以把全部内容放进serialized_context column of the batch_step_execution_context table if the content length is more then 2500 characters列的batch_step_execution_context table if the c表,如果内容长度超过2500个字符。在内存中的映射被清除的情况下,它们会从其中任何一个恢复short_context or serialized_context columns.

serialized_context col列。

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码