小编Jos*_*hMc的帖子

在Java中获取MQ队列统计信息

从我的应用程序中,我需要查询一些Websphere MQ每队列统计信息(最后消息获取/放置时间,en/dequeued消息数,当前队列深度,连接客户端数).我设法通过PCFAgent获得队列深度,但我有点坚持其余,因为IBM文档相当混乱.

您是否知道可能有用的任何有用的参考(或代码示例)?

java statistics ibm-mq

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

使用 XMS.Net 的 Websphere MQ 队列深度

由于我们使用 XMS.net(有时似乎放弃侦听队列消息的 Windows 服务)在 IBM 的 Websphere MQ 上遇到了一些麻烦,我们想创建一个简单的应用程序来监视某些队列的深度(或消息的数量)在队列中)能够在队列深度超过某个阈值时提醒某人。该应用程序将由任务调度程序以特定时间间隔启动,并会为 X 队列“读出”它们的队列深度(可能还有一些其他统计信息)。

我们的 Windows 服务正在使用以下代码,我希望我可以为我们的“监控”应用程序重用相同的“知识”。

    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

    //Read config values
    string QueueManager = ConfigurationManager.AppSettings["queuemanager"];
    string Channel = ConfigurationManager.AppSettings["channel"];
    string Queue = ConfigurationManager.AppSettings["queue"];
    string HostIP = ConfigurationManager.AppSettings["host"];
    int Port = int.Parse(ConfigurationManager.AppSettings["port"]);

    //Create connection
    var factoryfactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
    var connectionfactory = factoryfactory.CreateConnectionFactory();

    connectionfactory.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, QueueManager);
    connectionfactory.SetStringProperty(XMSC.WMQ_HOST_NAME, HostIP);
    connectionfactory.SetIntProperty(XMSC.WMQ_PORT, Port);
    connectionfactory.SetStringProperty(XMSC.WMQ_CHANNEL, Channel);
    connectionfactory.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_V2);
    connectionfactory.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT_UNMANAGED);

    Console.WriteLine("Creating connection");
    var connection = connectionfactory.CreateConnection();
    connection.ExceptionListener = new ExceptionListener(OnXMSExceptionReceived);

    //Create a_session
    Console.WriteLine("Creating sessions");
    var session = …
Run Code Online (Sandbox Code Playgroud)

.net c# ibm-mq

4
推荐指数
2
解决办法
6114
查看次数

MQ 最大连接数问题

我有一个 Java 客户端,它通过 10 个连接连接到 MQ。这些在 Java 客户端运行期间保持打开状态。对于每个线程,我们创建一条消息,创建一个会话,发送消息并关闭会话。我们正在使用 Spring CachingConnectionFactory 并且 sessionCacheSize 为 100。我们的 MQ 工程团队告诉我们,我们的队列管理器的最大连接数为 500,我们已经超过了这个值。QM.ini 文件具有:

maxChannels=500
maxActiveChannels=256
maxHandles=256
Run Code Online (Sandbox Code Playgroud)

我在 MQ 资源管理器中观察到,队列上的打开输出计数保持静态为 10,但是如果我们跨 2 个队列进行负载平衡,则每个队列都是 10,即使我们仍然只有 10 个连接。那么我想知道的是 jms 连接和会话在 MQ 术语中等同于什么?

我确实认为连接等同于活动通道而会话是句柄,因此当我们打开(和关闭)的会话数量达到数百或数千时,我们可能会超过句柄,而我们只有 10连接。尽管与此相反,IBM 的技术说明“ JMS 连接工厂的连接池和会话池设置说明”中的以下片段表明最大通道应该大于最大会话,但是我们永远不知道这一点,因为它取决于负载(除非这应该大于 sessionCacheSize?)。

每个会话代表一个到队列管理器的 TCP/IP 连接。使用此处提到的设置,最多可以有 100 个 TCP/IP 连接。如果您正在使用 WebSphere MQ,那么将位于 qm.ini 文件中的队列管理器的 MaxChannels 设置调整为一个大于连接到队列的每个 JMS 连接工厂的最大可能会话数总和的值很重要经理。

任何关于如何最好地配置 MQ 的帮助将不胜感激。

java spring jms ibm-mq

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

无法为QManager创建队列

我遇到了一个非常有线的问题.我已成功安装Websphere MQ在我的Windows机器上,并希望创建QManager和队列以连接到远程Qmanager服务器.我已经创建了一个QManager,如下图所示.但是,当我尝试为此创建队列时QManager,我找不到IBM教程中提到的任何扩展按钮.我已经尝试使用MQSC创建一个队列但是当我runmqsc在管理员用户的命令提示符下运行时,它显示AMQ8135: Not Authorized错误!

在此输入图像描述

ibm-mq

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

libmqic_r.so:无法打开共享对象文件:没有那个文件或目录,python

我刚刚用centos创建了一个VM vagrant,使用Miniconda安装了python2.7和pip,使用pip安装了pymqi,创建了一个测试python文件,看看我的pymqi安装是否正确:

import pymqi
print "hello..."
Run Code Online (Sandbox Code Playgroud)

但我得到了这个:

[vagrant@localhost projects]$ python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
import pymqi
File "/home/vagrant/miniconda2/lib/python2.7/site-packages/pymqi/__init__.py", line 109, in <module>
import pymqe, CMQC, CMQCFC, CMQXC
ImportError: libmqic_r.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我寻找那个文件:

[vagrant@localhost projects]$ find /opt/mqm/ -name 'libmqic_r.so'
/opt/mqm/lib/compat/libmqic_r.so
/opt/mqm/lib/libmqic_r.so
/opt/mqm/lib64/compat/libmqic_r.so
/opt/mqm/lib64/libmqic_r.so
Run Code Online (Sandbox Code Playgroud)

谢谢,感谢您的帮助。

python-2.7 ibm-mq pymqi

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

发生 MQException:完成代码 2,原因 2400 MQJE011:套接字连接尝试被拒绝

我编写了一个程序来将消息放入 MQ 。当我没有 SSL 配置时它工作正常。如果我在 QueueManager 和 Channel 中配置 SSL,总是得到 An MQException发生:完成代码 2,原因 2400 MQJE011:套接字连接尝试被拒绝。尝试使用不同的密码套件 请告知如何解决。

SSL 属性:

com.ibm.mq.MQEnvironment.sslCipherSuite = "TLS_RSA_WITH_AES_256_GCM_SHA384"; 
System.setProperty("javax.net.ssl.trustStore", "D:/keystore/testKS.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "12345678");
System.setProperty("javax.net.ssl.keyStore", "D:/keystore/testKS.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "12345678");
Run Code Online (Sandbox Code Playgroud)

java ssl ibm-mq

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

RabbitMQ 点对点或发布订阅

RabbitMQ是点对点还是pub-sub?还是两者都取决于配置选项?

我一直在看配置,它们似乎都支持点对点模型而不是pub-sub。即消息一旦被消费就从队列中删除,并且不能被第二个消费者使用。

jms rabbitmq

4
推荐指数
2
解决办法
2424
查看次数

MQ系列消息被多次读取

我有一个问题,即偶尔会从Q中读取一条消息.我正在使用.NET包装器为MQSeries(amqmdnet.dll)并使用Win Service读取消息.

Here's how I do it with VB.NET:

'QManager
 Dim properties As Hashtable = New Hashtable(4)

        properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT)
        properties.Add(MQC.CHANNEL_PROPERTY, channelName)
        properties.Add(MQC.HOST_NAME_PROPERTY, iPAddress)
        properties.Add(MQC.PORT_PROPERTY, port)

        QManager = New MQQueueManager(queueManagerName, _
                                              properties)


'Q itself
getMessageOptions.Options = _
            MQC.MQGMO_FAIL_IF_QUIESCING Or _
            MQC.MQGMO_WAIT Or _
            MQC.MQGMO_SYNCPOINT

getMessageOptions.WaitInterval = 1000 ' read from config

Dim locker As New Object

System.Threading.Monitor.Enter(locker)

Q.Get(message, getMessageOptions)

QManager.Commit()

System.Threading.Monitor.Exit(locker)
Run Code Online (Sandbox Code Playgroud)

我听说Q.Get(message,getMessageOptions)使消息对其他读者不可用,QManager.Commit反过来只是从Q中删除消息(类似于.NET Peek&Dequeue).这本身应该消除对Monitor的需求.

在我的Win Service中,多个线程读取Q并且我们怀疑由于轮询间隔较低(100ms或更短),包装器没有足够的时间来更新消息的"Read"标志,因此它被多次拾取通过重叠线程.历史上,相同的消息最多可读取四次.

在增加轮询间隔之前,我想确定我是否以正确的方式做事.任何人都可以用我的方法建议任何问题吗?

谢谢.

.net ibm-mq

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

Jmeter 连接到 IBM MQ

我正在做一个 IBM webpshere 项目,并且在这个项目中重新安装了 IBM MQ,现在,我们需要使用 Jmeter 向 IBM MQ 发送消息,

有谁知道如何在 Jmeter 中为 IBM MQ 消息测试创建测试计划?链接和测试计划是首选。

注意,IBM MQ 与标准 JMS 有点不同,它提供了主机、队列管理器、服务器通道、端口和队列名称,我们如何在 Jmeter 中配置它?

提前致谢。

jmeter ibm-mq

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

AMQ9776:通道被阻塞

我需要帮助,我有以下问题:

\n\n
AMQ9776: Channel was blocked by userid \n\nEXPLANATION: \nThe inbound channel 'TEST1.SRVCONN' was blocked from address '10.0.2.4' \nbecause the active values of the channel were mapped to a userid which should \nbe blocked. The active values of the channel were 'MCAUSER(mqm) CLNTUSER(mqm)'.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我有以下权威记录:

\n\n
DISPLAY CHLAUTH(*)\n    37 : DISPLAY CHLAUTH(*)\nAMQ8878: Ver detalles de registro de autenticaci\xc3\xb3n de canal.\n   CHLAUTH(SYSTEM.ADMIN.SVRCONN)           TYPE(ADDRESSMAP)\n   ADDRESS(*)                              USERSRC(CHANNEL)\n\nAMQ8878: Ver detalles de registro de autenticaci\xc3\xb3n de canal.\n   CHLAUTH(TEST1.SRVCNN)                   TYPE(ADDRESSMAP)\n   ADDRESS(10.0.2.4)                       USERSRC(CHANNEL)\n\nAMQ8878: Ver detalles de registro …
Run Code Online (Sandbox Code Playgroud)

ibm-mq

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

标签 统计

ibm-mq ×9

java ×3

.net ×2

jms ×2

c# ×1

jmeter ×1

pymqi ×1

python-2.7 ×1

rabbitmq ×1

spring ×1

ssl ×1

statistics ×1