Storing context with exchanges

2009-04-12 Thread huntc

I have two routes (A & B) that are in-out in nature. The client calls on A, A
calls on B and then the reply is sent back from B to A and then back to the
client.

I'd like to store some context information relating to the client
interaction with A and then have that available when B replies to A. A
should know nothing of this context.

Is there a way of matching an exchange received from B with the original
exchange sent to A?

Kind regards,
Christopher
-- 
View this message in context: 
http://www.nabble.com/Storing-context-with-exchanges-tp23017939p23017939.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.



Re: Router Blocked by full Destination Route Queue

2009-04-12 Thread yesnid

Hello, 

Below you will find a simplified example, of what my router is doing,
basically recieving on one queue and then resending on another in this
example, now to get the test working properly, have a producer send messages
to the recieving queue and no one listening to the destination queue
eventually the router will hang.

My producers are connecting with the following, settings to the broker;
Delivery Mode = persistent, Message TTL = 0 (Essentially infinite),
transacted = false, session = auto acknowledge.

To see the problem faster you can set the memory in the policy entry for you
queue to lower, I suggest really low so that the problem appears really fast
and you don't have to wait to see it appear.

public class TestCamelRouter extends RouteBuilder
{
final static String BEAN_NAME = "TestCamelRouter";
final static String BEAN_METHOD = "route";

@RecipientList
public List route(Exchange exchange)
{
ArrayList returnSet = new ArrayList();
returnSet.add("JMS-BROKER" + ":queue:" + "TestDeliveryQueue");
return returnSet;
}

@Override
public void configure() throws Exception
{
from("JMS-BROKER" + ":queue:" +
"RecievingQueue").beanRef(TestCamelRouter.BEAN_NAME,
TestCamelRouter.BEAN_METHOD);
}

public static void main(String[] args)
{
JndiContext jndiContext = null;
try
{
jndiContext = new JndiContext();
jndiContext.bind(TestCamelRouter.BEAN_NAME, new 
TestCamelRouter());
}
catch (Exception e)
{
e.printStackTrace();
return;
}
CamelContext context = new DefaultCamelContext(jndiContext);
ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory("tcp://localhost:61616");
factory.setDispatchAsync(true);
context.addComponent("JMS-BROKER",
JmsComponent.jmsComponentAutoAcknowledge(factory));
try
{
context.addRoutes(new TestCamelRouter());
context.start();
while (true)
Thread.sleep(6);
}
catch (Exception e)
{
e.printStackTrace();
return;
}
}

}


 




huntc wrote:
> 
> Can you please provide the route's specification in code or XML. This will
> give us a better chance of answering your question.
> 
> Having said that, sounds like you've got an internal seda queue... I would
> have thought that an exception would be thrown once the queue becomes
> full. By default a seda queue can only hold 1000 items.
> 
> If it is a JMS queue, then would setting the time to live option be useful
> to you?
> 

-- 
View this message in context: 
http://www.nabble.com/Router-Blocked-by-full-Destination-Route-Queue-tp22981898p23012582.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.



Re: Router Blocked by full Destination Route Queue

2009-04-12 Thread yesnid

Can you extrapolate on what you mean by this? I thought I was using
persistent queues, but what makes you think that, that should solve this
issue?

Thank you.

Bruno Borges wrote:
> 
> Maybe you should use a persistent queue, for later processing.
> 
> 
> Bruno Borges
> blog.brunoborges.com.br
> +55 21 76727099
> 
> "The glory of great men should always be
> measured by the means they have used to
> acquire it."
> - Francois de La Rochefoucauld
> 
> 
> On Thu, Apr 9, 2009 at 10:47 PM, yesnid  wrote:
> 
>>
>> Hello All,
>>
>> My router is becoming blocked by sending messages to a queue on which no
>> one
>> is taking messages from the queue, when the queue becomes full, the
>> router
>> is blocked waiting for more space in the queue to become free, any ideas
>> about how I could get around this? In my application it is possible that
>> applications listening to queues may come up and down for a shortwhile so
>> I
>> can't just simply purge a queue when there are no consumers. Also If I
>> wait
>> for the queue to become completely full before taking action it causes a
>> sort of cascade effect causing others to rapidly fill up as well.
>>
>> Thank you for the input, in advance.
>> --
>> View this message in context:
>> http://www.nabble.com/Router-Blocked-by-full-Destination-Route-Queue-tp22981898p22981898.html
>> Sent from the Camel - Users (activemq) mailing list archive at
>> Nabble.com.
>>
>>
> 
> 
> -
> Bruno Borges
> blog.brunoborges.com.br
> +55 21 76727099
> 
> "The glory of great men should always be
> measured by the means they have used to
> acquire it."
> - Francois de La Rochefoucauld
> 

-- 
View this message in context: 
http://www.nabble.com/Router-Blocked-by-full-Destination-Route-Queue-tp22981898p23012024.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.



Problem with Camel Spring configuration

2009-04-12 Thread Sagara Gunathunga
Hi all,
i tried for Camel ReportIncident tutorials with spring based
configuration, i have following DSL code to convert to Spring XML
configuration.

from("direct:start")
.setHeader(FileComponent.HEADER_FILE_NAME,
BeanLanguage.bean(FilenameGenerator.class, "generateFilename"))
.to("velocity:MailBody.vm")
.to("file://info");

i converted  above code as follows




  


 



but this will gives following error ,

2009-04-12 15:10:01,593 [btpool0-1  ] ERROR DeadLetterChannel
- Failed delivery for exchangeId:
ID-sagara/2380-1239529183484/0-0. On delivery attempt: 0 caught:
org.apache.camel.NoTypeConversionAvailableException: No type converter
available to convert from type: class
org.apache.camel.component.file.FileMessage to the required type:
java.io.InputStream with value FileMessage: info
org.apache.camel.NoTypeConversionAvailableException: No type converter
available to convert from type: class
org.apache.camel.component.file.FileMessage to the required type:
java.io.InputStream with value FileMessage: info
at 
org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:117)
at 
org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:65)

I think i have missed something on spring configuration , can any one
provide any clue for this ?

Thanks ,

Sagara