标签: ibm-mq

runmqsc 选择深度大于 0 的队列

我有一个关于 Websphere MQ 的查询。我想列出队列深度大于零的所有队列。

类似于: runmqsc 队列管理器名称

显示 QLOCAL(*) WHERE(CURDEPTH) GT 0

不确定语法。有人可以帮忙吗

mq ibm-mq

2
推荐指数
1
解决办法
4495
查看次数

IBM MQ XMS 消息侦听器仅获取队列中已有的消息,而不是新消息

我有 IBM MQ XMS 的发送者和接收者控制台应用程序。发送方填充队列,接收方使用 receive 方法使队列管理器出列。我使用带有 bool 值的 while 循环来继续运行接收器,以便每当队列中存在新消息时接收器都可以获取该数据。现在我想将接收器代码更改为异步消息监听器而不是consumer.Receive()。代码片段是,

consumerAsync = sessionWMQ.CreateConsumer(destination);                
messageListener = new MessageListener(OnMessageCallBack);
consumerAsync.MessageListener = messageListener;

connectionWMQ.Start();
While(true)
{
    console.writeline("Wait for message");
}
Run Code Online (Sandbox Code Playgroud)

上面的代码只获取已经可用的数据,而不是新的数据。例如,如果我在启动接收器应用程序时队列中有 2 个数据,那么这些消息就会被下载。但是,当我保持接收器应用程序运行并从发送器应用程序发送新数据时,它不会被下载,我必须重新启动接收器应用程序才能获取该数据。类似的场景在同步模式consumer.ReceiveNoWait() 中运行良好。

我缺少什么?

asynchronous message-listener xms ibm-mq

2
推荐指数
1
解决办法
1237
查看次数

无法使用 .NET 标准库通过 TLS 连接到 IBM MQ

当尝试使用 .net 标准 nuget 包 IBMMQDotnetClient 通过 TLS ({"MQRC_HOST_NOT_AVAILABLE"}) 连接到 IBM MQ 时,我们会抛出异常。该项目使用.net Framework 4.7.2。我们能够在不使用 SSL 的情况下进行连接,并且当我们切换到 .net 框架 nuget 包 WebSphereMQClient 时,我们也能够使用 SSL 进行连接,使用完全相同的代码和设置(只需换出 nuget 库即可使其正常工作) )。

此外,我无法启用 .net 标准库的跟踪。文档表明需要设置环境变量 MQDOTNET_TRACE_ON,但即使在那之后我也没有生成任何内容。我尝试添加其他变量,例如 MQERRORPATH,但仍然没有看到任何跟踪文件。

代码

var queueManagerName = "QM1";
var hostName = "hostname.com";
var channel = "DEV.APP.SVRCONN";
var queueName = "DEV.QUEUE.1";
var port = "1414";

var sslKeyRepository = "*USER";
var cipherSpec = "TLS_RSA_WITH_AES_256_CBC_SHA256";

Hashtable prop = new Hashtable();

prop.Add(MQC.HOST_NAME_PROPERTY, hostName);
prop.Add(MQC.PORT_PROPERTY, port);
prop.Add(MQC.CHANNEL_PROPERTY, channel);
prop.Add(MQC.CONNECT_OPTIONS_PROPERTY, MQC.MQCNO_RECONNECT);
prop.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);

prop.Add(MQC.SSL_CERT_STORE_PROPERTY, sslKeyRepository);

prop.Add(MQC.SSL_CIPHER_SPEC_PROPERTY, …
Run Code Online (Sandbox Code Playgroud)

.net c# ssl ibm-mq

2
推荐指数
1
解决办法
1758
查看次数

在JBoss中使用代理服务器配置Websphere MQConnectionFactory

我想使用Websphere MQ(7)提供的资源适配器从JBoss AS服务器(5.1)连接到WSMQ队列(在我公司网络外部的服务器上运行).

我设置了一个连接工厂,并希望将其配置为使用我们的代理服务器,这是连接到网络外部的机器所必需的.我们的代理服务器需要身份验证

我找到了(MQConnectionFactory)属性proxyHostName,proxyPort但没有办法添加身份验证(用户名/密码).

Java属性http.proxyHost等没有任何区别,这是有道理的,因为JMS不使用http.

配置socksProxyHost,socksProxyPort,java.net.socks.usernamejava.net.socks.password性能也没有任何影响.

我在这里不知所措,如何使用需要身份验证的代理服务器从JBoss AS连接到远程WSMQ队列?

java authentication proxy jboss ibm-mq

1
推荐指数
1
解决办法
4151
查看次数

使用匿名SSL连接到WebSphere MQ

"com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2393'"在下面的代码中得到异常。我的要求是使用SSL服务器连接通道连接QM。不需要客户端身份验证

import com.ibm.mq.*;
public class MQSeriesDataCollector implements CustomDCInf
{
public static void main (String [] args)
{
    String qName="apm_qm";
    MQEnvironment.hostname=args [0]; 
    MQEnvironment.channel=args [1]; 
    MQEnvironment.port=Integer.parseInt(args [2]);
    MQEnvironment.sslFipsRequired=true;
    MQEnvironment.sslCipherSuite = "SSL_RSA_WITH_RC4_128_MD5";//RC4_MD5_US
    MQQueueManager qMgr=null;
    try{
        qMgr = new MQQueueManager("apm_qm");
    }catch (MQException mqe){
        mqe.printStackTrace();
}
PCFMessageAgent agent=null;
StringBuffer output = new StringBuffer();
MQSeriesDataCollector mqTest=new MQSeriesDataCollector();
        try{
            agent = mqTest.getMQConnection(qMgr);
            output.append(mqTest.getQueueStats(agent));
        }
        catch(MQException mqe){
            System.out.println("Error:" + mqe.reasonCode + " Description:"+PCFConstants.lookupReasonCode (mqe.reasonCode));
            mqe.printStackTrace();
        }
        catch(NoClassDefFoundError ex){ …
Run Code Online (Sandbox Code Playgroud)

java ssl pcf ibm-mq

1
推荐指数
1
解决办法
5930
查看次数

MQSeries远程通道类型不合适

按照略有修改的例子,我有:

public class  MqTestClient {

  public static void main(String[] args) throws Exception {

    MQQueueConnectionFactory factory =
      new MQQueueConnectionFactory(); 
    factory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
    factory.setHostName("127.0.0.1");
    factory.setPort(1414);
    factory.setQueueManager("QMA");
    factory.setChannel("FROM_CHANNEL");

    MQQueue queue = new MQQueue("QUEUE_FROM"); 

    // connection pooling
    MQEnvironment.addConnectionPoolToken();

    System.out.println("Sending...");
    for (int i = 0; i < 5; i++) {            
      MQQueueConnection  con = (MQQueueConnection)
        factory.createConnection();
Run Code Online (Sandbox Code Playgroud)

使用MQ Explorer,我设置了一个Receiver Channel FROM_CHANNEL和一个本地队列QUEUE_FROM.这一切都在一台Ubuntu机器上运行.我得到"远程通道的类型不适合所请求的操作".从我的搜索看起来这只是指发送者没有发送到接收者频道,在这种情况下不是这种情况.

Exception in thread "main" com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: null
    at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:585)
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:221)
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:426)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:6902)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6277)
    at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:285)
    at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6233)
    at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:120)
    at com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:203)
    at MqTestClient.main(MqTestClient.java:33)
Caused …
Run Code Online (Sandbox Code Playgroud)

ibm-mq

1
推荐指数
1
解决办法
5161
查看次数

有人可以帮我理解静态队列和动态队列之间的区别吗?


当我在处理Message-Queue时,遇到静态队列动态队列这个词.
任何人都可以告诉我区别吗?

activemq-classic message-queue ibm-mq

1
推荐指数
1
解决办法
2222
查看次数

使用WebSphere MQ类而不是JMS有什么好处?

我需要为IBM MQ编写简单的Java客户端.使用WebSphere MQ classes for Java(com.ibm.mq.jar)而不是使用WebSphere MQ classes for JMS(jms.jar)在Java中编写MQ客户端有什么好处?

java jms message-queue ibm-mq

1
推荐指数
1
解决办法
867
查看次数

mq客户端v8安装中缺少文件夹

在64位计算机上安装mq v8客户端后,很少有文件夹(错误,退出,退出64,跟踪..),mqclient.ini丢失.甚至没有创建日志/跟踪.有没有人遇到过这个问题.我试图清理安装几次,同样的msi在其他机器上工作正常以下是唯一安装的文件夹

在此输入图像描述

ibm-mq

1
推荐指数
1
解决办法
132
查看次数

MQQueueManager消息池

我过去使用RabbitMq作为MessageQueue,在收到消息时触发事件真的很简单。

我查看了IBM安装程序随附的.NET源,但是发现一种不好的方法来处理它。查看示例SimpleSubscribe可以完成这样的工作

// getting messages continuously
for (int i = 1; i <= numberOfMsgs; i++)
{
    // creating a message object
    message = new MQMessage();

    try
    {
        topic.Get(message);
        Console.WriteLine("Message " + i + " got = " + message.ReadString(message.MessageLength));
        message.ClearMessage();
    }
    catch (MQException mqe)
    {
        if (mqe.ReasonCode == 2033)
        {
            ++time;
            --i;
            Console.WriteLine("No message available");
            Thread.Sleep(1000);
            //waiting for 10sec
            if (time > 10)
            {
                Console.WriteLine("Timeout : No message available");
                break;
            }
            continue;
        }
        else
        {
            Console.WriteLine("MQException caught: {0} - {1}", …
Run Code Online (Sandbox Code Playgroud)

.net c# ibm-mq

1
推荐指数
1
解决办法
345
查看次数