Announcement Announcement Module
Collapse
No announcement yet.
jms:inbound-channel-adapter Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • jms:inbound-channel-adapter

    Hi,

    my jms:inbound-channel-adapter listens from jboss to WL server, everything is working but if after it is running, i will restart the WL jms server.
    i will get a reconnecting problem, and i must restart jboss also for continue listen to the jms server.
    i think its related to jndi lazy lookup or cache false..i didnt resolve this problem, anyone knows how to fix this?

    Thanks.

  • #2
    solution

    the problem is with 2 thin client jars of weblogic !
    i managed to solve this problem by making this workaround:
    i made a jmsTemplate which extends the jmsTemplate and overrides
    public Object execute(SessionCallback action, boolean startConnection)
    and in case of UncategorizedJmsException
    i load all the applicationcontext again with a while loop untill it will be successful.
    i gave the jms:inbound-channel-adapter only a jms-Template.
    i thought sharing this workaround, and if anyone knows another way to solve this issue, is welcome to do also.

    Comment


    • #3
      Originally posted by ok2b View Post
      i load all the applicationcontext again with a while loop untill it will be successful.
      That sounds like a dangerous approach. Can you provide more information about the problem?

      Comment


      • #4
        Hi

        just realized you wanted to know about the problem :
        well the problem occurs after there is a connection and meanwhile you restart the weblogic server
        see here :
        http://forums.oracle.com/forums/thre...719590#3719590

        here is my stack trace:
        20:47:07,747 ERROR [LoggingHandler] org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSException: <055053> <java.rmi.MarshalException: CORBA COMM_FAILURE 1398079696 Maybe; nested exception is:
        org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe >
        at org.springframework.jms.support.JmsUtils.convertJm sAccessException(JmsUtils.java:308)
        at org.springframework.jms.support.JmsAccessor.conver tJmsAccessException(JmsAccessor.java:168)
        at org.springframework.jms.core.JmsTemplate.execute(J msTemplate.java:474)
        at org.springframework.jms.core.JmsTemplate.receiveSe lected(JmsTemplate.java:700)
        at org.springframework.jms.core.JmsTemplate.receive(J msTemplate.java:682)
        at org.springframework.jms.core.JmsTemplate.receive(J msTemplate.java:674)
        at org.springframework.jms.core.JmsTemplate.receiveAn dConvert(JmsTemplate.java:784)
        at org.springframework.integration.jms.JmsDestination PollingSource.receive(JmsDestinationPollingSource. java:68)
        at org.springframework.integration.endpoint.SourcePol lingChannelAdapter.doPoll(SourcePollingChannelAdap ter.java:76)
        at org.springframework.integration.endpoint.AbstractP ollingEndpoint$Poller.innerPoll(AbstractPollingEnd point.java:232)
        at org.springframework.integration.endpoint.AbstractP ollingEndpoint$Poller.poll(AbstractPollingEndpoint .java:216)
        at org.springframework.integration.endpoint.AbstractP ollingEndpoint$Poller.run(AbstractPollingEndpoint. java:209)
        at org.springframework.integration.scheduling.SimpleT askScheduler$ErrorHandlingRunnableWrapper.run(Simp leTaskScheduler.java:307)
        at java.util.concurrent.Executors$RunnableAdapter.cal l(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRunAndRe set(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(Future Task.java:150)
        at org.springframework.integration.scheduling.SimpleT askScheduler$TriggeredTask.run(SimpleTaskScheduler .java:256)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(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: <055053> <java.rmi.MarshalException: CORBA COMM_FAILURE 1398079696 Maybe; nested exception is:
        org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe >
        at weblogic.jms.client.JMSConnectionFactory.setupJMSC onnection(JMSConnectionFactory.java:272)
        at weblogic.jms.client.JMSConnectionFactory.createCon nectionInternal(JMSConnectionFactory.java:299)
        at weblogic.jms.client.JMSConnectionFactory.createQue ueConnection(JMSConnectionFactory.java:179)
        at org.springframework.jms.connection.SingleConnectio nFactory.doCreateConnection(SingleConnectionFactor y.java:337)
        at org.springframework.jms.connection.SingleConnectio nFactory.initConnection(SingleConnectionFactory.ja va:290)
        at org.springframework.jms.connection.SingleConnectio nFactory.createConnection(SingleConnectionFactory. java:227)
        at org.springframework.jms.connection.SingleConnectio nFactory.createQueueConnection(SingleConnectionFac tory.java:242)
        at org.springframework.jms.core.JmsTemplate102.create Connection(JmsTemplate102.java:170)
        at org.springframework.jms.core.JmsTemplate.execute(J msTemplate.java:461)
        ... 17 more
        Caused by: java.rmi.MarshalException: CORBA COMM_FAILURE 1398079696 Maybe; nested exception is:
        org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
        at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSyst emException(Util.java:189)
        at javax.rmi.CORBA.Util.mapSystemException(Util.java: 67)
        at weblogic.jms.frontend._FEConnectionFactoryRemote_S tub.connectionCreateRequest(_FEConnectionFactoryRe mote_Stub.java:106)
        at weblogic.jms.client.JMSConnectionFactory.setupJMSC onnection(JMSConnectionFactory.java:238)
        ... 25 more
        Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
        at com.sun.corba.se.impl.logging.ORBUtilSystemExcepti on.connectionAbort(ORBUtilSystemException.java:240 0)
        at com.sun.corba.se.impl.logging.ORBUtilSystemExcepti on.connectionAbort(ORBUtilSystemException.java:241 8)
        at com.sun.corba.se.impl.transport.SocketOrChannelCon nectionImpl.readBits(SocketOrChannelConnectionImpl .java:354)
        at com.sun.corba.se.impl.transport.SocketOrChannelCon nectionImpl.read(SocketOrChannelConnectionImpl.jav a:289)
        at com.sun.corba.se.impl.transport.ReaderThreadImpl.d oWork(ReaderThreadImpl.java:80)
        at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoo lImpl$WorkerThread.performWork(ThreadPoolImpl.java :471)
        at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoo lImpl$WorkerThread.run(ThreadPoolImpl.java:500)
        Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 211 completed: No
        at com.sun.corba.se.impl.logging.ORBUtilSystemExcepti on.ioexceptionWhenReadingConnection(ORBUtilSystemE xception.java:2484)
        at com.sun.corba.se.impl.logging.ORBUtilSystemExcepti on.ioexceptionWhenReadingConnection(ORBUtilSystemE xception.java:2502)
        at com.sun.corba.se.impl.protocol.giopmsgheaders.Mess ageBase.readGIOPHeader(MessageBase.java:116)
        at com.sun.corba.se.impl.protocol.giopmsgheaders.Mess ageBase.readGIOPMessage(MessageBase.java:98)
        at com.sun.corba.se.impl.transport.CorbaContactInfoBa se.createMessageMediator(CorbaContactInfoBase.java :153)
        at com.sun.corba.se.impl.transport.SocketOrChannelCon nectionImpl.readBits(SocketOrChannelConnectionImpl .java:314)
        ... 4 more
        Caused by: java.io.IOException: End-of-stream
        at com.sun.corba.se.impl.transport.SocketOrChannelCon nectionImpl.readFully(SocketOrChannelConnectionImp l.java:666)
        at com.sun.corba.se.impl.transport.SocketOrChannelCon nectionImpl.read(SocketOrChannelConnectionImpl.jav a:527)
        at com.sun.corba.se.impl.protocol.giopmsgheaders.Mess ageBase.readGIOPHeader(MessageBase.java:112)
        ... 7 more

        i decided not to go with the previous solution, i prefer try to find out how to load only specific beans and not the whole context.
        Last edited by ok2b; Aug 27th, 2009, 12:51 PM.

        Comment


        • #5
          Hi,
          Kindly let me know how do we configure jms:inbound or outbound channel adapter to use weblogic 10.3.3.jms service provider. Do we need to use spring jms template? But gives me an error and does not have placeholder to specify queue name.

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
          "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
          <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
          <property name="environment">
          <props>
          <prop key="java.naming.factory.initial">weblogic.jndi.WL InitialContextFactory</prop>
          <prop key="java.naming.provider.url">t3://localhost:7001</prop>
          </props>
          </property>
          </bean>

          <bean id="queueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryB ean">
          <property name="jndiTemplate">
          <ref bean="jndiTemplate" />
          </property>
          <property name="jndiName">
          <value>ConnectionFactory-0</value>
          </property>
          </bean>

          <bean id="jmsDestinationResolver" class="org.springframework.jms.support.destination .JndiDestinationResolver">
          <property name="jndiTemplate">
          <ref bean="jndiTemplate" />
          </property>
          <property name="cache">
          <value>true</value>
          </property>
          </bean>

          <bean id="queueTemplate" class="org.springframework.jms.core.JmsTemplate">
          <property name="connectionFactory">
          <ref bean="queueConnectionFactory" />
          </property>
          <property name="destinationResolver">
          <ref bean="jmsDestinationResolver" />
          </property>
          </bean>

          <!--
          <bean id="jmsSender" class="jms.QueueSender">
          <property name="jmsTemplate">
          <ref bean="queueTemplate" />
          </property>
          -->

          </bean>
          </beans>

          thanks

          Comment

          Working...
          X