How to gather information for Novell using threads.txt, when WebAccess causes High Utilization

  • 7010804
  • 20-Sep-2012
  • 14-Nov-2014

Environment

Novell GroupWise 2012
Novell GroupWise 2012 SP1
SuSE Linux Enterprise Server 10
SuSE Linux Enterprise Server 11

Situation

Ever so often the server goes into high utilization.
Java/Tomcat is using up a lot of memory.
WebAccess causing the server to cause the CPU to go to 100%
WebAccess locks up or stops responding.

Resolution

The purpose of this TID is to inform customers and engineers how to gather what WebAccess is doing, into a single file.  These steps will cause WebAccess to dump it's threads or working processes into a file that Novell Development can analyze to fix the issue.

1)  GroupWise MUST be upgraded to 2012 SP1 or later.  Changes were made for SP1 and newer that will allow WebAccess to dump it's process threads to a text file.

2)  When the problem starts to happen, go to the WebAccess Log directory located at /var/opt/novell/groupwise/webaccess/logs/ and create a file called threads.txt.
3)  Change the permissions on threads.txt so it has RW and the owner is either Tomcat or root.  Can also change the permissions by using the command: chmod ugo+rw threads.txt.  Once WebAccess has the permissions, it will automatically start writing to the file, no restart of any service is needed.
4)  The file will store a maximum of 10Mb before it quits writing.  Once the file is full, or once the process is ready to be restarted, remove the file from the directory.  WebAccess will NOT replace or try and recreate a replacement file, if this file gets full or removed from the directory.  If the file is created before the problem happens, the file will just get filled with useless information that is of no benefit to the development team.

Additional Information

It can also be of benefit when troubleshooting WebAccess performance or stability issues to make sure that Tomcat has enough memory.  By default will use about 512Mb of memory, in larger systems, this will not be enough. 
 
Java/Tomcat will use as much memory as it is given.  If the server is only used as a WebServer, for WebAccess and or iManager/OES then more memory can/should be given to Java/Tomcat. 
 
More memory can also help with stability and performance problems. As a example, in SLES 11 using Tomcat6, edit /etc/sysconfig/tomcat6 and make the following change:
 
CATALINA_OPTS="-Xthr:minimizeUserCPU -Xms1024M -Xmx4096M". 
 
This sets the initial memory to 1Gb and the max to 4Gb. 
 
The change will depend on the version of SLES and Tomcat being used and if it's OES or not, and how much memory is on the box and how much you are willing to give it, though 4Gb is not required.  The default of 512Mb is acceptable in most situations.

To configure the Java heap for OES2 and OES11 see KB 7009773 (How to change the Tomcat Java Heap Size on OES2 and OES11).