【问题标题】:IBM MQ Client development environment testIBM MQ 客户端开发环境测试
【发布时间】:2020-05-15 02:50:01
【问题描述】:

我即将开发一个 IBM MQ 客户端。

我想从最基本的开始,所以我创建了一个项目来连接一些队列。

public void Init(IbmMqConnection configuration)
{
    // _properties is a Hashtable
    _properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
    _properties.Add(MQC.HOST_NAME_PROPERTY, configuration.Host);
    _properties.Add(MQC.CHANNEL_PROPERTY, configuration.Channel);

    MQEnvironment.Port = 1414;
    MQEnvironment.UserId = configuration.UserId;

    _qm = new MQQueueManager(configuration.QueueManager, _properties);

    int options = 0;
    options += MQC.MQOO_OUTPUT;
    options += MQC.MQOO_INQUIRE;
    options += MQC.MQOO_FAIL_IF_QUIESCING;

    _q = _qm.AccessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", options);
}

并使用下面的配置调用此方法

_qManager.Init(new IbmMqConnection
{
    Host = "DESA_MQ",
    UserId = "mqscpd",
    Channel = "SCPPAQUE.WIN.SVRCONN",
    QueueManager = "QMDESA01"
});

...当然,我得到了这个Exception

MQException -> 完成代码 2 和原因代码 2298

嗯,我没想到会有什么不同。
我正在彻底漫游IBM MQ Documentation,在安装真正的开发环境之前,我没有发现任何与服务任何类型的开发环境相关的东西。

我希望我缺少一些东西来开发我的项目,指出本地安装的(免费)开发服务器或其他东西。

我安装了IBMMQDotnetClient 包,版本 9.1.5。

总结一下,如何在部署到真正的 IBM MQ 系统之前开发我的项目进行测试?
谢谢。

【问题讨论】:

  • 点击标签 [ibm-mq],然后选择“了解更多”。那里有一个面向开发人员的 IBM MQ Advanced 链接,允许您在机器上安装 MQ 服务器环境。正如@lwestby 所说,您可以为开发人员获得 IBM MQ Advanced 的 docker 容器,并且 IBM MQ Cloud 也有一些开发人员产品。我建议你看看 IBM 的 LearnMQ 站点,那里有一些 .net 教程。

标签: c# .net ibm-mq


【解决方案1】:

如果您使用 nuget 包开发 IBM MQ .NET 应用程序,则必须使用托管模式。要使用托管模式,您必须将 TRANSPORT_PROPERTY 设置为 TRANSPORT_MQSERIES_MANAGED。 MQC.TRANSPORT_MQSERIES_CLIENT 使用非托管模式并且在 MQ .NET 标准库中不受支持,这就是您看到“MQException -> Completion Code 2 and Reason Code 2298”的原因。应该修改属性。

    _properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
    _properties.Add(MQC.HOST_NAME_PROPERTY, configuration.Host);
    _properties.Add(MQC.CHANNEL_PROPERTY, configuration.Channel);

通过 IBM MQ v9.1.5 客户端安装,您拥有项目模板,其中包含一些基本的 MQ .NET API,您可以使用这些模板连接到队列管理器,然后执行 Put/Get 操作。以下知识中心链接包含一些信息:https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q134410_.htm.

正如 Josh 指出的,LearnMQ 也是一个很好的起点。

【讨论】:

    【解决方案2】:

    如果您有可用的 Docker(或其他容器运行时),IBM MQ 可在 Dockerhub 上用于开发用途。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-14
      • 2016-12-14
      • 2022-11-08
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多