В рамках ActiveMQ мне сказали, что наиболее оптимальным решением для увеличения пропускной способности является наличие нескольких соединений, каждый со своим сеансом и потребителем.ActiveMQ - несколько соединений за сеанс?
Я пытался добиться этого с помощью NMS (подключение через C#), но на экране «Активные пользователи» веб-консоли MQ я вижу все мои подключения & потребителей, перечисленных, как я ожидал см. их, но в следующем столбце у всех их есть sessionId из «1». Я бы ожидал, что для каждого будет отдельный идентификатор сеанса.
Это право? И если для каждого соединения/потребителя должны быть разные идентификаторы сеансов, как бы я мог обеспечить, чтобы эти дополнительные сеансы были созданы?
Вот пример кода, я использую, чтобы начать новое соединение (это основано на Remarks ActiveMQ transactional messaging introduction code):
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);
}
... и это делается каждый раз, когда для каждого из соединений I'M открытие.
Какую версию ActiveMQ и NMS вы используете? – Noctris
И еще один вопрос: Вы случайно установили ClientID при создании IConnectionFactory? я быстро заглянул в исходный код и заметил, что это нажало на идентификатор соединения и, возможно, на сеанс: s – Noctris