Before Service Pack 5, BMC Remedy Full Text Search (FTS) required that one server in a server group act as the FTS server. With version 7.6.04 Service Pack 5, you can now install more than one FTS server in a server group. Each of these servers acts as an independent FTS server, providing service failover.
The following topics are provided:
Overview of how FTS works in a server group
FTS within BMC Remedy Action Request (AR) System is made up of the following primary components:
- FTS code that manages the FTS functionality
- FTS plug-in — a Java plug-in, which is the core index engine
As events occur within AR System that cause data to be indexed, the AR System server sends that data, along with appropriate instructions, to the FTS plug-in, which then adds, deletes, or updates data within the index. Other events could include a request to search the index. AR System server sends the search request to the FTS plug-in, which performs the search and returns the results to AR System server. The AR System server then deals with the data accordingly.
When you configure a server group for FTS, ensure that the following conditions are met:
- Only a primary FTS indexing server(s) performs all indexing operations.
- A primary FTS indexing server is AR System server that also has the FTS collection and conf directories located on a local disk.
- A primary FTS indexing server hosts all instances of the FTS plug-ins.
For FTS high-availability configuration, you can configure two or more servers as FTS indexing servers.
How failover occurs in high-availability configuration
FTS requires that at least one of the servers in a server group act as a primary FTS indexing server. To provide failover, you can have two or more primary FTS indexing servers in the server group where each server acts as an independent FTS server and indexing FTS in their own Collection directory. Each FTS indexing server (known as primary FTS indexing server) manages its own separate local replica of the full text index data. When an indexing action takes place, each FTS indexing server indexes it independently. For example, if you create a form and then index a field on that form, each FTS indexing server indexes that field. Because you can have multiple FTS servers, each with its own current copy of the FTS data, you can fail over to a second server.
An AR System server is designated as a primary FTS indexing server by having a ranking record for FTS in the AR System Server Group Operation Ranking form. Each FTS server defined in the ranking form acts as an indexing server and provides FTS search services to other servers in the server group. Each defined FTS server will always index, regardless of its ranking order. However, the server that is ranked 2 contains redundant FTS data and must be used for failover. This server is not intended to be a user-facing server.
Servers in the server group that are not ranked for FTS are search-only servers. The search-only servers are user facing servers and they connect to one of the FTS indexing servers to search the FTS data.
The servers that are not designated as indexing server should not be listed in the AR System Server Group Operation Ranking form.
The following figure shows the FTS plug-ins and FTS high-availability architecture in a server group.
BMC Remedy Full Text Search (FTS) plug-in and high-availability architecture
Primary FTS indexing servers always connect to their own local indexes. The other servers in the group can connect to any of the indexing servers. BMC recommends that all non-Primary FTS servers initially connect to the Primary FTS server which is ranked 1. The Server-Plugin-Alias parameter in the ar.cfg [or ar.conf] files of the servers specify the initial connection. This initial connection is known as the home connection.
While servicing an FTS request, if an FTS indexing server experiences a connection error, the request attempts to connect to another FTS indexing server (as specified in the AR System Server Group Operation Ranking form) until a server is found or there are no more to try.
For example, consider a scenario where you have two primary FTS indexing servers that are ranked 1 and 2 in the AR System Server Group Operation Ranking form. Your Server-Plugin-Alias parameter points to the server that is ranked 1. If this server experiences a connection error, the connection request goes to the server that is ranked 2. If for some reason even the server that is ranked 2 is down, the request then is returned as an error since no primary FTS indexing servers are available.
Configuring FTS in a server group
FTS uses one plug-in as the writer (primary) and another plug-in as the reader (secondary). The reader and writer plug-ins are installed on the FTS indexing server. In a server group, only one writer instance must be running on the designated FTS indexing server. The FTS writer (primary) serves as the reader and writer for the FTS indexing server, as well as a writer for all servers.
The writer (primary) is connected to the FTS indexing server. The reader (secondary) serves as the reader for all the other servers in the group, so you must configure all other servers to connect to the reader instance running on the FTS indexing server. The reader instance runs on a separate port on the FTS indexing server.
The events that cause data to be written to the index result in data being put into the AR System database as a queue of items to index. Only a primary FTS indexing server processes index requests from this queue. However, any instance of AR System server can send a search request to its corresponding FTS plug-in. This ensures index integrity. To further ensure integrity of the system, the FTS plug-in design is such that any launched instance defaults to a read-only state until the primary FTS indexing server specifically initializes the primary plug-in instance for writing.
- The FTS indexing server communicates with the writer plug-in for all search and indexing requests. There is no search failover for the writer plug-in running on the FTS indexing server.
- The secondary reader plug-in serves the search requests from other servers and does not serve as a backup to the primary writer plug-in.
Each primary FTS indexing server has its own virtual queue of data to index. When AR System queues data for indexing in parallel to AR Database changes in data, it queues separately for each primary FTS Indexing server as designated by the Server Group Ranking form for FTS
FTS is configured after all servers in the group have been installed and configured to run within a server group. Each primary FTS indexing server should have its respective FTS collection directory and FTS configuration directories located on the same computer.
To set up FTS in a server group
Rank the FTS servers in the AR System Server Group Operation Ranking form. (See page 33 of the BMC Remedy IT Service Management Suite 7.6.04 Installing and Configuring Server Groups White Paper.)
You should use the FTS indexing server, which is ranked 1 in the AR System Server Group Operation Ranking form, for searching and the other FTS indexing server, which is ranked 2, as the failover server.
- To configure FTS, use the AR System Administration FTS Configuration form, shown in the following figure.
To access this form, click AR System Administration Console > General > FTS Configuration.
AR System Administration FTS Configuration form
AR System Administration FTS Configuration form fields
|FTS Agent||Use the FTS Agent check box to enable or disable the FTS plug-in processes in the armonitor.cfg/conf file.|
If you select this check box, the FTS plug-in processes are automatically uncommented in the armonitor file. If you clear this check box and save the changes, the FTS processes are automatically commented in the armonitor file. If you are using FTS in a server group, the Primary and Secondary FTS plug-in processes are commented/uncommented based on your selection.
Using the FTS Agent check box does not require manual intervention to uncomment the FTS plug-in processes in the armonitor file.
You must restart the AR System server for the changes to take effect.
|Server Configuration||Select one of the options and perform the associated actions:|
|FTS Port1||Enter the FTS port for primary server. The port range is 9988–9998.|
During installation, the installer picks the available port from the port range starting from the lower port number. For more information about port numbers, see page 59 of the BMC Remedy AR System 7.6.04 Installation Guide.
|Max JVM Memory1||Enter the JVM heap size (in megabytes) for primary server.|
|Primary Server Name||Enter the name of the primary server.|
|FTS Port2||Enter the FTS port for secondary server. The port range is 9977–9982.|
For more information about port numbers, see page 59 of the BMC Remedy AR System 7.6.04 Installation Guide.
|Max JVM Memory2||Enter the JVM heap size (in megabytes) for secondary server.|
|FTS Collection Directory||Enter the full path of the FTS Collection directory.|
|FTS Configuration Directory||Enter the full path of the FTS Configuration directory.|
- You must log on to each server and perform FTS configuration on each server using the FTS Configuration form.
- You must restart the AR System server for the changes made to this form to take effect.
- Ensure that the Collection and Configuration directories are available on a local drive of each indexing server.
- Log on to each server and ensure that the paths of the Collection and Configuration directories are identical on all the servers in the server group. For example, if the indexing servers in a server group are running on Windows and the paths of these directories are C:\data1\BMCData\BMCARSystem\FTS\Collection and C:\data1\BMCData\BMCARSystem\FTS\Configuration respectively, ensure that all reader servers have the same path set in their ar.cfg/conf file with respect to the location of the Collection directory on the indexing servers. The failover fails if the directory paths are different. All indexing servers and reader servers in a server group refer to this path in the ar.cfg/conf file. The indexing servers also refer to this path for the FTS plug-ins in the pluginsvr_conf.xml file.
To upgrade with FTS installed
When upgrading, if you plan to re-index all of your FTS indexing servers, complete the preceding procedure.
If you are upgrading and do not want to re-index the FTS indexing servers, use the following procedure:
- Complete any re-indexing before starting the upgrade.
- Stop all user activity on the servers and do not start any new re-indexing.
- Ensure that any remaining ft_pending table entries are completed before continuing (They should complete quickly).
For more information about the ft_pending table, see page 297 of the BMC Remedy Action Request System 7.6.04 Configuration Guide.
- Disable indexing for all servers in the server group.
- (Optional) Designate additional servers for FTS in the AR System Server Group Operation Ranking form. (You can do this after the upgrade, but then you must restart the AR System server again.)
- Perform the upgrade and enable indexing for FTS on the FTS indexing servers as follows:
- Click the FTS tab on the Server Information form.
- Clear the Disable Full Text Searching and Disable FTS Indexer check boxes.
- Click Apply.
This ensures that Full Text Search and the FTS Indexer are enabled after the upgrade.