Announcement Announcement Module
Collapse
No announcement yet.
Websphere 7 Default messaging provider with JMS-Channel Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Websphere 7 Default messaging provider with JMS-Channel

    Hi,

    we set up an application on Websphere 7 with a JMS-Channel for asynchronous communication inside of the application. Like this:

    Code:
    <int-jms:channel id="notificationChannel" queue="notificationQueue" connection-factory="connectionFactory" transaction-manager="transactionManager" task-executor="websphereWorkManager"  concurrency="5-20"/>
    After the application is deployed on the server the following log statements appear permanently in the System logs:

    Code:
    [8/13/12 17:02:42:961 CEST] 00000137 DefaultMessag W org.springframework.jms.listener.DefaultMessageListenerContainer handleListenerSetupFailure Setup of JMS message listener invoker failed for destination 'queue://VDZ.NOTI?busName=APPLICATION.WASSTUD1Cell01.Bus' - trying to recover. Cause: Local JMS transaction failed to commit; nested exception is javax.jms.IllegalStateException: CWSIA0053E: An exception was received during the call to the method JmsSessionImpl.commitTransaction (#1): javax.resource.spi.IllegalStateException: CWSJR1121E: An internal error has occurred. During the call to the method getManagedConnection the exception javax.resource.spi.ResourceAllocationException: CWSJR1028E: An internal error has occurred. The exception com.ibm.ws.sib.processor.exceptions.SIMPConnectionUnavailableException: CWSIK0022E: The connection is closed to messaging engine VDZCluster01.000-APPLICATION.WASSTUD1Cell01.Bus and cannot be used. was received in method createManagedConnection. was thrown..
    [8/13/12 17:02:42:966 CEST] 00000137 DefaultMessag I org.springframework.jms.listener.DefaultMessageListenerContainer refreshConnectionUntilSuccessful Successfully refreshed JMS Connection
    This is not directly a problem because the application still runs and still consumes messages, but after some time the following warnings appear:

    Code:
    [8/13/12 15:45:33:439 CEST] 00000036 ThreadMonitor W   WSVR0605W: Thread "WorkManager.DefaultWorkManager : 6" (00000027) has been active for 684246 milliseconds and may be hung.  There is/are 6 thread(s) in total in the server that may be hung.
    	at org.springframework.jms.listener.AbstractJmsListeningContainer.isRunning(AbstractJmsListeningContainer.java:337)
    	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:951)
    	at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
    	at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:264)
    	at java.security.AccessController.doPrivileged(AccessController.java:202)
    	at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1137)
    	at com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl.go(WorkWithExecutionContextImpl.java:199)
    	at com.ibm.ws.asynchbeans.CJWorkItemImpl.run(CJWorkItemImpl.java:188)
    	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
    Do you have any advice what is happening here and how we can fix this?

    The application is running on a Websphere Application Server 7.0.0.21 clustered environment with two servers. So a messaging engine is only started on one of the servers. The other messaging engine is only in state 'Joined'.

  • #2
    Some other thread is holding the lifecycleMonitor lock...

    Code:
    	public final boolean isRunning() {
    		synchronized (this.lifecycleMonitor) {  // line 337
    			return (this.running && runningAllowed());
    		}
    	}
    It's generally only held during initialization or shutdown, and for very short periods otherwise.

    I suggest you take a look at a thread dump (e.g. with jstack or VisualVM) to see which thread is holding it, and why.

    Comment


    • #3
      Also, if your only concern is to accomplish async communication within the same application then you can use a simpler approach with Executor channel - http://static.springsource.org/sprin...-configuration

      Comment

      Working...
      X