云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名注册_微信小程序连接数据库_稳定性好

小七 141 0

JDBC适配器允许您将集成流与数据库系统连接起来。在本博客中,我将把这个主题与异常处理主题结合起来。

假设您实现了一个简单的场景,在这个场景中,您可以从WebShop组件中读取专用产品的最新产品详细信息(例如价格)。在发送方发起的场景(使用HTTPS发送方适配器)下描述了一个可能用于解决此任务的简单场景。在这个场景中,发送方提供一个带有HTTP请求主体的产品标识符。通过OData接收器适配器,SAP云平台集成连接到WebShop,并从WebShop的产品目录中读取产品详细信息(针对给定的产品标识符)。最后,产品的详细信息会发送到一个电子邮件帐户(使用邮件适配器)。

让我们考虑一下,如果暂时无法访问到WebShop的连接,应该怎么做?我们能做些什么来让这个场景更加健壮和可靠?

在这个博客中,我描述了上述场景的一个增强变体,它通过以下方式处理这样一个错误案例:如果到WebShop的连接失败,云集成将连接到一个"回退"数据库表,而不是WebShop。数据库表包含产品目录的副本。"数据库"表通过一个单独的、基于计时器的集成流定期(例如,每天一次)用来自WebShop的数据进行更新,以确保此数据源尽可能是最新的。使用此场景,即使抛出错误,也可以检索到尽可能最新的产品数据。

这是SAP云平台集成JDBC适配器的一个用例。

在博客云集成-使用JDBC适配器的简单演示场景中,我已经介绍了JDBC适配器,并逐步演示了如何设置到数据库系统的连接。如果您尚未使用此适配器,我建议您先浏览此博客。

让我们开始。

概述

我们需要创建(并定期更新)一个数据库表,其中包含来自WebShop目录的完整产品列表以及每个产品的专用属性。为了简单起见,我们将属性列表限制为ProductId、Name和Price。我们需要两个集成流来实现这个场景。如下图所示,集成流相互关联。

集成流按以下方式协同工作。

第一个集成流(定期更新产品表)由计时器事件启动(在生产场景中,以定期处理集成流的方式安排(例如,每天一次)。集成流(1)从WebShop读取完整的产品列表(2)更新"fallback"数据库表。每次消息处理运行时,都会更新完整的产品列表(以反映自上次消息处理运行以来价格可能发生变化的情况)。这个集成流还将数据库表更新的时间存储在一个变量中,这样就可以在构建的第二个集成流中获得这些信息,以丰富错误信息。

为了展示使用数据库系统的能力,企业应用开发,我们按照以下方式设计产品表:表不仅仅是镜像产品目录的实际快照可以通过WebShop的odataapi访问。相反,该表显示了价格变化的历史:每当一个专用产品的价格发生变化时(在该集成流的两次处理运行之间),就会为该产品插入一个新条目,其中包含新的价格和实际的时间戳。这样,就有可能在这个集成流之上构建一个场景,消费者可以在其中分析产品的价格历史。即使WebShop演示应用程序可能不会显示其虚拟产品的专用价格历史记录,但此表设计和更新方式可能会揭示使用数据库系统时可以管理的复杂性。它还为您提供了一个关于可以在此设计之上构建的其他场景的想法。

第二个集成流(读取产品详细信息)(3)读取产品的详细信息(与入站HTTP请求的消息体提供的productId元素的值相关联)。如果成功连接到WebShop组件,结果消息将存储为数据存储条目(条目ID为Success)。

注意,为了简化设计,我将不添加电子邮件接收器,而是使用数据存储来模拟接收器(类似于集成流设计指南的集成流中的方式,参见通用接收器)。结果消息被发送到数据存储而不是电子邮件接收器。

如果与WebShop组件的连接失败(4),集成流将连接到数据库系统并读取存储在"回退"表(5)中的产品的最新信息。此信息也存储为数据存储条目(在这种情况下,条目ID错误)。错误案例中的消息包含额外的信息,淘客是什么,以使读取器知道这一次的信息来自"fallback"表,因为发生了错误。错误消息还将包含更新"回退"表的时间戳。

两个集成流彼此独立运行。因此,我们将使用一个全局变量在两个集成流之间共享"回退"数据库表的最新更新的时间戳(6)。

注意,物联网网关,用于模拟接收器的数据存储位于云集成租户(租户数据库中),而包含"回退"产品表的ASE数据库通常位于另一个子帐户上。

用于共享时间戳的全局变量也存储在租户数据库中。

创建产品表

使用名为ProductTable的表。假设数据库系统中不存在这样的表(当您是租户的唯一用户并且第一次执行此操作时,这是一个有效的假设)。