IBM MQ Client 开发环境测试
IBM MQ Client development environment test
我即将开发一个 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 -> Completion Code 2 and Reason Code 2298
嗯,我没想到会有什么不同。
我漫游了 IBM MQ Documentation,在安装真正的开发环境之前,我没有发现任何与服务任何类型的开发环境相关的东西。
我希望我缺少一些东西来开发我的项目,指出本地安装的(免费)开发服务器或其他东西。
我安装了 IBMMQDotnetClient 软件包,版本 9.1.5。
总结一下,在部署到真正的 IBM MQ 系统之前,我如何开发我的项目来测试它?
谢谢。
如果您有 Docker(或其他容器运行时)可用,IBM MQ 在 Dockerhub 上可供开发使用。
如果您使用 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/Getoperation.Following知识中心link有一些资料:https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q134410_.htm.
正如 Josh 指出的那样,LearnMQ 也是一个很好的起点。
我即将开发一个 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 -> Completion Code 2 and Reason Code 2298
嗯,我没想到会有什么不同。
我漫游了 IBM MQ Documentation,在安装真正的开发环境之前,我没有发现任何与服务任何类型的开发环境相关的东西。
我希望我缺少一些东西来开发我的项目,指出本地安装的(免费)开发服务器或其他东西。
我安装了 IBMMQDotnetClient 软件包,版本 9.1.5。
总结一下,在部署到真正的 IBM MQ 系统之前,我如何开发我的项目来测试它?
谢谢。
如果您有 Docker(或其他容器运行时)可用,IBM MQ 在 Dockerhub 上可供开发使用。
如果您使用 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/Getoperation.Following知识中心link有一些资料:https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q134410_.htm.
正如 Josh 指出的那样,LearnMQ 也是一个很好的起点。