Setting available MBean attributes

You can customize Change Management Server (CM Server) by setting available MBean attributes.

The attributes are categorized by the MBean in which they reside. All parameters can be retrieved and are denoted with [R] for read. The modifiable parameters are denoted with a [W] for write. You can access the attributes with JACL commands by using the WebSphere® Application Server wsadmin command line utility. The teamAdminUtils.jacl file provides examples of JACL commands, syntax, and functions. Starting in version 7.1.0.2, a Web-based CM Server Administration utility also is available to examine and modify many MBean attributes and monitor the overall CM Server activity. Access this utility by entering the following URL in a Web browser:

http://CM-Server-name:12080/TeamAdminWeb

Changes can be made to the modifiable parameters only while the CM Server is running; a server restart is not required. Changes made to MBean attributes that govern the launching of backend ONCRPC server processes do not affect backend ONCRPC processes that have already been started; only newly launched backend ONCRPC server processes observe the new settings.

There are three MBeans that are created at CM Server startup: the TeamServerMBean that holds CM Server-wide configuration attributes, the CcServerFactoryMBean that holds ClearCase Managed Connection Factory attributes, and the CqServerFactoryMBean that holds ClearQuest Managed Connection Factory attributes. Each of these MBeans represents a distinct configurable entity within the CM Server.

The managed connection factories are the CM Server components responsible for launching the backend ONCRPC server processes. These backend processes bridge the connection to the ClearCase and ClearQuest-specific core products.

The ClearCase managed connection factory launches single-threaded ClearCase ONCRPC backend server processes, each referred to as a single ccrpc process. One process is launched for a specific set of credentials. The process services that set of credentials until it is no longer needed. Because the ccrpc process is single-threaded, each ccrpc process stays active for short periods of time. The ClearCase managed connection factory automatically performs lifecycle management on each ccrpc process.

The ClearQuest managed connection factory launches one or more multithreaded ClearQuest ONCRPC backend server processes, each referred to as a single cqrpc process. Because the cqrpc process is multithreaded, it can process requests from many different credentials. As such, the cqrpc processes consume more resources and stay active for longer periods of time than the ccrpc backend processes. The ClearQuest managed connection factory automatically performs lifecycle management on each cqrpc process.

See CM Server managed connection factory lifecycle management for more information.

CM Server includes the following MBeans.

wsadmin example

The following example illustrates JACL-based commands to start and use the wsadmin utility.
  • // This section provides sample commands to start and use the wsadmin utility. 
    // For illustrative purposes, an operating system command prompt is denoted by the 
    // hash character "#" and the wsadmin command prompt is denoted by "wsadmin>". 
    
    // There are CM Server wsadmin utility scripts that provide several convenience 
    // methods and functions.  By default, these scripts are located in the following
    // directory:  
    // On Windows:  
    //      "C:\Program Files\IBM\RationalSDLC\common\CM\scripts" 
    // On the UNIX system and Linux:  
    //      "/opt/rational/common/CM/scripts" on the UNIX system and Linux.
    
    // Open a command prompt and set your default directory to the location of
    // the CM Server wsadmin utility scripts.  For example: 
    
    // On Windows:
    # cd "C:\Program Files\IBM\RationalSDLC\common\CM\scripts"
    
    // On the UNIX system and Linux:
    # cd /opt/rational/common/CM/scripts
    
    // Set the WAS_BIN environment variable to the location of the wsadmin utility 
    // by using the syntax appropriate for your preferred shell.  For example:
    
    // On Windows:
    # set WAS_BIN="C:\Program Files\IBM\RationalSDLC\common\eWAS\bin" 
    
    // On the UNIX system and Linux:
    # WAS_BIN=/opt/rational/common/eWAS/bin
    
    // Start the wsadmin utility by specifying the CM Server profile name.  
    // The default CM Server profile name is 'cmprofile'.  For example:
    
    // On Windows:
    # %WAS_BIN%\wsadmin -profileName cmprofile
    
    // On the UNIX system and Linux:
    # $WAS_BIN/wsadmin.sh -profileName cmprofile
    
    // The following wsadmin command loads the CM Server wsadmin convenience functions:
    wsadmin> source teamAdminUtils.jacl
    
    // The next command shows an example of how to display some useful commands. 
    // The getTeamServer function is useful for establishing a pointer to the top level 
    // TeamServerMBean, and will help get and set individual TeamServerMBean attributes.
    
    wsadmin> info proc *Team*
        startTeamEAR stopTeamEAR getTeamServer
    
    // The following command displays the available 'dump' commands for quick and 
    // easy viewing of the MBean values:
    wsadmin> info proc dump*
    
       dumpAllServers dumpAll dumpTeamServer dumpCcServers dumpCqServerFactory 
       dumpCcServerFactory dumpCqServers
    
    
    // The next command uses the convenience command 'getTeamServer' to set up the 
    // variable 't', which can then be used to access TeamServerMBean attributes:
    wsadmin> set t [getTeamServer]
    
    // Retrieve the TeamServerMBean attribute values using the variable 't':
    wsadmin> $AdminControl getAttributes $t
    
    {cqServerFactory WebSphere:cell=testhost2Node01Cell,version=6.1.0.0,spec=1.0,name=CqServerFactoryMBeanId,
        mbeanIdentifier=CqServerFactoryMBeanId,type=stp.management.CqServerFactoryMBean,node=testhost2Node01,
        process=server1}
    
    {ccrcUseViewHostPathForGlobalPath false}
    {oncrpcBufferLimit 100}
    {cqLoginSessionWaitTimeout 300}
    {oncrpcInterruptLimit 1000}
    {ccrcUnixCqHome {
    {sessionReaperThreadDelay 900}
    {ccrcUserRegionMapfile {
    {ccrcTempDir {
    {ccrcTraceSubsystem {
    {sessionQueryObjectTimeout 1800}
    {oncrpcServers {
    {cqLoginSessionTimeout 1800}
    {cqFulltextSearchRecordHitLimit 200}
    {ejbBufferLimit 100}
    {ccrcVobLineTerminator {
    {sessionRecordObjectTimeout 10800}
    {cqFulltextSearchPageSize 25}
    {numberOfActiveSessions 0}
    {ccServerFactory WebSphere:cell=testhost2Node01Cell,version=6.1.0.0,spec=1.0,name=CcServerFactoryMBeanId,
        mbeanIdentifier=CcServerFactoryMBeanId,type=stp.management.CcServerFactoryMBean,node=testhost2Node01,
        process=server1}
    {sessionObjectDefaultTimeout 1800}
    {ccrcUploadLimit 0}
    {maxProcureServerAttempts 6}
    {cqFulltextSearchCacheSize 1000}
    {ccrcTraceLevel 0}
    {maxCqSessionsPerUser 2}
    {ccrcLoginSessionTimeout 900}
    {totalNumberOfOncrpcServers 0}
    {ccrcViewStorage {
    {numberOfHttpSessionsCreated 0}
    {ccrcPrimaryGroup {
    {procureServerInterval 60}
    
    
    
    // Following is a more convenient way to retrieve all of the TeamServerMBean attributes:
    wsadmin> dumpTeamServer
    
    TeamServerMBean Attributes:
    ====================
    
    {cqServerFactory WebSphere:cell=testhost2Node01Cell,version=6.1.0.0,spec=1.0,name=CqServerFactoryMBeanId,
        mbeanIdentifier=CqServerFactoryMBeanId,type=stp.management.CqServerFactoryMBean,node=testhost2Node01,
        process=server1}
    
    {ccrcUseViewHostPathForGlobalPath false}
    . . .
    
    
    // The next command configures the variable 'cc' for accessing the ccServerFactory MBean 
    // attributes. Note that the variable 't', defined in a previous command, is used to 
    // obtain a pointer to the TeamServerMBean's ccServerFactory attribute value.  Then the
    // variable 'cc' can be used to access the attributes in the CcServerFactoryMBean:
    wsadmin> set cc [$AdminControl getAttribute $t ccServerFactory]
    
    // Following is a more convenient way to set up the variable 'cc':
    wsadmin>set cc [getCcServerFactory]
    
    
    // Other 'get' convenience commands include: getCcServerFactory, getCqServerFactory, 
    // getTeamServer and getOncrpcServers.
    
    
    // The next command retrieves the CcServerFactoryMBean attribute values by using the 'cc' variable 
    // defined previously:
    wsadmin> $AdminControl getAttributes $cc
        {oncrpcCallThreshold 5000}
        {idleServerInterval 600}
        {serverThresholdCount 50}
        {maxServersPerCredential 5}
        {maxServerCount 200}
        {interactionRequestTimeout 300}
        {busyServerPossiblyIdleLimit 14400}
    
    // The following command sets the maxServerCount MBean attribute that is defined in the 
    // CcServerFactoryMBean, referenced using the 'cc' variable defined in a previous command:
    wsadmin> $AdminControl setAttribute $cc maxServerCount 101
    
    
    // The next command sets up the variable 'cq' for accessing the CqServerFactoryMBean attributes. 
    // Note that the variable 't' defined in a previous command is used to obtain a pointer to the 
    // TeamServerMBean's cqServerFactory attribute value; the variable 'cq' can then be used 
    // to access the attributes in the CqServerFactoryMBean:
    wsadmin> set cq [$AdminControl getAttribute $t cqServerFactory]
    
    // Following is a more convenient way to set up the variable 'cq':
    wsadmin>set cq [getCqServerFactory]
    
    // The next command retrieves the CqServerFactoryMBean attribute values using the 'cq' variable
    // defined previously:
    wsadmin> $AdminControl getAttributes $cq
    . . . 
    
    // The following command sets up the variable 'os' to use for accessing the list of 
    // ONCRPC server MBeans, each of which represents a specific ONCRPC backend server.  
    // The command uses one of the convenience methods defined in the teamAdminUtils.jacl 
    // script that was 'sourced' at the beginning of this session:
    wsadmin> set os [$AdminControl invoke $t getOncrpcServers]
            .   .   .   
    
            // A list of the running oncrpc backend servers is displayed. The first oncrpc server
            // is at index 0 (zero), the second is at index 1, and so on...
    
    
    // The next command sets up the variable 'o' for accessing the first oncrpc server MBean 
    // displayed in the output from the previous command.  This level of MBean attribute 
    // access (that is, specific oncrpc server MBeans) is tricky because the backend oncrpc
    // server processes are transient and might be dismissed before you can access them.
    wsadmin> set o [getOnc 0]      // '0' is the index number of the first backend server
                                   //  listed in the output of the previous command. 
    
    // The following command retrieves the MBean attribute values for the CQ oncrpc server 
    // defined by the variable 'o':
    wsadmin> $AdminControl getAttributes $o
            {workerThreadCount 16}
            {serverState 1}
            {activeStatefulHttpSessions 0}
            {port 3431}
            {oncrpcCalls 7}
            {recycleServerHttpSessionLimit 500}
            {serverId {ClearQuest - 0
            {serverType ClearQuest}
            {hostname testhost2}
            {activeHttpSessions 0}
            {totalHttpSessions 1}
    
    
    
    // The next commands set and then get the recycleServerHttpSessionLimit attribute 
    // in the CQ oncrpc server defined previously by the variable 'o':
    wsadmin> $AdminControl setAttribute $o recycleServerHttpSessionLimit 501
    
    wsadmin> $AdminControl getAttribute $o recycleServerHttpSessionLimit
         501
    
    
    // The next commands set up and use the variable 'o' for accessing the second 
    // oncrpc server MBean displayed in the output from the list of oncrpc servers 
    // obtained previously.  In this example, the desired CC ONCRPC server has already
    // been dismissed by the CM Server lifecycle management tasks, which results in the
    // error that is shown.
    wsadmin> set o [getOnc 1]   
    
    wsadmin> $AdminControl getAttributes $o
        WASX7015E: Exception running command: "$AdminControl getAttributes $o"; exception information:
           com.ibm.ws.scripting.ScriptingException: WASX7025E: Error found in String ""; cannot
           create ObjectName.
    
    // In the previous command, the running CC oncrpc server process had already been 
    // cleaned up by the CM Server's lifecycle management task, thus the "WASX7015E:" error 
    // was displayed.  You will also see this error if the index value that you specify to
    // the getOnc method is invalid (out of range).
    
    // The remaining commands show a few more oncrpc server MBean accesses and their output.
    // Remember that the list of ONCRPC servers is transient; using the dump commands such
    // as dumpCcServers, dumpCqServers, or dumpAllServers is much more convenient:
    
    wsadmin> set o [getOnc 1]
        WebSphere:cell=testhost2Node02Cell,version=6.1.0.0,spec=1.0,name=ClearCase - 15,
        mbeanIdentifier=ClearCase - 15,type=stp.management.CcOncrpcServerMBean,
        node=testhost2Node02,process=server1
    
    wsadmin> $AdminControl getAttributes $o
            {serverType ClearCase}
            {serverState 1}
            {hostname testhost2}
            {port 4808}
    
    wsadmin> listOnc
           "WebSphere:cell=testhost2Node02Cell,version=6.1.0.0,spec=1.0,
           name=ClearQuest - 11,mbeanIdentifier=ClearQuest - 11,
           type=stp.management.CqOncrpcServerMBean,node=testhost2Node02,
           process=server1"
           "WebSphere:cell=testhost2Node02Cell,version=6.1.0.0,spec=1.0,
           name=ClearCase - 14,mbeanIdentifier=ClearCase - 14,
           type=stp.management.CcOncrpcServerMBean,node=testhost2Node02,
           process=server1
    
    wsadmin> set o [getOnc 1]  // 0 = "ClearQuest - 11", 1 = "ClearCase - 15"
            WebSphere:cell=testhost2Node02Cell,version=6.1.0.0,spec=1.0,name=ClearCase - 15,
            mbeanIdentifier=ClearCase - 15, type=stp.management.CcOncrpcServerMBean,
            node=testhost2Node02,process=server1
    
    wsadmin> $AdminControl getAttributes $o
           {serverType ClearCase}
           {serverState 1}
           {hostname testhost2}
           {port 4808}
           {serverId ClearCase - 15}
           {oncrpcCalls 2}
    
    // Here are examples of what you'll see when using the convenience dump commands:
    wsadmin> dumpAllServers
    
    ONCRPC Server: ClearCase - 0
    ============
    {serverType ClearCase}
    {serverState 1}
    {hostname testhost2}
    {port 3672}
    {serverId {ClearCase - 0
    {oncrpcCalls 7}
    
    ONCRPC Server: ClearQuest - 0
    ============
    {workerThreadCount 10}
    {serverState 1}
    {activeStatefulHttpSessions 0}
    {port 3693}
    {oncrpcCalls 1}
    {recycleServerHttpSessionLimit 500}
    {serverStartTime 1215633895763}
    {serverId {ClearQuest - 0
    {recycleReasonCode 0}
    {serverType ClearQuest}
    {hostname testhost2}
    {activeHttpSessions 0}
    {totalHttpSessions 0}
    
    
    wsadmin> dumpCcServers
    CCRPC Server: ClearCase - 0
    ===========
    {serverType ClearCase}
    {serverState 1}
    {hostname duke2}
    {port 3672}
    {serverId {ClearCase - 0
    {oncrpcCalls 7}
    
    
    
    wsadmin> dumpCqServers
    CQRPC Server: ClearQuest - 0
    ===========
    {workerThreadCount 10}
    {serverState 1}
    {activeStatefulHttpSessions 0}
    {port 3693}
    {oncrpcCalls 1}
    {recycleServerHttpSessionLimit 500}
    {serverStartTime 1215633895763}
    {serverId {ClearQuest - 0
    {recycleReasonCode 0}
    {serverType ClearQuest}
    {hostname duke2}
    {activeHttpSessions 0}
    {totalHttpSessions 0}
    
    
    wsadmin> dumpCqServerFactory
    CqServerFactoryMBean Attributes:
    ==========================
    {serverWorkerThreadCount 10}
    {recycleServerLifetimeLimit 14400}
    {recyclingPeriod 3600}
    {recycleServerOncrpcCallLimit 500000}
    {recycleServerHttpSessionLimit 500}
    {maximumActiveServers 4}
    {activeHttpSessionThreshold 40}
    
    
    wsadmin> dumpCcServerFactory
    CcServerFactoryMBean Attributes:
    ==========================
    {oncrpcCallThreshold 5000}
    {idleServerInterval 600}
    {serverThresholdCount 50}
    {maxServersPerCredential 5}
    {maxServerCount 101}
    {interactionRequestTimeout 300}
    {busyServerPossiblyIdleLimit 14400}
    
    
    wsadmin> dumpAll
         // The output of this command is a dump of all of the MBean attribute values, including
         // all of the currently running backend ONCRPC server processes.
    
  • Additional convenience commands for importing and exporting MBean attributes

    In addition to retrieving and setting individual MBean attributes by using the wsadmin commands, there are two convenience methods that let you import and export MBean attribute values from and to properties files. You can edit the properties files by using a text editor, and import and export these files in real time. You do not need to restart the CM Server. CM Server must be running when using the wsadmin utility.

    You can comment out any entries in the properties files that you do not need or want to import. Be sure to follow the naming conventions for the MBean names and attribute names. To unset a String value by using the importFile command, specify "" or leave the value blank in the properties file being imported. Numeric values must not be left blank.

    // This wsadmin command loads all of the convenience commands and methods, including the importFile 
    // and exportToFile commands.  These commands enable retrieving and updating MBean attribute values 
    // and a simple way to capture specific configurations.  If the CM Server is experiencing difficulties,
    // you can import a previously captured configuration in real time. 
    wsadmin> source teamAdminUtils.jacl
    
    // Use the exportToFile command if you want to capture a snapshot of the 
    // TeamServerMBean, CcServerFactoryMBean and the CqServerFactoryMBean MBeans.  Specify 
    // the full path name in which to store the file.  You can edit the resulting properties
    // file by using a text editor, and import the file by using the importFile command.
    // NOTE: You must use forward slashes in the path name for these commands.
    wsadmin> exportToFile C:/temp/CmServer.properties
    
    File "C:/temp/CmServer.properties" does not exist, proceeding with export...
    Retrieving MBeans...
    Exporting TeamServerMBean.sessionReaperThreadDelay...
    Exporting TeamServerMBean.cqLoginSessionTimeout...
    Exporting TeamServerMBean.cqLoginSessionWaitTimeout...
    Exporting TeamServerMBean.sessionObjectDefaultTimeout...
    Exporting TeamServerMBean.sessionQueryObjectTimeout...
    Exporting TeamServerMBean.sessionRecordObjectTimeout...
    Exporting TeamServerMBean.oncrpcBufferLimit...
    Exporting TeamServerMBean.oncrpcInterruptLimit...
    Exporting TeamServerMBean.ejbBufferLimit...
    Exporting TeamServerMBean.ccrcLoginSessionTimeout...
    Exporting TeamServerMBean.ccrcViewStorage...
    Exporting TeamServerMBean.ccrcUploadLimit...
    Exporting TeamServerMBean.ccrcTempDir...
    Exporting TeamServerMBean.ccrcPrimaryGroup...
    Exporting TeamServerMBean.ccrcUnixCqHome...
    Exporting TeamServerMBean.ccrcVobLineTerminator...
    Exporting TeamServerMBean.ccrcUserRegionMapfile...
    Exporting TeamServerMBean.ccrcTraceLevel...
    Exporting TeamServerMBean.cqFulltextSearchPageSize...
    Exporting TeamServerMBean.cqFulltextSearchCacheSize...
    Exporting TeamServerMBean.cqFulltextSearchRecordHitLimit...
    Exporting TeamServerMBean.procureServerInterval...
    Exporting TeamServerMBean.maxProcureServerAttempts...
    Exporting TeamServerMBean.maxCqSessionsPerUser...
    Exporting CcServerFactoryMBean.maxServerCount...
    Exporting CcServerFactoryMBean.serverThresholdCount...
    Exporting CcServerFactoryMBean.idleServerInterval...
    Exporting CcServerFactoryMBean.maxServersPerCredential...
    Exporting CcServerFactoryMBean.interactionRequestTimeout...
    Exporting CcServerFactoryMBean.busyServerPossiblyIdleLimit...
    Exporting CcServerFactoryMBean.oncrpcCallThreshold...
    Exporting CqServerFactoryMBean.serverWorkerThreadCount...
    Exporting CqServerFactoryMBean.activeHttpSessionThreshold...
    Exporting CqServerFactoryMBean.maximumActiveServers...
    Exporting CqServerFactoryMBean.recycleServerHttpSessionLimit...
    Exporting CqServerFactoryMBean.recycleServerLifetimeLimit...
    Exporting CqServerFactoryMBean.recycleServerOncrpcCallLimit...
    Exporting CqServerFactoryMBean.recyclingPeriod...
    
    wsadmin> importFile C:/temp/CmServer.properties
    
    File "C:/temp/CmServer.properties" found, proceeding with import...
    Importing value '900' into property sessionReaperThreadDelay in MBean TeamServerMBean
        Old value=900
        New value=900
    Importing value '1803' into property cqLoginSessionTimeout in MBean TeamServerMBean
        Old value=1803
        New value=1803
    Importing value '300' into property cqLoginSessionWaitTimeout in MBean TeamServerMBean
        Old value=300
        New value=300
    Importing value '1800' into property sessionObjectDefaultTimeout in MBean TeamServerMBean
        Old value=1800
        New value=1800
       . . .
    
    // If you try to export to a file that already exists, a time stamp is appended to the
    // file name that you specify in the command:
    wsadmin> exportToFile C:/temp/CmServer.properties
    
    File "C:/temp/CmServer.properties" already exists; appending date to file name.
    exportFilePath is now: C:/temp/CmServer.properties_2008-07-09_16-27-11
    Retrieving MBeans...
    Exporting TeamServerMBean.sessionReaperThreadDelay...
    
    // Here is what a typical exported file looks like:
    C:\> type c:\temp\CmServer.properties
    # Export of CM Server MBean attributes, created: 2008-07-09_16-22-29
    #
    #
    # TeamServerMBean writable attributes
    #
    TeamServerMBean.sessionReaperThreadDelay=900
    TeamServerMBean.cqLoginSessionTimeout=1803
    TeamServerMBean.cqLoginSessionWaitTimeout=300
    TeamServerMBean.sessionObjectDefaultTimeout=1800
    TeamServerMBean.sessionQueryObjectTimeout=1803
    TeamServerMBean.sessionRecordObjectTimeout=10800
    TeamServerMBean.oncrpcBufferLimit=100
    TeamServerMBean.oncrpcInterruptLimit=1000
    TeamServerMBean.ejbBufferLimit=100
    TeamServerMBean.ccrcLoginSessionTimeout=900
    TeamServerMBean.ccrcViewStorage=
    TeamServerMBean.ccrcUploadLimit=0
    TeamServerMBean.ccrcTempDir=
    TeamServerMBean.ccrcPrimaryGroup=
    TeamServerMBean.ccrcUnixCqHome=
    TeamServerMBean.ccrcVobLineTerminator=
    TeamServerMBean.ccrcUserRegionMapfile=
    TeamServerMBean.ccrcTraceLevel=0
    TeamServerMBean.cqFulltextSearchPageSize=25
    TeamServerMBean.cqFulltextSearchCacheSize=1000
    TeamServerMBean.cqFulltextSearchRecordHitLimit=200
    TeamServerMBean.procureServerInterval=60
    TeamServerMBean.maxProcureServerAttempts=6
    TeamServerMBean.maxCqSessionsPerUser=2
    #
    # CcServerFactoryMBean writable attributes
    #
    CcServerFactoryMBean.maxServerCount=101
    CcServerFactoryMBean.serverThresholdCount=50
    CcServerFactoryMBean.idleServerInterval=600
    CcServerFactoryMBean.maxServersPerCredential=5
    CcServerFactoryMBean.interactionRequestTimeout=300
    CcServerFactoryMBean.busyServerPossiblyIdleLimit=14400
    CcServerFactoryMBean.oncrpcCallThreshold=5000
    #
    # CqServerFactoryMBean writable attributes
    #
    CqServerFactoryMBean.serverWorkerThreadCount=10
    CqServerFactoryMBean.activeHttpSessionThreshold=40
    CqServerFactoryMBean.maximumActiveServers=4
    CqServerFactoryMBean.recycleServerHttpSessionLimit=500
    CqServerFactoryMBean.recycleServerLifetimeLimit=14400
    CqServerFactoryMBean.recycleServerOncrpcCallLimit=500000
    CqServerFactoryMBean.recyclingPeriod=3600

Feedback