1

我已经阅读了博客和一个与我很接近的问题,但还没有找到解决我的问题的方法。我有一个转换作业设置,可以从 84 个数据库中提取三个表以生成一个报告。我的问题是当数据库连接不可用时,整个工作都会停止。

我希望能够在初始化作业之前检查数据库连接,记录无法访问的数据库的错误,并创建一个新的成功测试动态列表,然后我将从中运行我的作业。我已经使用了检查数据库连接步骤,但是当连接为假时它仍然停止。如何处理我的数据库列表,运行到最后,而不中止工作?

4

1 回答 1

1

首先,您绝对使用了正确的步骤来检查数据库连接。现在对于您的问题,我将尝试分部分解释(希望我是正确的):

案例一:“我的问题是当数据库连接不可用时,整个工作都停止了”

这种情况是显而易见的。每当一个步骤发现任何错误时,它都会抛出异常并停止整个作业的执行。

但这是否意味着如果连接出错,“检查数据库连接”步骤停止检查数据库连接。答案是否定的。即使在中间的某个连接中出现错误,Step 也会完成所有连接的测试。尝试仔细观察日志,它将为您提供所有已检查数据库连接的最终综合列表(请查看下图)

在此处输入图像描述

我尝试使用 4 个 db 连接进行测试,其中一个错误和 3 个成功。

现在对于“整个作业停止”部分:由于停止行为是显而易见的(正如我上面提到的),您可以做的是使用“错误跳跃”传递流程,这样如果作业发现错误,它将采取错误跳跃。检查下图

在此处输入图像描述

在这里,我使用了两个跃点:一个成功和一个错误。如果作业失败,它将采用错误路径(红色跃点),否则它将采用成功路径(绿色跃点)

案例二:“为无法访问的数据库记录错误并创建成功测试的新动态列表”

您可以将错误记录到单独的日志文件或表中(取决于您的要求),然后通读日志以生成数据库连接列表。检查下图:

在此处输入图像描述

输出会生成一个连接列表以及一个错误标志。

Y : Failure in connecting to Database
N : successful connection

注意:我使用文本文件输入,因为我已将上一步记录到文本文件而不是数据库中。您可以根据您的要求进行自定义。

我已将示例代码放在gist中。你可以检查你的参考。

希望能帮助到你 :)

于 2015-02-07T16:23:43.820 回答