【问题标题】:Is BizTalk feasible for generating an nightly xml File?BizTalk 是否可用于生成每晚的 xml 文件?
【发布时间】:2010-09-14 08:47:07
【问题描述】:

我的团队计划使用Biztalk server 2006。任务如下:-

每晚运行一个预定的作业,从多个数据库中获取一组数据(基本上是相同的选择查询,其中包含运行大约 20000 个 ID 的 where 子句)并将其写入 xml 文件。

目前我们有 c# winform,它对用户输入的一个或多个 Id 执行相同的操作。但是客户不希望用户输入,而是想在晚上运行作业,以便在早上 xml 包含来自所有数据库的最新数据。

我们认为 Biztalk 很好,因为我们需要良好的故障处理和不丢失数据。也因为它对我们来说是一次很好的体验,因为我们从未使用过 Biztalk。 (我们已经拥有同一部门另一个项目的许可证)

请指教,Biztalk 是解决方案吗?

【问题讨论】:

  • Biztalk 2006?不是最新版本?
  • 我会写一个 CLR 存储过程,甚至是一个 TSQL 存储过程并安排它......
  • @mitch : 不是最新的,我们还有 biztalk 2006。我们可以编写一个 sp 并安排它,但我们想知道 biztalk 是否可以做得更好。此外,该工具与其他系统的集成势必会增长
  • 您从 BizTalk 获得的唯一好处是对您的流程进行广泛的跟踪和监控。考虑到相当简单的要求,您会增加很多开销——您的客户可能不想为此付费。如果此特定要求是更大集成方案的一部分,它将允许您从可靠的基础架构开始。

标签: c# winforms biztalk


【解决方案1】:

在 winforms 应用程序中,您已经拥有用于传输的 C# 代码。在这种情况下,将这一流程转移到 Biztalk 似乎没有任何商业价值。

您可以将此代码移至 Windows 服务应用程序,该应用程序将在每晚自动运行。

为了使它更健壮,我会首先将所有数据复制到一个临时表中,然后一次处理一行,确保在每一行之后保存所有数据。然后,如果发生崩溃,它将从上次停止的地方开始。

【讨论】:

    【解决方案2】:

    按照 Mitch 的说法,购买、安装和学习 BizTalk 以使用它来轮询数据库和提取 XML 文件将是一件很困难的事情。

    但是,如果您的企业中已经有 BizTalk,并制定了将其用于所有集成的策略,并且您将 XML 提取视为集成,那么,好的。

    很简单:

    • 使用适当的适配器轮询 您的数据(例如 SQL 适配器,如果您的 RDBMS 是 HIS 包上的 SQL、DB2, ETC)。对于 MSSQL FOR XML AUTO 是 将它变成任何类型的最简单方法 XML
    • 您需要为输入和输出 XML 定义架构
    • 创建一个(或多个)映射以将 SQL 结果集转换为所需的文件格式。
    • 使用简单的文件适配器作为发送端口来进行 XML 写入。

    使用接收端口的计划/服务窗口将时间限制为每晚一次。

    一个问题:在轮询 SQL 数据库时,阻止对数据的并发访问(例如,使用 UPDLOCK)或类似方法,以确保在同时触发作业时它不会重复文件输出。

    【讨论】:

    • 感谢您的回答。好吧,正如你所说,它并不是真正的集成,你可以说我们主要是为了学习目的而这样做。我们现在有 Winform 从数据库中获取数据,但这需要手动输入,而且它在一个用户输入时只将一行写入 xml。我们是否可以在 biztalk 编排中嵌入一个 winform 应用程序并使用它来获取和写入,biztalk 将只处理定时、错误和重复和并发访问。
    • @srivatsayb - 不,这听起来不是一个好主意 - BizTalk 和应用程序 UI 并没有真正混合。正如您所说,您这样做是为了学习目的,因此请亲自动手创建模式、映射、端口和可能的编排。
    猜你喜欢
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2013-01-18
    • 2011-11-11
    相关资源
    最近更新 更多