[
https://issues.apache.org/jira/browse/CXF-2002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12701469#action_12701469
]
Freeman Fang commented on CXF-2002:
-----------------------------------
And If I use JMS Config like
<bean class="org.apache.cxf.transport.jms.JMSConfigFeature">
<property name="jmsConfig">
<bean
class="org.apache.cxf.transport.jms.JMSConfiguration">
<property name="connectionFactory">
<ref bean="myConnectionFactory" />
</property>
<property name="targetDestination">
<value>dynamicQueues/person.queue</value>
</property>
<property name="useJms11">
<value>true</value>
</property>
<property name="timeToLive">
<value>500000</value>
</property>
<property name="concurrentConsumers">
<value>1</value>
</property>
<property name="maxConcurrentConsumers">
<value>1</value>
</property>
<property name="maxSuspendedContinuations">
<value>1</value>
</property>
<property name="cacheLevel">
<value>2</value>
</property>
</bean>
</property>
</bean>
then the JMSDestination.activate() won't hang(I needn't change JMSFactory
source code in this case), but I will always get errors like
ERROR - DefaultMessageListenerContainer - Setup of JMS message listener invoker
failed - trying to recover
javax.jms.InvalidSelectorException:
org.apache.cxf.transports.jms.continuations=too-many
at
org.apache.activemq.selector.SelectorParser.parse(SelectorParser.java:46)
at
org.apache.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:199)
at
org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:1011)
at
org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:955)
at
org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:868)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.createConsumer(AbstractPollingMessageListenerContainer.java:437)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.createListenerConsumer(AbstractPollingMessageListenerContainer.java:216)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:297)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:254)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:870)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:810)
at
org.springframework.core.task.SimpleAsyncTaskExecutor$ConcurrencyThrottlingRunnable.run(SimpleAsyncTaskExecutor.java:192)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.activemq.selector.TokenMgrError: Lexical error at line 1,
column 5. Encountered: "a" (97), after : "."
at
org.apache.activemq.selector.SelectorParserTokenManager.getNextToken(SelectorParserTokenManager.java:1056)
at
org.apache.activemq.selector.SelectorParser.jj_ntk(SelectorParser.java:1162)
at
org.apache.activemq.selector.SelectorParser.multExpr(SelectorParser.java:353)
at
org.apache.activemq.selector.SelectorParser.addExpression(SelectorParser.java:319)
at
org.apache.activemq.selector.SelectorParser.comparisonExpression(SelectorParser.java:171)
at
org.apache.activemq.selector.SelectorParser.equalityExpression(SelectorParser.java:116)
at
org.apache.activemq.selector.SelectorParser.andExpression(SelectorParser.java:95)
at
org.apache.activemq.selector.SelectorParser.orExpression(SelectorParser.java:74)
at
org.apache.activemq.selector.SelectorParser.JmsSelector(SelectorParser.java:66)
at
org.apache.activemq.selector.SelectorParser.parse(SelectorParser.java:43)
... 12 more
when process inbound jms message.
Any help is appreciated.
Thanks
Freeman
> Server async jms transport needs dynamic mechanism to throttle message
> consumption
> ----------------------------------------------------------------------------------
>
> Key: CXF-2002
> URL: https://issues.apache.org/jira/browse/CXF-2002
> Project: CXF
> Issue Type: Improvement
> Components: Transports
> Affects Versions: 2.0.9, 2.1.3, 2.0.10
> Reporter: Ron Gavlin
> Assignee: Sergey Beryozkin
>
> Currently, the server-side async jms transport has no mechanism to throttle
> consumption of incoming messages. This becomes problematic in scenarios where
> a large backlog of messages exists on the input queue. In this case, it is
> likely that the cxf server will overload its internal work item queues
> resulting in problems. A dynamic throttling mechanism on the async jms server
> is required to avoid this problem.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.