我已阅读博客和one question close to mine,但尚未找到问题的解决方案。我有一个转换作业设置,从84个DB中提取三个表来生成一个报告。我的问题是当数据库连接不可用时,整个作业停止。
我希望能够在初始化作业之前检查数据库连接,记录无法访问的数据库的错误,并创建一个新的成功测试动态列表,然后我将运行我的工作。我已经使用了 check DB connections 步骤,但是当连接为false时它仍然会停止。如何处理我的DB列表,直到最后,而不中止作业?
答案 0 :(得分:1)
首先,您绝对使用正确的步骤来检查数据库连接。现在针对你的问题,我会试着解释一下(希望我是对的):
案例I:“我的问题是当数据库连接不可用时,整个作业停止”
这种情况很明显。每当步骤发现任何错误时,它都会抛出异常并停止整个Job的执行。
但这是否意味着步骤“检查Db连接”会在连接错误时停止检查数据库连接。答案是否。即使在中间的某些连接中出现错误,Step也会完成对所有连接的测试。仔细观察日志,它会为您提供所有已检查数据库连接的最终整合列表(请查看下图):
我尝试使用4个数据库连接进行测试,其中有一个错误和3个成功。
现在“整个作业停止”部分:由于停止行为很明显(如上所述),你可以做的是传递流程使用“错误跃点”,这样如果作业发现错误,则会跳错误。 检查下面的图片:
这里我使用了两个跃点:一个成功和一个错误。如果作业失败,则将采用错误路径(红色跳跃)否则将采用成功路径(绿色跳跃)。
案例II:“记录无法访问的数据库错误并创建新的成功测试动态列表”
您可以将错误记录到单独的日志文件或表中(取决于您的要求),然后通读日志以生成数据库连接列表。检查下图:
输出生成一个Connections列表以及一个Error标志。
Y : Failure in connecting to Database
N : successful connection
注意:我已经使用了文本文件输入,因为我已将上一步记录到文本文件而不是数据库中。您可以根据您的要求进行自定义
我已将示例代码放在gist中。你可以检查你的参考。
希望有所帮助:)