gpt4 book ai didi

ibm-mq - WMQ JNDI 使用身份验证查找

转载 作者:行者123 更新时间:2023-12-05 01:12:10 26 4
gpt4 key购买 nike

对于以下代码

 public class JMSSamplePut 
{
private static String initialContextUrl = null;
private static String connectionFactoryFromJndi = "UM_QMGR_QCF";
private static String queueFromJndi = "BCUFXW.EXB.ATHENA.FX.IN";
private static String outString = "A sample text message " +
"from JMSSampleput";
private static int retryInterval = 10;
private static int retryCount = 3;
private static int connStatus = 1;


/**
* @param args
*/
public static void main( String[] args )
{

// Variables
Queue ioQueue = null;
QueueSession session = null;
QueueSender queueSender = null;
QueueConnection connection = null;
QueueConnectionFactory factory = null;
boolean transacted = false;
int i = 0;

try {
// Instantiate the initial context for JNDI
String contextFactory ="com.sun.jndi.fscontext.RefFSContextFactory";
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
environment.put(Context.PROVIDER_URL, "file:/c:/jndi");
Context context = new InitialDirContext(environment);
System.out.println("Initial context found!");

// Create a Queue ConnectionFactory
factory = (QueueConnectionFactory) context.lookup(connectionFactoryFromJndi);

...........

最后一行失败了

捕获 JMSException: com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为 QueueManager '' 提供的安全认证无效,连接模式为 'Client',主机名为 'NATMIB1.hostname.net(1414)'。请检查您所连接的 QueueManager 上提供的用户名和密码是否正确
链接异常:com.ibm.mq.MQException:JMSCMQ0001:WebSphere MQ 调用失败,compcode '2'('MQCC_FAILED')原因'2035'('MQRC_NOT_AUTHORIZED')。
完成的

JVM 参数
-Djavax.net.ssl.keystore=c://keystore//a_dev.jks \
-Djavax.net.ssl.keyStorePassword=******** \
-Djavax.net.ssl.trustStorePassword=******** \
-Djavax.net.ssl.trustStore=c://keystore//cacerts.jks \
-Djavax.net.debug=all

任何指针?为什么是下面一行?

为具有连接模式“客户端”和主机名“NATMIB1.hostname.net(1414)”的 QueueManager 提供的安全身份验证无效

看起来 JNDI 代理无法找到 QueueManager 的名称?
我在 .bindings 文件中有以下行,队列管理器名称是 NATMIB1
UM_QMGR_QCF/RefAddr/3/Content=NATMIB1.xyz.net

提前致谢

桑达尔

最佳答案

调试 WMQ 安全错误非常简单 如果 你有正确的工具。首先去获取SupportPac MS0P并按照说明安装到 WMQ Explorer 中。如果您没有现代版本的 WMQ Explorer,您可以从 SupportPac MS0T 下载它。 .

接下来,在 QMgr 上启用授权事件并重新创建错误。

此时,在 WMQ Explorer 中右键单击事件队列并选择 Format Event Messages。这将向您显示错误的所有方面,包括:

  • 产生错误的用户 ID。根据 channel 设置、导出和客户端设置,使用的 ID 可能不是您期望的。
  • 进行的 API 调用。在这种情况下可能连接,但有时这也不是您所期望的。例如,IBM JMS 类将始终在 QMgr 上查询以获取 DLQ 名称,如果您不授予查询权限,它将失败。
  • 用于调用的确切选项。
  • 发出调用的对象。

  • 一旦知道了错误的这些要素,就可以确定是否是ID本身、 channel 、ID的授权等问题。

    更新

    针对评论中的一个问题,要启用授权事件,请使用 MQ Explorer 或 runmqsc,如下所示:

    Command line version

    对于 MQ Explorer 版本,首先右键单击 QMgr 并选择 Properties。

    enter image description here

    然后在导航面板中选择事件,根据需要设置事件并单击 OK .

    enter image description here

    关于ibm-mq - WMQ JNDI 使用身份验证查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14398097/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com