2010-11-04 13 views
6

escribí una aplicación que conecta al gestor de colas local utilizando esta llamada de función:Conexión al gestor de colas remoto usando C# y .Net

MQQueueManager mqQMgr = new MQQueueManager("QM_QueueManagerName"); 

ahora tengo que conectar con gestor de colas remoto en otro ordenador.

puedo conectar con éxito con gestor de colas remoto utilizando MQ Explorer de mi PC de desarrollo utilizando QM_ComputerName como el nombre del gestor de colas, como S_ComputerName canal y ComputerName como nombre de la conexión. Por lo tanto, es accesible desde mi escritorio.

Sin embargo, cuando intento conectarme a través de .Net obtengo MQRC_Q_MGR_NAME_ERROR sin importar lo que intento.

he intentado especificando

MQEnvironment.Hostname = "ComputerName"; 
MQEnvironment.Channel = "S_ComputerName "; 

and then calling 

mqQMgr = new MQQueueManager("QM_ComputerName"); 

I also tried calling 

mqQMgr = new MQQueueManager("QM_ComputerName", "S_ComputerName", "ComputerName"); 

me sale error en ambos casos.

¿Alguien puede aconsejarle?

Respuesta

3

Quizás this sample code ayudará.

I vinculado a los documentos V7. Idealmente, utilizará tanto el cliente V7 como hablando con un servidor V7 porque la funcionalidad .Net está mejorada en estos a través de V6. Además, V6 está al final de su vida útil a partir de septiembre de 2011, por lo que sería bueno ir directamente a v7 ahora y evitar la actualización más adelante.

Si necesita el cliente v7 WMQ, que incluye las muestras y clases .Net actualizados, vaya a http://bit.ly/SupportPacMQC7 (requiere ID de IBM, pero es una descarga gratuita).

+0

Sí, esto es lo que estaba buscando. Voy a publicar mi fragmento de código también. –

3

Esta es la forma en que tengo que trabajar:

MQQueueManager mqQMgr=null; 

    Hashtable props = new Hashtable(); 

props.Add(MQC.HOST_NAME_PROPERTY, "HostNameOrIP"); 

    props.Add(MQC.CHANNEL_PROPERTY, "ChannelName"); 

    props.Add(MQC.PORT_PROPERTY, 1414); // port number 

    props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED); 

    MQQueue mqQueue = null; 

    try 

    { 

     mqQMgr = new MQQueueManager("QueueManagerName", props); 

     mqQueue = mqQMgr.AccessQueue(
       QueueName, 
       MQC.MQOO_OUTPUT     // open queue for output 
       + MQC.MQOO_FAIL_IF_QUIESCING); // but not if MQM stopping 
    } 

    catch (MQException mqe1) 

    { 

    } 
Cuestiones relacionadas