Мы используем IBM MQ6.1.Можем ли мы отправлять сообщения в очередь, используя многопоточность? - PullRequest
1 голос
/ 06 августа 2010

Мы используем IBM MQ6.1.И используйте IBM API для отправки сообщений в очередь.Поскольку нам нужно отправлять огромное количество сообщений, было интересно, можем ли мы использовать многопоточность и отправлять сообщения в одну и ту же очередь.Есть предложения?

1 Ответ

1 голос
/ 06 августа 2010

Абсолютно. Вы можете иметь столько потоков, сколько позволит память и процессор. Каждый поток требует свой собственный дескриптор соединения, если вы хотите увидеть улучшение производительности. Если вы используете один дескриптор соединения, все действия GET и PUT из нескольких потоков синхронизируются через дескриптор соединения. Если вы используете много дескрипторов подключения, действия GET и PUT могут выполняться параллельно. Пожалуйста, смотрите Многопоточные программы в руководстве WMQ Using Java для получения дополнительной информации.

Просто убедитесь, что настройки ядра ОС, такие как MAXUPROCS, настроены на то, чтобы WMQ запускал достаточное количество потоков для получения соединений, и чтобы настройки WMQ, такие как MAXHANDS и MAXCHANNELS , были увеличены для соответствия Загрузка. Имейте в виду, что единицы работы имеют область видимости потока, поэтому каждый поток для точки синхронизации не зависит от других - например, когда вы запускаете COMMIT внутри потока, он только фиксирует сообщения, отправленные этим конкретным потоком, при условии, что он имеет выделенное соединение. Очереди имеют атрибут для DEFSOPT (параметры общего доступа по умолчанию), но это относится к тому, сколько дескрипторов ввода может быть активным. Даже если вы откроете очередь для эксклюзивного ввода, в нее может записываться много потоков.

Кроме того, по состоянию на сентябрь 2011 года версия WMQ v6.x будет с истекшим сроком эксплуатации. Начните планировать сейчас, чтобы перейти к версии v7, чтобы сохранить поддерживаемую версию. Если вы используете соединения клиента WMQ, обновите клиент, а также QMgr. Клиент v7 отлично работает с v6 QMgr и может быть обновлен независимо. Конечно, он поддерживает только функциональность v6 при использовании с v6.x QMgr. Вы можете загрузить клиент v7 как SupportPac MQC7 .

...