2010-11-04 37 views
6

tôi đã viết một ứng dụng mà kết nối với quản lý hàng đợi địa phương sử dụng cuộc gọi chức năng này:Kết nối để quản lý hàng đợi từ xa sử dụng C# và .Net

MQQueueManager mqQMgr = new MQQueueManager("QM_QueueManagerName"); 

Bây giờ tôi cần phải kết nối với quản lý hàng đợi từ xa trên một máy tính khác.

Tôi có thể kết nối thành công với người quản lý hàng đợi từ xa bằng cách sử dụng MQ Explorer từ máy tính phát triển của tôi bằng cách sử dụng QM_ComputerName làm tên người quản lý hàng đợi, S_ComputerName làm kênh kết nối và Tên máy tính. Vì vậy, nó có thể truy cập từ máy tính để bàn của tôi.

Tuy nhiên, khi tôi cố gắng kết nối qua. Net, tôi nhận được MQRC_Q_MGR_NAME_ERROR bất kể tôi thử làm gì.

tôi đã cố gắng xác định

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"); 

tôi nhận được lỗi trong cả hai trường hợp.

Mọi người đều có thể tư vấn?

Trả lời

3

Có lẽ this sample code sẽ trợ giúp.

Tôi đã liên kết với tài liệu V7. Lý tưởng nhất là bạn sẽ sử dụng cả máy khách V7 và nói chuyện với máy chủ V7 vì chức năng .Net được cải tiến nhiều trong các V6 này. Ngoài ra, V6 là phần cuối của cuộc sống kể từ tháng 9 năm 2011 vì vậy nó sẽ là tốt để đi thẳng đến v7 bây giờ và tránh nâng cấp sau này.

Nếu bạn cần ứng dụng khách WM7 v7, bao gồm các mẫu và lớp Net được cập nhật, hãy truy cập http://bit.ly/SupportPacMQC7 (yêu cầu ID IBM nhưng tải xuống miễn phí).

+0

Vâng, đây là những gì tôi đang tìm kiếm. Tôi cũng sẽ đăng đoạn mã của mình. –

3

Đây là cách tôi đã nhận nó để làm việc:

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) 

    { 

    } 
Các vấn đề liên quan