1

我是 Tibco 世界的新手......我被要求创建一个 VB.net 应用程序来做几件事:

  1. 更新数据库中列的值(然后在 TIBCO EMS 中生成消息)。

  2. 然后,我的应用程序需要从 TIBCO 读取此消息并确定该消息中是否包含特定单词,并将结果显示为 Pass 或 Fail

我已经写了任务的第一部分,但是,我不知道如何进行第二部分。我希望得到一些关于如何进行的帮助/指导!有什么建议么?

谢谢, NewTibcoUser

4

2 回答 2

1

这可以根据您拥有的 Tibco 工具轻松完成。如果您有 BW 和 ADB(活动数据库适配器),那么您可以使用它。

选项1:


如果您没有 adb,您可以通过执行以下操作来模仿它(ADB 并不神奇,它非常海峡向前)

1)创建正在监视更改的表的镜像(您可以只放入要监视的列加上键) Key ColumnYouWantToMonitor DeliveryStatus (Adb_L_DeliverStatus) 事务类型 (adb_opCode) 发生时间 (Adb_timestamp) 交付状态 ( ADB_L_DeliveryStatus) 2) 在表上创建一个触发器,将一条记录插入到表中。

3)编写一个 .Net 进程,每 5 秒或 10 秒或其他任何时间监视一次表(使其可配置)(从 tableX 中选择 *,其中 DeliveryStatus = 'N' order by transactionTime)

4) 将消息放在 EMS 队列上或向您的 .Net 应用程序调用服务。


选项 2

1) 在表上创建触发器并将事件写入 SQL Server 代理服务队列 2) 编写一个 .Net 应用程序,从该 SSBS 队列中读取并将其转换为 EMS 消息

一些设计考虑

  • 尽量不要不断查询(Aka poll)主表上的更改(防止阻塞)
  • 如果您的应用程序未运行并且正在发生数据库更改,请确保您有消息过期时间。因此,当您的应用程序启动时,它不必处理队列中的 1000 条消息(取决于您是否需要消息)
  • 如果您确实需要消息,您可能希望将队列设置为持久保存到磁盘,这样您就不会丢失消息。.Net 应用程序中的客户端确认也是一个好主意,而不仅仅是自动确认。

于 2013-10-25T04:30:02.587 回答
0

正如您所提到的,第一点已经完成(可能使用 ADB 或自定义程序对 DB 插入作出反应)。

因此,您的问题严格来说是“对来自 VB.Net 的 EMS 消息的内容做出反应”部分。

我看到两种可能性: 1- 如果您有 EMS、ADB 和 BW,请创建一个自定义适配器订阅者(BW 配置)以某种方式更改数据库以响应总线上的消息。然后,您的 VB 应用程序可以简单地查询数据库以获取响应状态。

2- 如果您没有太多 TIBCO 堆栈中的产品,那么您应该制作一个简单的 C# EMS 客户端程序(请参阅 EMS 文档中提供的示例)。然后,该客户端可以向您发出 VB 应用程序的信号(可能是某种 .Net 内部信号,我自己不是专家)或在 DB 中写入响应状态。

于 2013-10-25T14:08:32.110 回答