您可以从 Compute、Database 和 Filter 节点访问用户数据库。
注: 这些节点的数据库访问能力没有区别;它们的名称部分是原来遗留的,部分是基于典型用途。
您可以使用数据库中的数据更新或创建消息;或使用消息中的数据更新或创建数据库中的数据。
注意:
- 任何使用 ESQL 数据库语句或函数的节点都必须将数据源属性设置为数据库名称(即 ODBC DSN)。数据库必须可访问、可操作,并且允许代理连接它。
- 从同一个节点访问的所有数据库必须与节点的数据源属性指定的数据库具有相同的 ODBC 功能。如果数据库属于相同类型(例如,DB2 或 Oracle),并且是同一个级别(例如,R8.1 CSD3),在同一个平台上,就能始终满足此要求。其他数据库组合的 ODBC 功能可以相同,也可以不同。如果节点尝试访问一个数据库,而此数据库的 ODBC 功能与节点的数据源属性中指定的数据库不同,代理会发出一条错误信息。
- 单个 SELECT FROM 子句中引用的所有表必须在同一个数据库中。
必须确保已经在运行代理的系统上创建了合适的 ODBC 数据源。如果已经使用 mqsisetdbparms 命令为特定的数据库设置了用户标识和密码,代理将使用这些值连接到数据库。如果未设置用户标识和密码,代理将使用您在 mqsicreatebroker 命令中提供的(或在随后的任何 mqsichangebroker 命令中修改的)缺省数据库用户标识和密码。
在 z/OS 系统上,使用定制数据集 <hlq>.SBIPPROC 中的 JCL 成员 BIPSDBP 执行 mqsisetdbparms 命令。
您还必须确保数据库用户标识拥有足够的特权来执行流需要的操作。否则会在运行时发生错误。
选中在数据库发生错误时抛出异常属性复选框和将警告作为错误属性复选框,并将事务属性设置为自动以提供最大的灵活性。然后您便可以使用 COMMIT 和 ROLLBACK 语句控制事务,并创建处理程序用于处理错误。