I am reading a message , transforming it and outputting on the JMS channel. The JMS channel uses a WorkManager Task Executor to read the messages and processes it. Even though we configured the WorkManager in application server to have 10 threads, only one thread is being used.
<si:chain id="prenotifchain" input-channel="preNotificationChannel" output-channel="notificationJMSChannel">
<si:transformer id="prenotif" method="transformRequest" ref="notificationTransformer"/>
</si:chain>
<si-jms:channel id="notificationJMSChannel" queue="notificationQueue" connection-factory="queueConnectionFactory" transaction-manager="txManager" task-executor="notificationTaskExecutor" />
<jee:jndi-lookup id="notificationQueue" jndi-name="jms/notifqueue"/>
<bean id="notificationTaskExecutor"
class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
<property name="workManagerName" value="notifWM" />
<property name="resourceRef" value="true" />
</bean>
Are we missing any configuration or is there another way to read multiple ?
Please, use
concurrency
attribute: