交易IBM MQ 9.0.0.3 .NET监视器样品崩溃了AMQ8377



我正在尝试从IBM WebSphere 9.0文档中使用Transactional .NET监视器样本(请参阅使用.NET Monitor,第675页,第675页,网址:FTP://public.dhe.ibm.com/software/integration/wmq/docs/v9.0/pdfs/mq90.develop.pdf(

我设法编译了一切正常(Targetting .NET 2.0(,但是当使用RunMQDNM运行监视器时,我会得到一个例外:

runmqdnm -m myqmgr -q myqueue -a TransactionalMonitor.dll -c TransactionalMonitor.Monitor 
5724-H72 (C) Copyright IBM Corp. 1994, 2017.
AMQ8377: Unexpected error 2354 was received by the application. 

我直接在MQ服务器上运行示例,这是Windows Server 2012 R2机器,IBM MQ 9.0.0.3服务器已安装。

供参考,我实施的代码:

using System.EnterpriseServices;
using IBM.WMQ;
using IBM.WMQMonitor;
[assembly: ApplicationName("TransactionalMonitor")]
namespace TransactionalMonitor
{
    [Transaction(TransactionOption.Required)]
    public class Monitor : ServicedComponent, IMQObjectTrigger
    {
        [AutoComplete(true)]
        public void Execute(MQQueueManager qmgr, MQQueue queue, MQMessage message, string param)
        {
            System.Console.WriteLine("SETTING COMMIT");
            ContextUtil.SetComplete();
        }
    }
}

删除交易内容时,样本可以正常运行。我在做什么错?

您不说您实际使用的IBM MQ的发行版(您提到MQ V9文档(。

我会用最古老的.NET版本编译出您的出口。人们尝试使用最新的&最伟大但大多数情况下它将行不通。

即。对于64位DLL

C:WINDOWSMicrosoft.NETFramework64v2.0.50727csc.exe /nologo /t:library /platform:x64 /r:System.dll /r:"%MQ_FILE_PATH%binamqmdnet.dll" /out:TransactionalMonitor.dll TransactionalMonitor.cs

仅供参考:升级到版本9.0.5后解决问题。还要确保MSRPC&MSDTC端口不会被防火墙阻止。有关此信息的更多信息,请参见此博客文章。

最新更新