我正在使用用 C# 编写的 SSIS 脚本任务写入 IBM WebSphere MQ 队列。目前,我们使用几个简单的循环将我们需要的信息收集到一个 Dictionary 对象中,然后将这些项目一个接一个地放入队列中。然而,我们现在正在从 SQL 数据库中提取数据,我需要使这些更新成为原子更新。
这是用于将信息添加到字典的代码
//add to list so we can weed out the duplicates
if (!qContents.ContainsKey(retrievedMessage.Substring(0, 13)))
{
qContents.Add(retrievedMessage.Substring(0, 13), retrievedMessage);
}
这是他们被添加到队列中的地方。MqPut 方法用于将每个项目单独发布到队列中。
//write out unique agent ids to consolidated queue
foreach (string agentItem in qContents.Values)
{
MqPut(agentItem, _outputQueue);
}
整个代码块包含在 try/catch/finally 块中,所以我确信我必须以某种方式利用它,但是我对 WebSphere MQ 很陌生,不知道如何使用。谢谢!
编辑使用下面答案中的代码会导致抛出异常。一旦程序到达 MQMessage 对象的“put”方法,就会抛出 MQ 异常“MQRC_FUNCTION_NOT_SUPPORTED”。这是 _COMPlusExceptionCode = -532459699