我即将开发一个IBM客户端。
我想从最基本的开始,所以我创建了一个项目来连接到某个队列。
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文档,我没有发现任何相关的服务于任何类型的开发环境。
我希望我缺少一些东西来开发我的项目,指向本地安装的(免费)开发服务器或其他东西。
我安装了9.1.5版本的IBMMQDotnetClient包。
总之,在部署到真正的IBM系统之前,如何开发我的项目来测试它呢?
谢谢。
发布于 2020-05-14 17:12:37
如果要使用nuget包开发IBM .NET应用程序,则必须使用托管模式。要使用托管模式,必须将TRANSPORT_PROPERTY设置为TRANSPORT_MQSERIES_MANAGED。MQC.TRANSPORT_MQSERIES_CLIENT使用非托管模式,在MQ .NET标准库中不受支持,这也是您看到"MQException -> Completion Code 2和原因代码2298“属性应该做的.Modifying的原因。
_properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
_properties.Add(MQC.HOST_NAME_PROPERTY, configuration.Host);
_properties.Add(MQC.CHANNEL_PROPERTY, configuration.Channel);使用IBMMQv9.1.5客户端安装,您有一些项目模板,其中包含一些基本的MQ .NET API,您可以使用它连接到Queue,然后执行Put/Get operation.Following知识中心链接,其中包含一些信息:.htm。
正如乔希所指出的,LearnMQ也是一个很好的起点。
发布于 2020-05-14 13:50:35
如果您有Docker (或另一个容器运行时)可用,IBM可以在码头枢纽上用于开发。
https://stackoverflow.com/questions/61798250
复制相似问题