IBM Support

WSVR0605W hang in com.ibm.ws.cluster.selection.rule.RuleEtiquette.registerNotificationType

Troubleshooting


Problem

While starting a cluster, a WSVR0605W hung thread message may occur in a cluster member which can prevent a successful startup

Symptom

The following WSVR0605W hung thread message will be written to the SystemOut.log file...

[6/14/14 1:42:22:471 CEST] 00000027 ThreadMonitor W WSVR0605W: Thread "server.startup : 0" (00000020) has been active for 690849 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung.
at java.lang.Thread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:853)
at com.ibm.ws.cluster.selection.rule.RuleEtiquette.registerNotificationType(RuleEtiquette.java:328)
at com.ibm.ws.cluster.router.selection.IIOPSelectionCriteria.subset(IIOPSelectionCriteria.java:94)
at com.ibm.ws.cluster.selection.rule.RuleEtiquette.runRules(RuleEtiquette.java:259)
at com.ibm.ws.cluster.selection.rule.RuleEtiquette.triggerRuleUpdate(RuleEtiquette.java:202)
at com.ibm.ws.cluster.selection.rule.RuleEtiquette.handleNotification(RuleEtiquette.java:407)
at com.ibm.websphere.cluster.topography.DescriptionA.notifyListeners(DescriptionA.java:289)
at com.ibm.ws.cluster.topography.IntrinsicDescriptionA.setMemento(IntrinsicDescriptionA.java:283)
at com.ibm.ws.cluster.topography.ClusterMemberDescriptionImpl.setMemento(ClusterMemberDescriptionImpl.java:341)
at com.ibm.ws.cluster.topography.ClusterDescriptionImpl.importFromStream(ClusterDescriptionImpl.java:828)
at com.ibm.ws.cluster.topography.DescriptionManagerA.update(DescriptionManagerA.java:269)
at com.ibm.ws.cluster.propagation.ClientClusterContextListenerImpl.receiveClientContext(ClientClusterContextListenerImpl.java:324)
...

Cause

Rule Updates run synchronously which can result in a lock condition when large updates are made.

Environment

This problem can occur when starting a cluster

Resolving The Problem

There is a way to get the Rule Updates to run asynchronously. This is done using a java.util.Timer to run the work on another thread after a configurable delay. The delay is configured by setting the property IBM_CLUSTER_RUNRULES_TIMER_TIME. The value is in milliseconds and can be up to 30 seconds (30000). The default value is zero which means to not run it asynchronously.

We recommend to start testing with the value set to 10000 (10 seconds).

To define the IBM_CLUSTER_RUNRULES_TIMER_TIME custom property for the cell:

1. In the administrative console, select System administration > Cell > Custom properties > New.
2. Provide a name and value for the cell property.
3. Click OK, and save your changes.

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Workload Management (WLM)","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"7.0;8.0;8.5;8.5.5","Edition":"Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21677945