【问题标题】:Get channel table file from remote server从远程服务器获取通道表文件
【发布时间】:2018-02-02 18:19:15
【问题描述】:

我正在尝试使用位于远程服务器中的 ccdt 文件设置 ccdturl。我尝试使用 ftp 设置 ccdt url,但没有成功。有谁知道在远程服务器中为 ccdt 文件设置 url 的正确方法是什么? 谢谢!

我试过了:

String channelTablePath = "ftp://user@host:/path-to-ccdt-file";
Url url = new URL(channelTablePath );
connectionFactory.setCCDTURL(url); 

我得到的错误是:

Exception in thread "main" javax.jms.JMSException: JMSWMQ2020: Failed to connect                                                                                              to queue manager '*QQ' with connection mode 'Client' and supplied CCDT URL 'ftp://user@host:/path/ccdt.tab',                                                                                              see linked exception for more information.
JMS Error code: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2278' ('MQRC_CLIENT_CONN_ERROR').
EXPLANATION:
The filesystem returned error code 'java.net.ConnectException[Connection timed
out]' for file 'ftp://user@host:/path/ccdt.tab'.
ACTION:
Record the name of the file 'ftp://user@host:/path/ccdt.tab'
and tell the systems administrator, who should ensure that file 'ftp://user@host:/path/ccdt.tab'
is correct and available.

【问题讨论】:

    标签: java ftp ibm-mq


    【解决方案1】:

    总结:

    URL 中的主机后不应有冒号 (:)。如果需要,您应该在 URL 中指定密码值。您还需要指定 ccdt 文件的名称。此答案末尾处对 IBM 知识中心的引用。

    请尝试以下值:

    String channelTablePath = "ftp://user:pass@host/path-to-ccdt-file/AMQCLCHL.TAB";
    

    IBM MQ v9 知识中心页面“Using a client channel definition table with IBM MQ classes for JMS”指出:

    作为另一个例子,假设文件 ccdt2.tab 包含一个客户端 通道定义表并存储在不同的系统上 从运行应用程序的那个。如果文件可以 使用FTP协议访问,应用程序可以设置CCDTURL 属性如下:

    java.net.URL chanTab2 = new URL("ftp://ftp.server/admdata/ccdt2.tab");
    factory.setCCDTURL(chanTab2);
    

    IBM MQ v9 知识中心页面“Web addressable access to the client channel definition table”显示了一个带有用户名和密码的 FTP URL 示例:

    经过身份验证的连接

    export MQCHLLIB=ftp://myuser:password@myhost.sample.com/var/mqm/qmgrs/QMGR/@ipcc
    export MQCHLLIB=http://myuser:password@myhost.sample.com/var/mqm/qmgrs/QMGR/@ipcc
    

    ...

    注意

    如果您想使用经过身份验证的连接,您必须与 JMS 一样,提供在 URL 中编码的用户名和密码

    【讨论】:

    • 嗨,如果我想从远程主机获取频道表,我必须在url中添加编码密码吗?有没有一种方法我不需要添加密码?谢谢
    • 如果 ftp 服务器需要指定用户的密码,则您需要指定密码,JMS 库没有任何提示的能力。您总是可以这样做: 1. 在您的 ftp 服务器上设置一个无密码用户。 2.设置匿名ftp。 3. 放到http服务器上。
    • 如果您担心存储密码,那么让您的程序提示输入密码并在您的 URL 字符串中使用它。如果它是一个自动化程序,您可以将它放在一个配置文件中,该文件被锁定为只有应用程序用户才能读取。
    • @RLe 没问题。您能否提供更多关于“加密通行证”的含义的详细信息。 MQ 的 JMS 类应该只是寻找纯文本密码。有兴趣知道有一些我不知道的功能允许您提供加密密码吗?
    • 嗨,我有内部软件用于加密/编码密码作为传输服务器的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多