IBM IIB 9 多数据源

IBM IIB 9 multiple data sources

我有计算节点的消息流,它正在从数据库调用一些存储过程。我在该节点上为 db1 设置了数据源字段,odbc.ini 文件中存在相同的名称。现在我想动态地(无需重新部署)将数据源更改为 db2。 现在我找到了这两个解决方案,但它们都很丑陋:

  1. 更改 odbc.ini 中的数据源描述并调用 mqsireload。
  2. 为数据库名称和模式声明用户定义的属性,并像这样调用存储过程:

    在数据库中调用 SOME_PROC()。{UDP_DBNAME}。{UDP_DBSCHEMA};

然后您可以使用代理 API 在运行时更改此属性,流将立即捕获它。

还有其他选择吗?

根据您的要求,您可以这样做:

  1. odbc.ini 文件中同时定义 DB1DB2
  2. 创建两个指向同一个 ESQL 文件的计算节点,但一个的数据源配置为 DB1,另一个的数据源配置为 DB2
  3. 设置一个新的计算节点(在前两个节点之前),其中包含确定您要使用哪个节点的逻辑。 Out1 连接到 ComputeNodeDB1Out2 连接到 ComputeNodeDB2

有了这个解决方案,DB可以在运行时动态确定!

另一种解决方案是使用 PASSTHRU 语句 运行 数据库操作。

在该语句中,您可以指定数据源名称,以便进行名称替换,这意味着它可以采用用户定义的值 属性,而无需停止流.

https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ak05890_.htm