2016-07-22 17 views
1

Ich habe eine Feder Integrationskonfigurationsdatei wie:Was sind die maximalen Spring-Eingangskanaladapter?

<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> 

Es gibt 11 Inbound-Kanal-Adapters. Die ersten 10 stellen eine Verbindung mit ActiveMQ her, aber die 11. Verbindung wird nie hergestellt. Es spielt keine Rolle, in welcher Reihenfolge diese Adapter aufgeführt sind, der 11. wird immer ignoriert. Der Dienstadapter wird initialisiert, aber der Kanaladapter stellt keine Verbindung zu ActiveMQ her.

Gibt es eine Begrenzung für die Anzahl der eingehenden Kanaladapter? Gibt es eine Eigenschaft, die ich irgendwo einstellen kann, die dieses Limit ändert?

Danke für Ihre Hilfe.

Antwort

2

Richtig, es wird Grenze genannt TaskScheduler Thread-Pool mit einer Größe von 10:

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

Also, betrachten seine Größe mit spring.integration.taskScheduler.poolSize Eigenschaft zu ändern, Nutzungs TaskExecutor für diesen Adapter Aufgaben an andere Threads zu verschieben und nicht essen teuer TaskScheduler.

Es gibt anderen Ansatz: Benutzen Sie nicht <int-jms:inbound-channel-adapter>, sondern wechseln zu <int-jms:message-driven-channel-adapter>, die von der Natur und viel besser hören ist.

+0

Vielen Dank. Das war die richtige Antwort. –