Vì vậy, tôi đã dành vài ngày qua để giải quyết vấn đề này dường như đã bị lãng quên vì không có hai phần mở rộng PECL có sẵn (SAM và mqseries) đã được cập nhật trong một thời gian dài. Tôi đã thử cả hai và mqseries dường như để có được tôi xa nhất tại thời điểm này kể từ khi SAM từ chối để có được cho tôi một kết nối, mặc dù MQ hoạt động hoàn hảo từ dòng lệnh. Tôi đã tạo thành công kết nối đến QueueManager của tôi và nó trong bước tiếp theo (MQOPEN) mà tôi thất bại thảm hại:Đang cố gắng kết nối với MQ bằng cách sử dụng PHP; Gần như có
$mqcno = array(
'Version' => MQSERIES_MQCNO_VERSION_2,
'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
'MQCD' => array('ChannelName' => '[channel]',
'ConnectionName' => '[ipnumber]([port])',
'TransportType' => MQSERIES_MQXPT_TCP)
);
mqseries_connx('MQED', $mqcno, $conn, $comp_code,$reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, $reason);
exit;
}
$mqods = array('ObjectName'=>'MYPUTQUEUE', 'ObjectType'=>MQOT_Q, 'ObjectQMgrName'=>'MYQUEUEMANAGER');
mqseries_open($conn, $mqods,
MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
$obj, $comp_code,$reason);
Điều này dẫn đến $ Lý do được dân cư với 2044, trong đó dịch để MQRC_OD_ERROR, hoặc bằng tiếng Anh: 'Trong cuộc gọi MQOPEN hoặc MQPUT1, bộ mô tả đối tượng MQOD không hợp lệ'.
Vì vậy, câu hỏi là, có vấn đề gì với MQOD của tôi?
Cập nhật # 1: Tại thời điểm này, điều này không được giải quyết. Tôi xây dựng lại dự án từ đầu để giải quyết mọi vấn đề tại thời điểm xây dựng. Tôi vẫn còn mắc kẹt trên MQOPEN trở về 2044. Các mẫu vẫn chạy hoàn hảo từ CLI, vì vậy điều này chắc chắn gắn liền với việc cài đặt phần mở rộng PECL. Nếu có ai đó đã cài đặt thành công và đang chạy PHP với MQ trong môi trường PHP5 64 bit gần đây, vui lòng cho tôi biết ...
Cập nhật # 2: MQPUT1 hoạt động hoàn hảo với sự cố tôi không thể nhận được phản hồi của tôi. Tại thời điểm này, nó chỉ là MQOPEN không hoạt động. Câu hỏi là; những gì đang gây ra MQOPEN để trở về năm 2044 khi MQPUT1 hoạt động, mà tôi hiểu bao gồm MQOPEN?
* Tôi đã tạo thành công một kết nối tới QueueManager của tôi và trong bước tiếp theo (MQCONN) mà tôi thất bại thảm hại ... * Bạn có chắc là nó trên MQOpen không? –
Có, xin lỗi. Tôi đã chỉnh sửa câu hỏi của mình. – eriben
Tôi không quen thuộc với các mô-đun PHP nhưng 'DeviceName' có vẻ như là một khóa lẻ cho tên hàng đợi. –