Получение ошибки «Входная строка слишком длинная для поля MQI» при подключении к IBMMQ

#node.js #ibm-mq

#node.js #ibm-mq

Вопрос:

Я подключаюсь к IBMMQ, у которого есть ssl. Я могу подключиться к этому IBM MQ, используя Java-код и используя MQ explorer. Теперь пытаюсь подключиться с помощью узла. Я следовал приведенному здесь коду, заменив все требуемые значения на те, которые я получил, а затем при выполнении я получаю ошибку

 D:IBMMQnode_modulesibmmqlibmqiutils.js:46
      throw new RangeError(errstring);
      ^

RangeError: Input string is too long for MQI field
    at Object.exports.setMQIString (D:\IBMMQnode_modulesibmmqlibmqiutils.js:46:13)
    at Object.exports._copyCDtoC (D:\IBMMQnode_modulesibmmqlibmqcd.js:329:5)
    at Object.exports._copyCNOtoC (D:\IBMMQnode_modulesibmmqlibmqcno.js:131:21)
    at connx (D:\IBMMQnode_modulesibmmqlibmqi.js:754:21)
    at Object.exports.Connx (D:\IBMMQnode_modulesibmmqlibmqi.js:727:3)
    at Object.<anonymous> (D:IBMMQTestMQOMS.js:45:4)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
 

Поскольку это может быть проблема с длиной строки, я попытался обновить значение своего шифра до просто «xyz», но затем я вижу ошибку

 MQ call failed in CONNX: MQCC = MQCC_FAILED [2] MQRC = MQRC_KEY_REPOSITORY_ERROR [2381]
 

Есть идеи, как я могу исправить ‘RangeError:’ .

Комментарии:

1. На самом деле вы не удосужились указать, КАКУЮ спецификацию шифрования вы пытались установить. Я предполагаю, что вы пытаетесь использовать то же имя, что и в программе Java. Но поддержка nodejs основана на клиенте C, который часто будет иметь разные имена и должен умещаться в 32 символа/

2. Обычно, задавая вопрос о коде в StackOverflow, обычно показывается ваш код, по крайней мере, небольшой фрагмент кода, который, по вашему мнению, может быть проблематичным.

3. да, я использовал тот же код, что и упомянутый здесь github.com/ibm-messaging/mq-mqi-nodejs/blob/master/samples /. … Изменились только значения.

Ответ №1:

Как предложил Марк Тейлор, я использовал шифр меньшего размера в соответствующем списке шифров. Код сработал.