Hi everyone,
I'm working with camel to build a server that involves a lot of parallel
processing, and some of my messages get stuck somewhere. I will try to
explain my problem by explaining what I'm doing.
I have this camel route :
The idea is that the REST request that triggers the route contains an array
of tokens. The splitter component creates 1 message/token and gives it to
APNS. For example, I send 1 request with 10000 tokens. My APNS component
should receive 10000 camel messages and send 10000 notifications.
It works fine, however the splitter creates each message when the previous
one has finished the route. I saw that the camel-splitter
<http://camel.apache.org/splitter.html> had settings to allow parallel
processing. At first I just set in my route. It still works fine, but I
wasn't happy with the default settings of the thread pool. That's where I
got stuck.
First, I tryed to set the MaxQueueSize of the defaultThreadPoolProfile of my
camelContext :
Setting the maxQueueSize to -1 causes some messages to get stuck. For
example, When I send my 10000 tokens, the APNS component receives ~2000
messages, and the 8000 others are stuck somewhere.
Then I tryed to set the threadpool of the splitter manually in my route
configuration, this way :
This brings the same issue, some messages are lost somewhere.
Any ideas to solve this problem ? Thanks.
I'm working with camel to build a server that involves a lot of parallel
processing, and some of my messages get stuck somewhere. I will try to
explain my problem by explaining what I'm doing.
I have this camel route :
The idea is that the REST request that triggers the route contains an array
of tokens. The splitter component creates 1 message/token and gives it to
APNS. For example, I send 1 request with 10000 tokens. My APNS component
should receive 10000 camel messages and send 10000 notifications.
It works fine, however the splitter creates each message when the previous
one has finished the route. I saw that the camel-splitter
<http://camel.apache.org/splitter.html> had settings to allow parallel
processing. At first I just set in my route. It still works fine, but I
wasn't happy with the default settings of the thread pool. That's where I
got stuck.
First, I tryed to set the MaxQueueSize of the defaultThreadPoolProfile of my
camelContext :
Setting the maxQueueSize to -1 causes some messages to get stuck. For
example, When I send my 10000 tokens, the APNS component receives ~2000
messages, and the 8000 others are stuck somewhere.
Then I tryed to set the threadpool of the splitter manually in my route
configuration, this way :
This brings the same issue, some messages are lost somewhere.
Any ideas to solve this problem ? Thanks.