Hi,
How to reconnect after restart foreign JMS server using JmsTemplate class?
I have jmsConnector.xml :
My system put messages into JMS and when JMS become unavailable i received:Code:<bean id="pidJMSJndiTemplate" class="pl.bph.rafik.connector.JndiTemplate"> <!-- lazy-init="true" --> <property name="environment" > <props> <prop key="java.naming.provider.url">${jms.services.pidJMSJndiTemplate.jndi.url}</prop> <prop key="java.naming.factory.initial">${jms.services.pidJMSJndiTemplate.jndi.factory}</prop> <prop key="java.naming.security.principal">${jms.services.pidJMSJndiTemplate.jndi.principal}</prop> <prop key="java.naming.security.credentials">${jms.services.pidJMSJndiTemplate.jndi.credentials}</prop> </props> </property> </bean> <bean id="pidConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true"> <!-- lazy-init="true" --> <property name="jndiTemplate" ref="pidJMSJndiTemplate"/> <property name="jndiName" value="${jms.services.pidJMSJndiTemplate.jndi.connectionFactory}" /> <!--<property name="cache" value="false" /> --> </bean> <bean id="pidQueueDestination" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true"> <!-- lazy-init="true" --> <property name="jndiTemplate" ref="pidJMSJndiTemplate"/> <property name="jndiName" value="${jms.services.pidJMSJndiTemplate.jndi.queueDestination}"/> <!--<property name="cache" value="false" /> --> </bean> <bean id="pidJmsTemplate" name="pidJmsTemplate" class="org.springframework.jms.core.JmsTemplate" lazy-init="true"> <!-- lazy-init="true" --> <property name="connectionFactory" ref="pidConnectionFactory"/> <property name="defaultDestination" ref="pidQueueDestination"/> <property name="receiveTimeout" value="${jms.services.pidJMSJndiTemplate.jndi.receiveTimeout}"/> </bean>
My system coudn't reconnect automatically, so how can i do it? Now i have to restart my system and then connection is established:/Code:02-01-2013 15:52:34.109 INFO [JmsManagerImpl]:{51line} - 'Rafik' - Error JMS sending - org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSE xception: [JMSClientExceptions:055053]Error creating connection to the server: java.rmi.ConnectException: This RJVM has already been shutdown 548676333052254974S:119.0.146.44:[7003,7003,-1,-1,7003,-1,-1,0,0]:119.0.146.44:7002,119.0.146.44 :7003,119.0.146.45:7002,119.0.146.45:7003,119.0.146.46:7002,119.0.146.46:7003:NetDomain:pb4_03 org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSException: [JMSClientExceptions:055053]Error creating connection to the server: java.rmi. ConnectException: This RJVM has already been shutdown 548676333052254974S:119.0.146.44:[7003,7003,-1,-1,7003,-1,-1,0,0]:119.0.146.44:7002,119.0.146.44:7003,119.0.146.45:7002,119.0.146.45:7003,119.0.146.46:7002,119.0.146.46:7003:Ne tDomain:pb4_03 at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316) at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469) at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:534) at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:612) at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:604) at pl.bph.rafik.managers.impl.JmsManagerImpl.generateMessages(JmsManagerImpl.java:45) at pl.bph.rafik.jobs.rejectedtransactions.writer.RejectedTransactionsSendNotificationWriter.write(RejectedTransactionsSendNotificationWriter.java:68) at org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:171) at org.springframework.batch.core.step.item.SimpleChunkProcessor.doWrite(SimpleChunkProcessor.java:150) at org.springframework.batch.core.step.item.SimpleChunkProcessor.write(SimpleChunkProcessor.java:269) at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:194) at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:74) at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:386) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:264) at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:76) at org.springframework.batch.repeat.support.TaskExecutorRepeatTemplate$ExecutingRunnable.run(TaskExecutorRepeatTemplate.java:258) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: weblogic.jms.common.JMSException: [JMSClientExceptions:055053]Error creating connection to the server: java.rmi.ConnectException: This RJVM has already been shutdown 548676333052254974S:119.0.146.44:[7003,7003,-1,-1,7003,-1,-1, 0,0]:119.0.146.44:7002,119.0.146.44:7003,119.0.146.45:7002,119.0.146.45:7003,119.0.146.46:7002,119.0.146.46:7003:NetDomain:pb4_03 at weblogic.jms.client.JMSConnectionFactory.setupJMSConnection(JMSConnectionFactory.java:258) at weblogic.jms.client.JMSConnectionFactory.createConnectionInternal(JMSConnectionFactory.java:285) at weblogic.jms.client.JMSConnectionFactory.createConnection(JMSConnectionFactory.java:191) at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:184) at org.springframework.jms.core.JmsTemplate.access$0(JmsTemplate.java:1) at org.springframework.jms.core.JmsTemplate$JmsTemplateResourceFactory.createConnection(JmsTemplate.java:1031) at org.springframework.jms.connection.ConnectionFactoryUtils.doGetTransactionalSession(ConnectionFactoryUtils.java:297) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:453) at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:540) at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:604) at pl.bph.rafik.managers.impl.JmsManagerImpl.generateMessages(JmsManagerImpl.java:46) at pl.bph.rafik.jobs.rejectedtransactions.writer.RejectedTransactionsSendNotificationWriter.write(RejectedTransactionsSendNotificationWriter.java:68) at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:194) at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:75) at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:386) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:76) at org.springframework.batch.repeat.support.TaskExecutorRepeatTemplate$ExecutingRunnable.run(TaskExecutorRepeatTemplate.java:258) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:887) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:909)


Reply With Quote