Announcement Announcement Module
Collapse
No announcement yet.
WebSphere 6.1 + Default JMS Provider - Hanging WebSphere Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • WebSphere 6.1 + Default JMS Provider - Hanging WebSphere

    Hello,

    I am using the default WebSphere MQ provider as jndi resources in WebSphere 6.1 and Spring 2.0.5. The application seems to start properly, but when stopping/restarting, it tends to hang. Here is the output received:

    Code:
    [8/9/07 22:31:12:449 GMT] 00000052 ApplicationMg A   WSVR0217I: Stopping application: ElixirConnEar
    [8/9/07 22:31:12:465 GMT] 00000052 WebApp        A   SRVE0180I: [ElixirConnEar#ElixirConnWeb.war] [/elixirconn] [Servlet.LOG]: Destroying Spring FrameworkServlet 'elixirconn'
    [8/9/07 22:31:12:465 GMT] 00000052 SystemOut     O 22:31:12,465 INFO  [org.springframework.web.context.support.XmlWebApplicationContext] Closing [email protected]7fee7fee: display name [WebApplicationContext for namespace 'elixirconn-servlet']; startup date [Thu Aug 09 22:28:53 GMT 2007]; parent: [email protected]5c4c5c4c
    [8/9/07 22:31:12:465 GMT] 00000052 SystemOut     O 22:31:12,465 INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@28042804: defining beans [propertyConfigurer,viewResolver,testOutputController,viewNameController,urlMapping]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@5d365d36
    [8/9/07 22:31:12:465 GMT] 00000052 ServletWrappe I   SRVE0253I: [ElixirConnEar] [/elixirconn] [elixirconn]: Destroy successful.
    [8/9/07 22:31:12:465 GMT] 00000052 WebApp        A   SRVE0180I: [ElixirConnEar#ElixirConnWeb.war] [/elixirconn] [Servlet.LOG]: Closing Spring root WebApplicationContext
    [8/9/07 22:31:12:465 GMT] 00000052 SystemOut     O 22:31:12,465 INFO  [org.springframework.web.context.support.XmlWebApplicationContext] Closing [email protected]5c4c5c4c: display name [Root WebApplicationContext]; startup date [Thu Aug 09 22:28:50 GMT 2007]; root of context hierarchy
    [8/9/07 22:31:12:496 GMT] 00000052 SystemOut     O 22:31:12,496 INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5d365d36: defining beans [propertyConfigurer,dataSource,sessionFactory,genericDao,outputControlDao,outputFileProducer,outputFileMessageListener,org.springframework.jms.listener.DefaultMessageListenerContainer,jmsTemplate,jmsDestination,jmsFactory,taskExecutor,outputWorkflow,outputFileBuilder]; root of factory hierarchy
    You can see that the 'Destroy Successful' message for the WebApplicationContext never gets displayed.

    Code:
    <bean id="outputFileMessageListener" class="com.bc.elixirconn.mq.OutputFileMessageListener">
    	</bean>
    	
    	<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    		<property name="concurrentConsumers" value="5" />
    		<property name="connectionFactory" ref="jmsFactory" />
    		<property name="destination" ref="jmsDestination" />
    		<property name="messageListener" ref="outputFileMessageListener" />
    		<property name="taskExecutor" ref="taskExecutor" />
    	</bean>
    	
    	<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    		<property name="connectionFactory" ref="jmsFactory" /> 
    		<property name="defaultDestination" ref="jmsDestination" />
    	</bean>
    
    	<jee:jndi-lookup id="jmsDestination" jndi-name="jms/ElixirConnQueue" resource-ref="false" />
    	<jee:jndi-lookup id="jmsFactory" jndi-name="jms/ElixirConnQueueFactory" resource-ref="false" />
    
    	<bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
    		<property name="workManagerName" value="wm/default" />
    		<property name="resourceRef" value="false" />
    	</bean>
    Any light you could shine on this subject would be great.

    Thanks in advance.

  • #2
    Update

    I've let the code just run this is the output that I received
    Code:
    [8/9/07 22:43:41:348 GMT] 00000027 ThreadMonitor W   WSVR0605W: Thread "WorkManager.DefaultWorkManager : 6" (0000002c) has been active for 749336 milliseconds and may be hung.  There is/are 1 thread(s) in total in the server that may be hung.
    [8/9/07 22:43:41:348 GMT] 00000027 ThreadMonitor W   WSVR0605W: Thread "SoapConnectorThreadPool : 10" (00000052) has been active for 748915 milliseconds and may be hung.  There is/are 2 thread(s) in total in the server that may be hung.

    Comment


    • #3
      I've encoutered the same exact issue that you have. I've narrowed it down to this method:

      org.springframework.jms.listener.DefaultMessageLis tenerContainer#destroyListener.

      it forces the thread to wait, though I'm not sure what for (possibly for a message). Either way, given the lack of time I have I simply extended the DefaultMessageListenerContainer and implemented an empty 'destroyListener' method. Clearly, this is not the best solution, but it gets the job done. I'm using a topic queue for a basic, internal cache flush system so I'm not worried about message durability.

      Either way, it seems that connections are closed in the super class:

      org.springframework.jms.listener.AbstractMessageLi stenerContainer#shutdown().

      If you figure out a true fix please let me know. Hopefully this will help you.

      Comment


      • #4
        Hi, we ran into the same problem. Look at this page http://www-1.ibm.com/support/docview...id=swg1PK43397, it tells that the problem lies in Websphere, IBM realized the deadlock too, they have released a fix for this misbehaviour.

        We haven't tried to install the fix yet, because i got the jvm thread dumps indicating the deadlock today.

        Hope that helps. Sorry for the bad English.

        Comment


        • #5
          IBM link

          Hello,

          Having the same issue, can you re-type the IBM link as Im getting a 404 error.

          John

          Comment


          • #6
            Have you tried this against Spring 2.5 or one of the recent Spring 2.0.8 snapshots? We've fixed a related issue there:

            http://jira.springframework.org/browse/SPR-4124

            This revision uses a shared lock for closing sessions and connections now, in order to avoid a deadlock within the JMS resources.

            The issue was originally reported against Oracle AQ, but might apply to other JMS providers as well...

            Juergen

            Comment


            • #7
              Success. Yes the 2.5 build fixed the issue.

              Thanks

              Peter

              Comment

              Working...
              X