4 immediate actions you need to take in any new Jazz environment.

Off
Strongback Consulting

IBM Engineering Lifecycle Management is a suite of tools that includes the following:

  • Workflow Management
  • Requirements Management DOORs Next
  • Test Management
  • Lifecycle Optimization – Engineering Insights
  • Jazz Reporting Services
  • Rhapsody Model Managment
  • Rhapsody System Design Management

The tips below will apply to nearly any of these products and configurations.

Use a shortcut or soft link to the installation directory with version number.

All of these products use a central Jazz Team Server which handles user and license management for the array of tools. When you install the product, it will default to the following installation directories:
For Windows: C:\Program Files\IBM\JazzTeamServer
For Linux/Unix: /opt/IBM/JazzTeamServer

Don’t use the default directory! Instead, install to a version specific directory:
/opt/IBM/JazzTeamServer702SR1

Then, create a soft link to the directory that links from /opt/IBM/JazzTeamServer.

This allows you to have unit files that never need to be updated. Your backup scripts, and any accessory scripts all will have the same directory. However, if you need to upgrade the server, know that upgrades are always side-by-side upgrades. You never install over the top of existing binaries. Thus, when say, version 7.0.3 comes along, you can install to /opt/IBM/JazzTeamServer703 and then update the soft link for JazzTeamServer to the new version.

Update the logging defaults for better log rotation.

The log files are written to /opt/IBM/JazzTeamServer/server/logs directory (which in turn is a soft link to /opt/IBM/JazzTeamServer/server/liberty/servers/clm/logs directory). You’ll find the logs named after the applications they are generated from (i.e., jts.log, ccm.log, rm.log, etc.). The default is to rotate logs after 10MB of size. This is quite a large size and can be a royal pain if you have to search through it, and it contains many days of info. Change this in the /opt/IBM/JazzTeamServer/server/conf/app/log4j2.xml file where app is the relevant app running on the Jazz server. Change the following lines:

      <!-- Main application log file -->
            <RollingFile name="file" filename="${dir}/${app}.log" filePattern="${dir}/${app}-%i.log">
                    <PatternLayout pattern="${pattern}"/>
                    <Policies>
                            <SizeBasedTriggeringPolicy size="5MB"/>
                    </Policies>
                    <DefaultRolloverStrategy max="10"/>
            </RollingFile>

Notice the size here is 5MB. This makes it easier to search, and to download, or send to IBM if you need support. The rollover strategy is set to 10, so you will get a maximum of 10 historical files for this app. This means you have the same maximum total size of files, but they are easier to manage. Also, the file names will make it easier to identify when the log was rolled over.

More details on logging can be found in the product documentation.

Update the JVM parameters to make better use of the memory available.

Many times, I have been called in to help a customer who is experiencing performance issues with their ELM environment. They’ll have 32GB of RAM on the server, yet the server falls over from out of memory issues every day. Here’s where its not such a simple fix. The IBM documentation (as of version 7.0.2) tell you to update the jvm.options file located at /opt/IBM/JazzTeamServer/server/liberty/servers/clm. That file looks like this:

#This option sets the threshold time (in ms) that will trigger warnings for service lifecycle 
# changes (such as startup or shutdown) that take longer than this time.
-Dcom.ibm.team.repository.service.internal.serviceLifecycleDelayWarningThreshold=60000
-Xmx8G
-Xms8G
-Xmn2G
-Dmail.smtp.ssl.protocols=TLSv1.2
-Dlog4j2.formatMsgNoLookups=True
-Dcom.ibm.team.repository.transport.client.protocol=TLSv1.2
-Dcom.ibm.rational.rpe.tls12only=true

The items in red above indicate an 8 gigabyte starting heap (Xmx), an 8GB maximum heap (Xms), and a 2GB nursery (Xmn). I won’t delve into the black art of JVM tuning, just understand that these numbers should be kept proportional (Xmx=Xms, and Xmn=Xmx / 4). If you update these numbers here, which is what the documentation tells you to do…. it will do nothing. That is because of a bug in the server.startup script.

Edit that script, and go down to line 144:

144 # When run in a Jazz build, a 32-bit JRE is used, so don't set 64-bit options
145 if [ -z "$_RUNNING_IN_JAZZ_BUILD" ]; then
146 JAVA_OPTS="$JAVA_OPTS -Xmx4G"
147 JAVA_OPTS="$JAVA_OPTS -Xms4G"
148 JAVA_OPTS="$JAVA_OPTS -Xmn1G"
149 fi

This is an odd one, but even though this is in a conditional statement, that statement evaluates to true on the server, and thus the default values override the jvm.options. You can delete this stanza or update the values accordingly (which will continue to override the jvm.options file).

Disable or open the specific ports for Windows Firewall

First off … I loathe Windows for servers. Windows firewall bites me worse than mosquitoes in Florida. Most instances of Windows servers will have Firewall enabled and every port except a small few (80 and 443 for HTTP/HTTPS) blocked. You must have port 9443 open if you are going to use an HTTP server to front end your environment (which you nearly always SHOULD). Open this port or turn the thing off entirely if you’re well behind other network firewalls.

Similarly, if you’re using Linux, you’ll need to make sure IPTABLES, or other operating system firewall is open as well. I turn of SELINUX (which IBM recommends).

Comments are closed.

Strongback Consulting