- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 Java 应用程序,它可以向队列发送消息或从队列接收消息,我正在尝试将其设置为在 Linux
上使用 MQ AMS
。
这是我第一次设置 MQ AMS
,所以我尝试了 MQ distribution
中提供的示例(JmsProvider/JmsConsumer
)。
最初,我尝试了 WebSphere MQ 7.5
,它预装了 java 6
,我可以设置它,创建一个队列,使用附加的示例发送和接收编码消息。
但是,我的应用程序与 java 6
不兼容。
我下载了 ibm jdk 8
,并尝试对其进行设置。
如果消息未编码,它会起作用;但是,如果启用了安全策略,我可以使用 WebSphere 自己的 JmsProducer
将消息发送到队列,但无法使用它们自己的 JmsConsumer
获取消息 - 获取通用 MQRC_NOT_AUTHORISED
错误(同下,java版本除外)。我关闭了 channel authorisation
,并确保我用来创建消息的用户在队列管理器上被指定为 MCAUSER
。但是,我的用户不在 mqm 组
中,因为该组不存在(并且我的 Linux 发行版不会对 addgroup
使用react,除了 未知命令
).
然后我认为可能是我拥有的 java 8
发行版缺少对 MQ
至关重要的东西,所以我下载了 WebSphere MQ 8
,其中包含 java 7
,并尝试使用这个新的 java 7
再次运行 JmsProducer/JmsConsumer
,针对我的旧 MQ 7.5
队列。结果是一样的——生产者成功生产消息并将消息放入队列,但消费者因 not authorised
而失败。
[userName@machineName ~]$ /opt/mqm/java/jre64/jre/bin/java -showversion -classpath $CLASSPATH JmsConsumer -m QM_TEST_AMS -d TEST.Q -h hostName -p 1616 -l CHANNEL > JmsConsumer.output
java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470_27sr2-20141026_01(SR2))
IBM J9 VM (build 2.7, JRE 1.7.0 Linux amd64-64 Compressed References 20141017_217728 (JIT enabled, AOT enabled)
J9VM - R27_Java727_SR2_20141017_1632_B217728
JIT - tr.r13.java_20141003_74587.01
GC - R27_Java727_SR2_20141017_1632_B217728_CMPRSS
J9CL - 20141017_217728)
JCL - 20141004_01 based on Oracle 7u71-b13
com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2008: Failed to open MQ queue 'TEST.Q'.
JMS attempted to perform an MQOPEN, but WebSphere MQ reported an error.
Use the linked exception to determine the cause of this error. Check that the specified queue and queue manager are defined correctly.
Inner exception(s):
com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
FAILURE
不过,如果我切换到 Java 6,仍然可以收到这些消息。请有人指出我可能遗漏的方向,阻止 java 7/8 应用程序从队列接收编码消息,而 java 6 应用程序继续正常工作? WebSphere MQ 7.5 是否可以与 Java 7/8 一起使用?
最佳答案
根据WMQ System Requirements page for v7.5 on Linux , 尚不支持 JTE 8.0。
就其值(value)而言,v8.0 具有与您所见相同的要求 here .所有版本的顶级系统要求页面 is here .
也就是说,听起来您遇到的是策略或证书问题,而不是 JRE 问题。发送加密消息时,发件人必须拥有收件人证书的公钥。收件人必须拥有发件人的公钥。当然,两者都必须有自己的个人证书。 AMS 策略必须指定所有可能的收件人,即使其中之一是发件人。
您尚未发布策略设置或 keystore 详细信息。这些将需要调试它(并且可能发布在不同的问题中,因为这个问题是在 JRE 版本上)。此外,2035 会引发事件消息。启用授权事件并安装 MS0P SupportPac进入 MQ 资源管理器以在 SYSTEM.ADMIN.QMGR.EVENT
队列中查看它们。
关于java - 带有 Java 客户端的 IBM MQ AMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428906/
我们目前使用 MQ Explorer 来管理 Z/OS 上的 WebSphere MQ V7。前几天误删了一个队列。后来我想回顾一下历史并查看一些日志以了解它究竟发生在何时。我的问题是,MQ Expl
默认情况下是否安装了扩展事务客户端?如何验证是否已安装?我如何安装这个? 最佳答案 在先前版本的 MQ 客户端中,它当然不包含在标准客户端中(事务客户端具有成本/许可影响)。 但是,从 WMQ v7.
我有 2 个队列,比如 Q1 和 Q2。当我使用 MQPUT 将消息插入 Q1 时,有什么方法可以将此消息复制到 Q2 中吗? WMQ 是否支持队列复制? 注意:队列驻留在不同的队列管理器上。 谢谢,
我有一个进程,它使用 JMSTemplate 根据 JMS header 值有选择地从 MQ 队列中出列。 当出队查询匹配队列前面的消息时,出队速率约为 60-70 条消息/秒。但是,当查询仅匹配 5
Source LogPrimaryFiles=3|2-254 (Windows)|2-510 (UNIX systems) The log files allocated when the queue
在Websphere MQ系列中,队列管理器的命令级别是701。它实际上指定了什么? 最佳答案 WebSphere 产品使用“[版本].[发行版].[修改].[修订包]”命名约定。例如,7.0.1.6
在哪里可以找到 IBM MQ 版本 V8.0.0.5 和 V9.0 之间的区别?我试图在 IBM 网站上查找它,但没有成功。 最佳答案 IBM 的 v9 知识中心页面“What's new in Ve
我已经在我的机器上安装了 MQ(已经用 regedit32 检查过)但是当我在命令提示符下键入“runmqsc”时出现错误“无法识别命令”(为 mqjms.jar 设置了环境变量)我是什么失踪 ?我想
我在我的系统中安装了 MQ V8.0.0.2,我正在应用修复包以使用静默安装方法将其升级到 8.0.0.5。它运行成功并完成,但 dspmqver仍然说版本为 8.0.0.2。 它在 64 位的 Wi
我们有一个场景,我们希望 node.js 应用程序使用来自后端系统的消息,该后端系统当前将消息放入 Websphere MQ 队列(通过 SAP PI)。 在 MQ 8.0.0.3 中,有一个 AMQ
我们有消息通过 WebSphere MQ 队列传入。我们需要很长时间才能收到消息。 是否有一种简单易行的方法来跟踪收到/提取消息的时间? 最佳答案 发送消息后,您可以请求确认交货。当消息被消费时,一条
我想将文件系统中的文件加载到 WebSphere MQ 队列。有几个支持 pacs - Q Program和 MO03: WebSphere MQ Queue Load / Unload Utilit
有人使用过 RPG 中的 MQ 吗?问题如下。队列中有几条消息。它们都带有 RFH2 header 。每个 header 都包含一组 NameValueData。我正在创建消息句柄并将其传递给 MQG
我有一组 IBM MQ 队列管理器,想知道其中一个何时重新启动或何时自动故障转移到备用实例。 队列管理器位于 AIX 上 问候, 最佳答案 您可以从 AMQERR01.LOG 中找到此信息。队列管理器
作为我们应用程序安装的一部分,我需要将一堆 xml 消息放入一个 MQ 队列中。为了使它更复杂,消息需要设置 RFH2 header 的 usr 文件夹。 我发现 mqput2.exe来自 IBM R
我一直在研究变幻莫测的 channel 状态、它们如何进入这些状态以及如何停止或启动它们。我现在已经有了相当扎实的理解,但是一位同事提出了 channel 重置的话题。 当我无法解释发生了什么时,我偶
我从 MQ 安全演示文稿中看到一项建议,如果您不需要命令服务器,它会关闭它。我的问题是如何确定我是否真的需要它。 从我的角度来看,如果没有运行目标 QMGR 的管理程序,例如 MQ Explorer
是否可以保留已检索且不再位于队列中的消息历史记录(包含消息内容将是完美的)? 在应用程序中,我可以看到发送者何时尝试将消息放入队列以及接收者何时尝试拾取消息,但我想查看消息何时真正到达队列以及消息何时
有没有办法找到在特定时间段内通过 IBM websphere MQ 队列管理器的消息总数? 最佳答案 这听起来像是 MQ 记帐和统计功能的完美使用。除此之外,这些功能还记录消息数量(具有持久和非持久计
我正在向远程队列发送消息,但我无法控制该队列。 我发送一个 xml 文件作为消息,但是当应用程序读取消息时,它会得到一个消息头,例如 jms_text \0\0\0lqueue:///TEST128
我是一名优秀的程序员,十分优秀!