Announcement Announcement Module
Collapse
No announcement yet.
Threads being stuck or hunged in weblogic Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Threads being stuck or hunged in weblogic

    Hi,

    Recently I had implemented Spring Integration in my project, & I am getting issues where in the threads are getting stuck @ weblogic..

    After taking the thread dumps here is the stack strace

    Code:
    "[ACTIVE] ExecuteThread: '49' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x029783d0 nid=0x202 waiting on condition [0xb9a3c000..0xb9a3f8f0]
    	at sun.misc.Unsafe.park(Native Method)
    	b
    	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:681)
    	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:837)
    	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1144)
    	at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:199)
    	at org.springframework.integration.channel.MessageChannelTemplate$TemporaryReplyChannel.receive(MessageChannelTemplate.java:288)
    	at org.springframework.integration.channel.MessageChannelTemplate$TemporaryReplyChannel.receive(MessageChannelTemplate.java:282)
    	at org.springframework.integration.channel.MessageChannelTemplate.doReceive(MessageChannelTemplate.java:235)
    	at org.springframework.integration.channel.MessageChannelTemplate.doSendAndReceive(MessageChannelTemplate.java:251)
    	at org.springframework.integration.channel.MessageChannelTemplate.sendAndReceive(MessageChannelTemplate.java:215)
    	at org.springframework.integration.gateway.AbstractMessagingGateway.sendAndReceiveMessage(AbstractMessagingGateway.java:176)
    	at org.springframework.integration.gateway.AbstractMessagingGateway.sendAndReceive(AbstractMessagingGateway.java:159)
    	at org.springframework.integration.gateway.AbstractMessagingGateway.sendAndReceive(AbstractMessagingGateway.java:150)
    	at org.springframework.integration.gateway.GatewayProxyFactoryBean.invokeGatewayMethod(GatewayProxyFactoryBean.java:203)
    	at org.springframework.integration.gateway.GatewayProxyFactoryBean.invoke(GatewayProxyFactoryBean.java:172)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    	at $Proxy190.getOptimizedQuotesForAllCoverages(Unknown Source)
    	at
    Here the getOptimizedQuotesForAllCoverages is my method which uses SI.

    The code in this method is

    Code:
    IGateway quoteGateway = context.getBean("quoteGateway",
    				IGateway.class);
    
    List<Message<QuotePOJO>> quoteMsgList = quoteGateway
    				.getOptimizedQuotesForAllCoverages(param);

    quoteGateway -- is a gateway.

    Also I am using Spring transaction manager on getOptimizedQuotesForAllCoverages but still the threads are timing out & are in active state doing nothing
    tx attribute used is
    <prop key="get*">PROPAGATION_REQUIRED,timeout_60,-java.lang.Exception</prop>

  • #2
    Could you please read this section of the reference manual and let us know if it helps?:
    http://static.springsource.org/sprin...ingle/#d4e1902

    Thanks,
    Mark

    Comment


    • #3
      Yes Sure Mark I will read it & let u know if it helps !!!

      thanks for your quick reply

      Comment


      • #4
        Thanks Mark this post helped me, I had a timeout at gateway level & now the return of a gateway is null. But now I want to catch the real thread which is waiting & timeout it so that the rest of the messages are returned to the gateway (since the return of the gateways is a list of Messages).

        for you understanding here is how I have implemented the spring integration

        Code:
         ~~~~~~~~~~~~~~ Gateway ~~~~~~~~~~~~~~
        	  				|
        				inputChannel
        					|
        			  	Filter (FilterChannel output)
        					|
        				   Router  	
        					|
        			   	       / \			
        			              /   \
        			            /      \
        			          /         \
        	           Quote Splitter     Student Splitter (SplitChannel)
        		      |||				    \\\
        		 (SA)			                     \\\
        		 /|||		      		              \\\	
        	 OutputChannel(Queue)                       \\\	
        		|		     			       /|\ 	
        		|		    		              / | \
        		|		   			     /  |  \
        		|		  		             |  /   |  
        		|				      (SA) (SA) (SA)
        		|					/     |     \	
        		|	      		        OutputChannel(Queue) 	
        		|						|		
        		|						|
        	  Aggrgator (which will aggregate all the messages for an user)
        
        ** SA is service Activator
        could you help me to identify the location in the downstream where I should put a timeout so that I get the o/p for a gateway. say if I am expecting a list of 6 msg, then I want to have a timeout set in downstream component in such a way that it timeout's the real thread(which is taking time) & returns rest of the messages in List.

        Not sure but can we have a timeout @ service Activator if the service activator method does not reply in x seconds then the thread is time out ?

        Please advise !
        Last edited by Paresh; Jan 5th, 2011, 05:56 PM.

        Comment


        • #5
          Hi,

          Can anybody help me in this ?

          Comment

          Working...
          X