我需要使用WSO2 ESB处理MS SQL数据库中的1000万条记录。
输入文件可以是XML或平面文件。 我已经创建了WSO2 ESB中提供的数据服务。
现在,我开始从XML读取并插入MS SQL数据库的过程,我想在通过ESB处理期间提交每5000条记录,以便如果5001记录失败,我可以从5001记录而不是0重新开始处理。 / p>
第一个问题,一次同时对所有记录进行提交。我想以一种方式配置它,使其应该处理5000条记录,在DB中提交,然后继续进行下一组记录。此外,如果批处理作业在处理10000条记录后失败,我希望该批处理作业从100001条记录而不是从0开始处理
请提出想法。
谢谢, 阿比舍克
答案 0 :(得分:0)
这是一个或多或少的常见模式。创建一个不断从ipc缓冲区(内存或文件)读取的代理程序/进程。 ESB端点只是简单地写入缓冲区。 如果最终无法提交,则代理负责重试和/或异步通知。
答案 1 :(得分:0)
您可以做的是将开始和结束记录写入文件中,并将其放置在ESB中,当计划开始时,它将从文件中选择记录(在您的情况下为5000),然后在DSS中处理该记录,如果DSS响应成功,则在这种情况下增加10000并在文件中更新,现在,如果DSS响应不成功,则在找到根本原因(失败并修复并运行)后,在文件中会提到10000。时间表,它将从10000开始记录,如果成功,则在文件中写入15000,因此它将一直持续到不满足结束条件为止