Hi,

we have removed the definition for creating an ActiveMQ broker from the 
spring-server.xml and are using an external one. In order to do so, we have 
configured <amq:connectionFactory.../> accordingly. This configuration is the 
same as we are using for several other camel-based applications (where we also 
use Spring's CachingConnectionFactory) accessing the same broker.

So we do not expect that this is a configuration error. What we also observed 
is that by replacing the CachingConnectionFactory by AMQ's 
PooledConnectionFactory, the failover works fine. However, an exception is 
thrown upon receiving a message, since somewhere in the code an 
org.springframework.jms.connection.CachingConnectionFactory instead of a 
javax.jms.ConnectionFactory is injected.

Best regards,
Philipp


Am 15.01.2013 um 20:57 schrieb Eric Charles <e...@apache.org>:

> Hi,
> 
> Interestting, this is the first time I hear about a real James with amq in a 
> failover configuration.
> 
> I guess you changed in spring-server.xml the block
> <amq:transportConnectors>
>   <amq:transportConnector uri="tcp://localhost:0" />
> </amq:transportConnectors>
> 
> Maybe a first test scenario would be to be sure James doesn't use the queue, 
> failingover amq, and begin to send again mail to james. The error may be due 
> because the fail over occurs while a transaction is occurring?
> 
> Thx, Eric
> 
> 
> On 15/01/2013 15:26, Philipp Krenn wrote:
>> Hi,
>> 
>> 
>> We are using James Server with an ActiveMQ master/slave configuration 
>> configured via failover: 
>> failover:(tcp://mq0.xxx:8080,tcp://mq1.xxx:8080)?jms.prefetchPolicy.all=0
>> When the master stops, we would expect a failover to the slave - this is 
>> working fine with other applications. However, James Server does not switch 
>> queue instance and keeps producing the following exception instead:
>> 
>> [ERROR] - Exception caught in RemoteDelivery.run() [Remote delivery thread 
>> (3)] [j.mailetcontext]
>> org.apache.james.queue.api.MailQueue$MailQueueException: Unable to dequeue 
>> next message (javax.jms.IllegalStateException: The Session is closed)
>>      at 
>> org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:170) 
>> ~[james-server-queue-jms-3.0-beta5-20130109.104230-723.jar:3.0-beta5-SNAPSHOT]
>>      at 
>> org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:771)
>>  ~[james-server-mailets-3.0-beta5-20130110.114225-802.jar:3.0-beta5-SNAPSHOT]
>>      at java.lang.Thread.run(Thread.java:679) [na:1.6.0_24]
>> Caused by: javax.jms.IllegalStateException: The Session is closed
>>      at 
>> org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731) 
>> ~[activemq-core-5.7.0.jar:5.7.0]
>>      at 
>> org.apache.activemq.ActiveMQSession.createQueue(ActiveMQSession.java:1169) 
>> ~[activemq-core-5.7.0.jar:5.7.0]
>>      at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source) ~[na:na]
>>      at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>  ~[na:1.6.0_24]
>>      at java.lang.reflect.Method.invoke(Method.java:616) ~[na:1.6.0_24]
>>      at 
>> org.springframework.jms.connection.CachingConnectionFactory$CachedSessionInvocationHandler.invoke(CachingConnectionFactory.java:344)
>>  ~[spring-jms-3.1.0.RELEASE.jar:3.1.0.RELEASE]
>>      at $Proxy87.createQueue(Unknown Source) ~[na:na]
>>      at 
>> org.apache.james.queue.jms.JMSMailQueue.deQueue(JMSMailQueue.java:107) 
>> ~[james-server-queue-jms-3.0-beta5-20130109.104230-723.jar:3.0-beta5-SNAPSHOT]
>>      ... 2 common frames omitted
>> 
>> The James Server keeps running and consumes 100% of the available CPU until 
>> it is manually restarted.
>> 
>> Thanks for looking into this issue.
>> 
>> 
>> Cheers,
>> Philipp

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to