Apache.NMS.ActiveMq ConnectionFactory игнорирует предварительную выборку, установленную в URL брокера
Это URL, который мы используем для создания / присоединения к нашей очереди: tcp://localhost:61616? Jms.prefetchPolicy.queuePrefetch=1
Это по умолчанию queuePrefetch к 1000:
IConnectionFactory connectionFactory = new ConnectionFactory(queueServer);
connectionFactory = new SingleConnectionFactory(connectionFactory)
{
ReconnectOnException = true
};
Если мы используем следующий код, он устанавливает его соответствующим образом:
IConnectionFactory connectionFactory = new ConnectionFactory(queueServer)
{
PrefetchPolicy = new PrefetchPolicy{QueuePrefetch = 1}
};
connectionFactory = new SingleConnectionFactory(connectionFactory)
{
ReconnectOnException = true
};
Есть ли причина, по которой ConnectionFactory игнорирует предварительную выборку, которую мы устанавливаем в URL? Мы попытались установить customer.prefetchSize в URL, а также при подключении потребителей, и это, похоже, ничего не дало.
1 ответ
Решение
Параметры URI библиотеки NMS будут иметь префикс "nms". вместо "JMS." которая является причиной вашей проблемы. Так что в вашем случае вам нужно использовать:
nms.prefetchPolicy.queuePrefetch=1