It's quite possible I'm being dense here, but when I am setting up a 
PooledConnectionFactory in java code for the camel ActiveMQ component, the 
component is instead creating connections for a broker at 
"tcp://localhost:61616" irrespective of what I have passed in to setBrokerURL.  
For instance, the following code        

        PooledConnectionFactory pooledConnectionFactory = new 
PooledConnectionFactory();
        pooledConnectionFactory.setMaxConnections(8);
        pooledConnectionFactory.setMaximumActive(500);

        ActiveMQComponent activeMQComponent = 
ActiveMQComponent.activeMQComponent("tcp://localhost:61618");     
        activeMQComponent.setUsePooledConnection(true);
        activeMQComponent.setConnectionFactory(pooledConnectionFactory);
        camelContext.addComponent("amq", activeMQComponent);

results in this output in the logs:

        1916 [ActiveMQ Task-1] INFO 
org.apache.activemq.transport.failover.FailoverTransport - Successfully 
connected to tcp://localhost:61616

Note the port mismatch.  I confirmed it is indeed working with a broker on 
localhost at port 61616 whenever  I setup a route that includes a 
to("amq:queue:SomeQueue").  The same behavior occurs when I change the 
hostname/ip as well - it still connects to localhost:61616.  

Then once I comment out related to using pooling and keep only the following 
two lines:

        ActiveMQComponent activeMQComponent = 
ActiveMQComponent.activeMQComponent("tcp://localhost:61618");
        camelContext.addComponent("amq", activeMQComponent);

Then this works as expected and the camel routes are working against  the 
broker I have listening on port 61618.  

Am I missing something obvious with using PooledConnectionFactory, is this is a 
PEBCAK, or is there really something wrong with setting up pooled connections 
in the activemq component this way? 


Reply via email to