2011-07-05 24 views
5

Tôi đang cố gắng viết một ứng dụng nhỏ kết nối với Trình quản lý hàng đợi và phát hành một số lệnh trên đó, trong Java.WebSphere MQ: Làm thế nào để phát hành các lệnh MQSC bằng cách sử dụng API Java?

Từ những gì tôi đã đọc trong tài liệu, tôi hiểu rằng người ta phải đưa ra các lệnh bằng cách gửi chúng trong hàng đợi "SYSTEM.ADMIN.COMMAND.QUEUE".

Tuy nhiên, hàng đợi trả lời được xác định bởi replyToQueueName vẫn còn trống sau khi thực thi.

Có điều gì tôi đã bỏ lỡ không?

Đây là một phiên bản rút gọn của các mã:

MQQueueManager qMgr = new MQQueueManager("SOME_HOSTNAME"); 

MQQueue qOut = qMgr.accessQueue("SYSTEM.ADMIN.COMMAND.QUEUE", MQC.MQOO_OUTPUT); 
MQQueue qIn = qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_INPUT_AS_Q_DEF); 

MQMessage message = new MQMessage(); 
message.writeUTF("DISPLAY QMGR ALL"); 
message.messageType = MQC.MQMT_REQUEST; 
message.format = MQC.MQFMT_STRING; 
message.replyToQueueName = "SYSTEM.DEFAULT.LOCAL.QUEUE"; 

qOut.put(message, new MQPutMessageOptions()); 

MQMessage retrievedMessage = new MQMessage(); 
MQGetMessageOptions gmo = new MQGetMessageOptions(); 
gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_CONVERT; 

qIn.get(retrievedMessage, gmo); 

Trả lời

4

bộ xử lý lệnh hy vọng sẽ nhận được tin nhắn trong lập trình lệnh Format định dạng (PCF). Vui lòng xem các lớp học com.ibm.mq.pcf và hướng dẫn sử dụng Programmable Command Formats and Administration Interface.

Tùy thuộc vào phiên bản ứng dụng khách MQ bạn đang sử dụng, bạn có thể cần tải xuống các lớp Java PCF từ SupportPac MS0B. Tuy nhiên, nó được khuyến khích mạnh mẽ để phát triển bằng cách sử dụng máy khách MQ mới nhất. Máy khách hiện tại sẽ luôn làm việc với các phiên bản máy chủ WMQ cũ hơn V7 và quay trở lại mức chức năng có sẵn trên các nền tảng đó. Điều này đảm bảo rằng ít nhất các lớp khách hàng của bạn được hỗ trợ, trong khi phiên bản cũ hơn như V5.3 hoặc V6 thì không.

Ứng dụng khách M7.0 MQ có sẵn dưới dạng SupportPac MQC7.
Ứng dụng khách V7.5 MQ có sẵn dưới dạng SupportPac MQC75.
Máy khách V8.0 MQ có sẵn dưới dạng SupportPac MQC80.

+0

API có thay đổi từ phiên bản 6 thành phiên bản 7 không? Tôi đã thấy các ví dụ, chẳng hạn như http://www.mqseries.net/phpBB2/viewtopic.php?t=15159, nơi các lệnh được phát hành dưới dạng chuỗi thông điệp đơn giản. – slaphappy

+1

Đối với người đọc gần đây hơn, xin lưu ý rằng z/OS hiện hỗ trợ PCF Quá. Đã làm từ V6. Các lệnh MQSC được đóng gói (còn được gọi là Escape PCF) không được và không bao giờ được hỗ trợ trên z/OS. Khi gửi lệnh MQSC tới z/OS, chúng không được đóng gói, chúng chỉ là các chuỗi được đặt thẳng vào hàng đợi. –

+0

Cảm ơn bạn đã sửa, @Morag. Tuyệt vời để có bạn ở đây! –

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