Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用CCDT连接到MQ服务器_C#_Ibm Mq - Fatal编程技术网

C# 使用CCDT连接到MQ服务器

C# 使用CCDT连接到MQ服务器,c#,ibm-mq,C#,Ibm Mq,我正试图使用CCDT文件中的信息连接到MQ。我当前可以使用所有详细信息连接到MQ,并从队列中获取消息和将消息放入队列 在大量的谷歌搜索之后,我找不到任何允许我使用CCDT文件进行连接的示例代码 我的一位同事向我转发了他的JMS连接代码,但我无法将其移植到C JAVA代码如下- public class MQTest { public static void main(String[] args) { MQQueueManager queueManager = null; URL

我正试图使用
CCDT
文件中的信息连接到
MQ
。我当前可以使用所有详细信息连接到
MQ
,并从队列中获取消息和将消息放入队列

在大量的谷歌搜索之后,我找不到任何允许我使用
CCDT
文件进行连接的示例代码

我的一位同事向我转发了他的
JMS
连接代码,但我无法将其移植到
C

JAVA
代码如下-

public class MQTest {
public static void main(String[] args) {

    MQQueueManager queueManager = null;
    URL ccdtFileUrl = null;
    MQMessage mqMessage = null;
    //MQPutMessageOptions myPMO = null
    try {
     String QM =    "IB9QMGR";
     String QUEUE1 = "TEST";

     System.out.println("Starting MQClient Put Program: ");
     ccdtFileUrl = new URL("file:///D:/AMQCLCHL.TAB") ;
     ccdtFileUrl.openConnection();
     queueManager = new MQQueueManager("SDCQMGR.T1", ccdtFileUrl);

     System.out.println("Connected to QMGR ");
     int openOptions = MQC.MQOO_OUTPUT;
     MQQueue InQueue = queueManager.accessQueue(QUEUE1,openOptions,null,null,null);
     MQMessage inMessage = new MQMessage();
     inMessage.writeString("###Testing####");
     InQueue.put(inMessage);
     System.out.println("Message Id is :" + inMessage.messageId);
     System.out.println(inMessage.toString());
     InQueue.close();
     queueManager.disconnect() ;
 }
 catch(MQException ex){
     System.out.println("MQ Error - Reason code :" + ex.reasonCode);
 }
 catch (Exception e){
     System.out.println("Error : " + e);
 }
}
}
我没有使用
URL
,而是使用
URI
(在C#中)来设置文件位置。(这可能被错误地使用。但不确定还要使用什么。)

但是我不能在URI上使用
openConnection()
。而且

queueManager=newmqqueuemanager(“SDCQMGR.T1”,ccdtFileUrl)
给出参数重载异常。因为C#中不支持URI


我试着查找示例,但找到了一些JMS示例,仅此而已。在C#中查找一些要连接的示例代码。

您需要设置
MQCHLLIB
MQCHLTAB
环境变量以使用CCDT。您可以从命令提示符、app.config或应用程序本身的代码中设置这两个变量

以下示例演示了
CCDT
的用法:

        MQQueueManager qm = null;
        System.Environment.SetEnvironmentVariable("MQCHLLIB", "C:\\ProgramData\\IBM\\MQ\\qmgrs\\QM1\\@ipcc");
        System.Environment.SetEnvironmentVariable("MQCHLTAB", "AMQCLCHL.TAB");

        try
        {
            **Hashtable props = new Hashtable();
            props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
            qm = new MQQueueManager("QM1",props);**
            MQQueue queue1 = qm.AccessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING);
            MQMessage msg = new MQMessage();
            msg.WriteUTF("Hello this message is from .net client");
            queue1.Put(msg);
            queue1.Close();
            qm.Disconnect();
        }
        catch (Exception ex)
        {
            Console.Write(ex);
        }

您需要设置
MQCHLLIB
MQCHLTAB
环境变量以使用CCDT。您可以从命令提示符、app.config或应用程序本身的代码中设置这两个变量

以下示例演示了
CCDT
的用法:

        MQQueueManager qm = null;
        System.Environment.SetEnvironmentVariable("MQCHLLIB", "C:\\ProgramData\\IBM\\MQ\\qmgrs\\QM1\\@ipcc");
        System.Environment.SetEnvironmentVariable("MQCHLTAB", "AMQCLCHL.TAB");

        try
        {
            **Hashtable props = new Hashtable();
            props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
            qm = new MQQueueManager("QM1",props);**
            MQQueue queue1 = qm.AccessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING);
            MQMessage msg = new MQMessage();
            msg.WriteUTF("Hello this message is from .net client");
            queue1.Put(msg);
            queue1.Close();
            qm.Disconnect();
        }
        catch (Exception ex)
        {
            Console.Write(ex);
        }

您需要设置
MQCHLLIB
MQCHLTAB
环境变量以使用CCDT。您可以从命令提示符、app.config或应用程序本身的代码中设置这两个变量

以下示例演示了
CCDT
的用法:

        MQQueueManager qm = null;
        System.Environment.SetEnvironmentVariable("MQCHLLIB", "C:\\ProgramData\\IBM\\MQ\\qmgrs\\QM1\\@ipcc");
        System.Environment.SetEnvironmentVariable("MQCHLTAB", "AMQCLCHL.TAB");

        try
        {
            **Hashtable props = new Hashtable();
            props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
            qm = new MQQueueManager("QM1",props);**
            MQQueue queue1 = qm.AccessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING);
            MQMessage msg = new MQMessage();
            msg.WriteUTF("Hello this message is from .net client");
            queue1.Put(msg);
            queue1.Close();
            qm.Disconnect();
        }
        catch (Exception ex)
        {
            Console.Write(ex);
        }

您需要设置
MQCHLLIB
MQCHLTAB
环境变量以使用CCDT。您可以从命令提示符、app.config或应用程序本身的代码中设置这两个变量

以下示例演示了
CCDT
的用法:

        MQQueueManager qm = null;
        System.Environment.SetEnvironmentVariable("MQCHLLIB", "C:\\ProgramData\\IBM\\MQ\\qmgrs\\QM1\\@ipcc");
        System.Environment.SetEnvironmentVariable("MQCHLTAB", "AMQCLCHL.TAB");

        try
        {
            **Hashtable props = new Hashtable();
            props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
            qm = new MQQueueManager("QM1",props);**
            MQQueue queue1 = qm.AccessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING);
            MQMessage msg = new MQMessage();
            msg.WriteUTF("Hello this message is from .net client");
            queue1.Put(msg);
            queue1.Close();
            qm.Disconnect();
        }
        catch (Exception ex)
        {
            Console.Write(ex);
        }


只是澄清一下
QM1
是我的队列管理器名称。另外,在设置
AMQCLCHL.TAB
时,我应该如何指定我的位置?它位于
D:/AMQCLCHL.TAB
(在硬盘上)或
\TAB\AMQCLCHL.TAB
(在我的项目中,已导入)。好的。格式?只需
“D:/AMQCLCHL.TAB”
?参见上面的示例代码。它分别设置路径(MQCHLLIB)和文件名(MQCHLTAB)。这不是路径格式的问题。检查CCDT文件中指定的队列管理器名称是否与您在应用程序中指定的名称相同。很抱歉,我是个笨蛋。这是我当前设置变量的代码<代码>System.Environment.SetEnvironmentVariable(“MQCHLLIB”,“D:/”)
System.Environment.SetEnvironmentVariable(“MQCHLTAB”、“AMQCLCHL.TAB”)而我仍然得到相同的错误。队列管理器的名称是正确的。请澄清一下
QM1
是我的队列管理器名称。另外,在设置
AMQCLCHL.TAB
时,我应该如何指定我的位置?它位于
D:/AMQCLCHL.TAB
(在硬盘上)或
\TAB\AMQCLCHL.TAB
(在我的项目中,已导入)。好的。格式?只需
“D:/AMQCLCHL.TAB”
?参见上面的示例代码。它分别设置路径(MQCHLLIB)和文件名(MQCHLTAB)。这不是路径格式的问题。检查CCDT文件中指定的队列管理器名称是否与您在应用程序中指定的名称相同。很抱歉,我是个笨蛋。这是我当前设置变量的代码<代码>System.Environment.SetEnvironmentVariable(“MQCHLLIB”,“D:/”)
System.Environment.SetEnvironmentVariable(“MQCHLTAB”、“AMQCLCHL.TAB”)而我仍然得到相同的错误。队列管理器的名称是正确的。请澄清一下
QM1
是我的队列管理器名称。另外,在设置
AMQCLCHL.TAB
时,我应该如何指定我的位置?它位于
D:/AMQCLCHL.TAB
(在硬盘上)或
\TAB\AMQCLCHL.TAB
(在我的项目中,已导入)。好的。格式?只需
“D:/AMQCLCHL.TAB”
?参见上面的示例代码。它分别设置路径(MQCHLLIB)和文件名(MQCHLTAB)。这不是路径格式的问题。检查CCDT文件中指定的队列管理器名称是否与您在应用程序中指定的名称相同。很抱歉,我是个笨蛋。这是我当前设置变量的代码<代码>System.Environment.SetEnvironmentVariable(“MQCHLLIB”,“D:/”)
System.Environment.SetEnvironmentVariable(“MQCHLTAB”、“AMQCLCHL.TAB”)而我仍然得到相同的错误。队列管理器的名称是正确的。请澄清一下
QM1
是我的队列管理器名称。另外,在设置
AMQCLCHL.TAB
时,我应该如何指定我的位置?它位于
D:/AMQCLCHL.TAB
(在硬盘上)或
\TAB\AMQCLCHL.TAB
(在我的项目中,已导入)。好的。格式?只需
“D:/AMQCLCHL.TAB”
?参见上面的示例代码。它分别设置路径(MQCHLLIB)和文件名(MQCHLTAB)。这不是路径格式的问题。检查CCDT文件中指定的队列管理器名称是否与您在应用程序中指定的名称相同。很抱歉,我是个笨蛋。这是我当前设置变量的代码<代码>System.Environment.SetEnvironmentVariable(“MQCHLLIB”,“D:/”)
System.Environment.SetEnvironmentVariable(“MQCHLTAB”、“AMQCLCHL.TAB”)而我仍然得到相同的错误。队列管理器名称正确。