В ActiveMQ мне сказали, что наиболее оптимальным решением для увеличения пропускной способности является наличие нескольких соединений, каждое со своим сеансом и потребителем.
Я пытался добиться этого с помощью NMS (подключение через С#), но на экране «Активные потребители» веб-консоли MQ я вижу все свои соединения и потребители, перечисленные так, как я ожидал их увидеть, но в следующем столбце все они имеют sessionId "1". Я ожидал, что для каждого будет отдельный идентификатор сеанса.
Это правильно? И если для каждого соединения/потребителя должны быть разные идентификаторы сеанса, как я могу обеспечить создание этих дополнительных сеансов?
Вот пример кода, который я использую для запуска нового соединения (это основано на Примечания кода введения транзакционных сообщений ActiveMQ):
public QueueConnection(IConnectionFactory connectionFactory, string queueName, AcknowledgementMode acknowledgementMode)
{
this.connection = connectionFactory.CreateConnection();
this.connection.Start();
this.session = this.connection.CreateSession(acknowledgementMode);
this.queue = new ActiveMQQueue(queueName);
}
... и это делается каждый раз для каждого из соединений, которые я открываю.