Archive for the ‘ARSystem’ Category

Clarification of Server-Name, Server-Connect-Name and IP-Name for server group configuration

Wednesday, May 16th, 2012

Problem

There are several parameters used by the ARSystem to understand how to treat the Server name for various components and actions. Having these set incorrectly could cause errors and lead to ARServer behaving in an unplanned manner.
 
Please explain how to setup the Server-Name, Server-Connect-Name and IP-Name parameters

Remedy AR System Server (version 6.3.00 to 7.6.04)
DR: Remedy AR System Server

 

Solution

There are several parameters used by the ARSystem to understand how to treat the Server name for various components and actions.
 
Having these set incorrectly could cause errors and lead to ARServer behaving in an unplanned manner.
 
The most important parameters are Server-Name, Server-Connect-Name and IP-Name for the server group ar.conf/ar.cfg files.
 
 a) The Server-Name entry must be a common value for each ARServer in server group;  It is an alias for the ARServer environment that will be the same for all the servers. It is a name used as a virtual server where all Remedy client computers will connect.  All clients (Mid-Tier, ARS User Tool, API programs) should connect using that value of Server-Name.  
 
In a load-balanced environment, this name resolves to the IP address of the hardware load balancer, which in turn directs the call to one of the AR System servers in the group.  This should be a short host name that resolves to the Load Balancer; not the Fully Qualified Name or the IP Address.  
 
In some case, such as Notification shortcuts and urls,   ARServer will concatenate the domain name of the ARServer host to this Server-Name value to create a fully qualified Server Name.  
 
If the Domain of the ARServer host causes an invalid Fully qualified hostname to be generated, the Domain-Name: paramater can be used to hard code the domain name
Syntax:
 
  Server-Name: <server_group_server_name>
  Domain-Name: <domain name that will create a valid fully qualified name when added to Server-Name>
 
   where   <server_group_server_name>  is the alias name that resolved to the Load Balancer
 
Example:
  Server-Name: remedybox1

  Domain-Name: company.com
 
Users will connect to the server ‘remedybox1’  or  ‘remedybox1.company.com’, which resolves to the load balancer.
 
Notifications and other actions that uses a fully qualified name will use ‘remedybox1.company.com’
 
 
 b) Server-Connect-Name must be a unique value for each ARServer in server group.  The only important details about this entry is that it is case sensitive and it must resolve directly to the ARServer host, not the load balancer.
 
You can use the FQDN (Fully Qualify Domain Name) format instead of the short name to ensure that it resolves correctly.
 
Please notice that you need to use only one Server-Connect-Name entry per server using that server’s hostname
 
Example:
 
  Server-Connect-Name: serverA.your_domain.com             (in serverA ar.conf/ar.cfg)
 
  Server-Connect-Name: serverB.your_domain.com             (in serverB ar.conf/ar.cfg)
           NOTE:
            Server Name field in the AR System Server Group Operation Ranking form should match the Server-Connect-Name with the exact value, including case.
 
c) IP-Name is used by the ARServer when an Admin operation is executed.   Some Admin operations such as creating a Filter, require that the client use the correct Server Name when connecting.  
 
The ARServer compares the Server Name that the client used  with its own server name.   If these names do not match you may encounter errors such as ARERR 225 “Set fields actions that reference entries in other forms can only reference forms on the same server in a filter or escalation. “
 
If this occurs during an action that stores a server name,  it is possible that a hard coded server name with be stored in the definition.
 
To prevent either of these scenarios,  add IP-Name to ar.cfg/ar.conf.   Multiple IP-Name parameters can exist in a single configuration file.   It is recommended that you set an IP-Name parameter for every possible server name that a client may connect to to perform admin operations.  This includes admin operations triggerred by workflow such as Creating new Classes in CMDB or new Targets in SLM.
 
For example:
       IP-Name: <separate entry for short name or hostname for each server in server group>
       IP-Name: <separate entry for FQDN for each server in server group>
       IP-Name: <separate entry for IP address for each server in server group>
 
 
           NOTE:
            To maintain consitenct ar.cfg.ar.conf files, in minimum server group environment of two ARServers there will be a minimum of six separate entries for IP-Name in each config file of each ARServer in that server group.  Each additional ARServer in server group will have additional three entries in each ar.cfg/conf file of each ARServer in that server group.
         Example:

         IP-Name: serverA
         IP-Name: serverA.your_domain.com
         IP-Name: xxx.xxx.xxx.xxx                       (where xxx.xxx.xxx.xxx is the IP address of serverA)
         IP-Name: serverB
         IP-Name: serverB.your_domain.com
         IP-Name: yyy.yyy.yyy.yyy                       (where yyy.yyy.yyy.yyy is the IP address of serverB)
         
         
 Finally, note the following two basic concepts about server groups:

 1.) It is important that you know that servers in server group MUST be on physically separate server boxes, and you cannot create server group with servers installed and running on the same server box.
 2.) Servers in a server group MUST be the same version and patch because they use the same database, so you cannot create server group with servers of different versions.
 

Find Information about Server Group related tables in database

Wednesday, May 16th, 2012

Problem

Need to know the function of each server group table in database
ARS 7.1/7.5, any OS, any Database

Solution

A) servgrp_applic : This table contains the information about the all application licenses ( Floating) in server group. It also keeps track of Floating App licenses that are being consumed in the server group.

 

B) servgrp_board: This table contains the information about the Server Names in the server group & their TCP Port number if any. In order for any failover to occur, the intervalcount column in the Servgrp_board table has to stop incrementing for that particular server. 

This table can be viewed using a database query tool to obtain some information about the Server Group’s health. 

 

The following columns are useful to look at: 

i) serverName:  this column should contain one record for each server in the group.  The name that appears here should be the same as the Server-Connect-Name and as the ‘Server’ field in the AR System Server Group Operation Ranking form.  If the data is not correct, the Ranking form should be modified to reflect the correct name,  the Server-Connect-Name: parameter  verified in each Configuration file, and the faulty records deleted from this table.  Restarting each ARServer will cause this table to get populated with the correct server names.

 

ii) intervalCount:  gets incremented each time the specified server connects on the interval specified in the Administrator Console for the Server Group Check Interval setting.    If this number is not incrementing or is 0, then the specified server is either not running or is not participating in the server group. 

iii) opFlags:   This is a semi-colon delimited list of 0’s and 1’s indicating which operations are currently owned by the specified server.   If the values are not what you expect, then there may be a problem with the ranking form, such as invalid server names. 

C) servgrp_config: This table contains the information about the checkInterval count. The synchronization between two servers in the server group takes two(2) check interval times (15 seconds each) before the changes are applied on the remaining servers. This means, changes can be piled and delayed if the pending signals keeps changing within the checkInterval time in servgrp_config table. Once the synchronization is completed, the operation is passed to the next server.

 

D) servgrp_ftslic:  This table contains the information about the Full Text Search licenses in the Server Group. This calculates the FTS licenses & store at the central place. 

E) servgrp_op_mstr:    If you do “Select operation from servgrp_op_mstr” on database, it will show you all 13 operations by default. But if you open servgrp_op_mstr table, under the “opNum’ column & there will be a value of -1 (minus 1) for any operation that is not used probably. Only the operation which has positive number value , that server group assumes active & has a rank defined in the AR Server Operation Ranking form. You also have a category of each operation, like what application that operation belong to.

 

F) servgrp_userlic: This table contains the information of all the User Fixed & Floating license in the server group. If you have 10 User floating licenses on server A & 15 User floating licenses on server B, then in this table the User floating licenses calculated as 25 number of available User floating licenses in the server group. You have userName, serverName & groupId columns on the servgrp_userlic table which contain the user name, server name of that user & group id of user which that user is member of.

 

Disabling some options from the Configuration tab in Admin tool is failing

Wednesday, May 16th, 2012

Problem

Any attempt to select or deselect the following options from Configuration tab in Admin tool is failing:

  • Disable Archive
  • Disable Admin Operations
  • Disable Escalations

The error message generated is:

“This configuration setting is not allowed when the server is a member of a server group : 142 (ARERR 3324).”

Solution

Reference configuration manual for ARServer for these three options:

“If the Server Groups check box is selected, this setting is ignored. Server groups can be configured in the AR System Server Group Operation Ranking form to make sure that only one server performs the operation.”

If the Server Group Member box on the Configuration tab in Admin tool is checked, any attempt to select or deselect operations controlled by Server Group configuration will generate ARERR 3324 error message:

“This configuration setting is not allowed when the server is a member of a server group : 142 (ARERR 3324).”

The operations on the Configuration tab in Admin tool which are controlled by Server Group configuration are:

  • Disable Archive
  • Disable Admin Operations
  • Disable Escalations

When a server is a member of a server group, the Configuration tab settings for these operations are “reporting only” information. Before the server group feature was added to ARServer, these settings on the Configuration tab controlled how the server behaved and still work the same way for non-server group environments.

In a server group environment, however, they are not read to determine the server’s behavior. Instead, they reflect the current conditions on the server when the server determines what should be enabled or disabled using the ranking information in the Server Group Operation Ranking form.

In a non-server group environment, selecting or deselecting one of these options from the Configuration tab in the Admin tool will add an entry to the ar.conf / ar.cfg file:

  • Disable-Admin-Ops: T (or) F
  • Disable-Escalations: T (or) F
  • Disable-Archive: T (or) F

At startup of a server in a non-server group environment, these entries in ar.conf / ar.cfg file are visible on the Configuration tab for each operation with either a check (when set to True) or blank (when set to False).

At startup of a server in a server group environment, these entries in ar.conf / ar.cfg file are not relevant.

The ranking information in the Server Group Operation Ranking form will be reflected on the Configuration tab for each operation with either a check (when this server is not primary server for the operation) or blank (when this server is primary server for the operation).

When a server group is configured, there will be five entries to the ar.conf file for operations corresponding to entries in the Server Group Operation Ranking form and reflecting the ranking order for each server in server group for each operation.

The operation will be suspended (set to True ) for every server in the server group except for the server designated as primary for that operation:

  • Approval-Server-Suspended: T (or) F
  • Assignment-Engine-Suspended: T (or) F
  • Business-Rules-Engine-Suspended: T (or) F
  • CMDB-Service-Suspended: T (or) F
  • Reconciliation-Engine-Suspended: T (or) F

At startup the Email Engine and/or Flashboards engine will read the ar.conf / ar.cfg file and know whether it should start in suspended mode (set to True).

The Email Engine and Flashboards are different than the other managed server group operations in that they do not read the server’s configuration file for startup status. At startup, the Email Engine and Flashboards will send an ARGetServerInfo() API call to the server to determine their status.

The startup will be in suspended mode if the ARServer is not primary for that operation. If there is a change in status after startup, the ARServer signals them by running a Java agent program and tell it to suspend or resume operations:

  • EmailAdminAgent.jar and FlashboardAgent.jar.

There will be no status value in any configuration file these two operations for either ARServer or the Email Engine or Flashboard configuration files. Instead, the state is handled with real-time checks and signals.