2016-07-22 3 views
1

У меня есть файл конфигурации весной интеграции, как:Каковы максимальные адаптеры входящего канала Spring?

<int-jms:inbound-channel-adapter 
     channel="fromjmsRecon" 
     jms-template="jmsTemplate" 
     destination-name="com.mycompany.inbound.recon"> 
    <int:poller fixed-delay="3000" max-messages-per-poll="1"/> 
</int-jms:inbound-channel-adapter> 
<int:publish-subscribe-channel id="fromjmsRecon"/> 
<int:service-activator input-channel="fromjmsRecon" 
         ref="processInboundReconFile" 
         method="execute"/> 

... 10 More inbound channels ... 

<int-jms:inbound-channel-adapter 
     channel="fromjmsVanRecon" 
     jms-template="jmsTemplate" 
     destination-name="com.mycompany.inbound.another"> 
    <int:poller fixed-delay="3000" max-messages-per-poll="1"/> 
</int-jms:inbound-channel-adapter> 
<int:publish-subscribe-channel id="fromjmsVanRecon"/> 
<int:service-activator input-channel="fromjmsVanRecon" 
         ref="processInboundAnother" 
         method="execute"/> 

</beans> 

Есть 11 входящих каналов-адаптера. Первые 10 подключаются к ActiveMQ, но 11-й никогда не делает. Не имеет значения порядок, в котором перечислены эти адаптеры, 11-й всегда игнорируется. Адаптер службы инициализирован, но адаптер канала никогда не подключается к ActiveMQ.

Есть ли ограничение на количество входящих каналов? Есть ли свойство, которое я могу установить где-то, что изменяет этот предел?

Благодарим за помощь.

ответ

2

Правильно, есть предел называется TaskScheduler пула потоков с размером 10:

http://docs.spring.io/spring-integration/reference/html/configuration.html#namespace-taskscheduler

Итак, рассмотрит, чтобы изменить его размер с spring.integration.taskScheduler.poolSize собственности, использование TaskExecutor для этих адаптеров перекладывать задачи на другие потоки и не ешьте дорого TaskScheduler.

Существует другой подход: не используйте <int-jms:inbound-channel-adapter>, но переключиться на <int-jms:message-driven-channel-adapter>, который слушает по своей природе и гораздо лучше.

+0

Большое спасибо. Это был правильный ответ. –