Table of Contents

Search

  1. Preface
  2. Introduction
  3. Servers
  4. Console Client
  5. Search Clients
  6. Table Loader
  7. Update Synchronizer
  8. Globalization
  9. Siebel Connector
  10. Web Services
  11. ASM Workbench
  12. Cluster Merge Rules
  13. Forced Link and Unlink
  14. System Backup and Restore
  15. Batch Utilities

Rulebase Server Groups

Rulebase Server Groups

Use the Rulebase Server Groups (RBSG) to run Rulebase Servers on every node of a cluster.

Overview

Rulebase Server Groups provide Rulebase redundancy by allowing several Rulebase Servers to run concurrently. Only one Rulebase Server is permitted to respond to queries (known as the Primary).
The other Rulebase Servers (the Secondaries) periodically poll the Primary to determine if / when it is no longer working so that one of them may assume the role of the Primary.
This feature is designed to be used in a distributed database (cluster) environment where multiple database servers are running on different network nodes (machines) while presenting a unified appearance as a "single database". All nodes are connected to a shared disk sub-system by a storage area network. From a database client’s perspective, the database remains available when at least one of the nodes remains operational. Additional nodes can be started or shutdown transparently, without affecting database client connectivity or data integrity.
Different software vendors use different names for this sort of technology. For example, Microsoft SQLServer Clusters and Oracle’s Real Application Clusters are capable of providing the database functionality and a Veritas Cluster Server could be used to provide the Operating System dependent cluster related services.
The RBSG implementation does not make use of any proprietary features from any particular vendor. It simply requires that a consistent view of the database remains accessible when at least one node is operational.

Discussion

The database instance that the Rulebase Server is accessing must be absolutely robust, in the sense that there is no possibility of it becoming unavailable while there is a working network and at least one working machine in that network.
Only one Rulebase Server will respond to Rulebase requests no matter how many Rulebase Servers are in the group.
A RBSG is shut down using the
idsdown
script. This will stop all Rulebase Servers. There is no mechanism to shut down an individual Secondary Rulebase Server other than to kill it.
The Search and Rulebase Servers must always be started as separate servers and communicate through sockets. A combined Search / Rulebase Server is not permitted.
A unique
SSA_RB_RESTART_ID
for a RBSG will be set once when the group starts and will remain unchanged for the life of the group.
The Console Server must not automatically launch any other servers. You must start it with the
-o
switch.
Use the
-g
switch to assign Rulebase Servers to groups.

Parameters for the Rulebase and Search Servers

When you start a Rulebase or Search Server, you can specify the following parameters:
-e
Indicates not to shut down the secondary servers when the primary server shuts down.
-g<Rulebase Server Group Connection Name>,<Rulebase Connection String>
Adds the server to the Rulebase Server Group.
Use one of the following formats for the rulebase connection string:
  • odb:0:userid/password@service
  • iir:rb
-o<Restart Option>
Indicates how the server must behave when the connection to the database is lost. You can use one of the following options:
  • r
    . Indicates to restart the server.
  • 1
    . Indicates to check whether the database table is accessible. If the database table is accessible, the server connects to the database. If the database table is not accessible, the server waits until the database connection is restored.
  • 2
    . Indicates to restore the database connection.
  • 0
    . Indicates to retry until the database connection is restored.
-t<Number of Retries>,<Frequency>
Indicates the maximum number of attempts for the secondary server to establish the database connection and the time interval between two attempts. Default number of attempts is 500, and default time interval is 5 seconds.
-w<Frequency>,<Priority>
Indicates the polling frequency in seconds and the priority for the server. When the primary server is down, the secondary server with the highest priority becomes the primary server. The number 1 indicates the highest priority. Default polling frequency is 1.
-m<Port Number>
Indicates the port number on which the Rulebase Server listens.
-n<Port Number>
Indicates the port number on which the Search Server listens.

Parameters for the Console Server

When you start a Console Server, you can specify the following parameters:
-g<Rulebase Server Group Connection Name>,<Rulebase Connection String>
Adds the server to the Rulebase Server Group.
Use one of the following formats for the rulebase connection string:
  • odb:0:userid/password@service
  • iir:rb
-n<Port Number>
Indicates the port number on which the Console Server listens.
-o
Indicates not to start other servers.
-h<Host Name>
Indicates the server that you want to automatically start.

Parameters for the XML Search Server

When you start an XML Search Server, you can specify the
-x<Port Number>
parameter that indicates the port number on which the XML Search Server listens.

rbsgdown Utility

Use the rbsgdown utility to shut down all the primary and secondary Rulebase Servers. You can specify the command at any node. The
rbsgdown
utility stops all the clients connected to the Rulebase Servers. The
rbsgdown
utility cannot be used for other servers and is specifically for the Rulebase Servers.
The following is a code sample to specify the command:
rbsgdown -gfranky,<Rulebase Connection String>
Use one of the following formats for the rulebase connection string:
  • odb:0:userid/password@service
  • iir:rb

Example

The name of the RBSG used in this example is
franky
.
The environment variable
%SSA_GRPDB%
contains the connection string to the cluster database. This database must contain the Rulebase objects and the
IDS_RB_GROUP
table. For example, it might be defined as
odb:99:uid/pwd@clusterdb
.
Start the first Rulebase Server in the group:
set SSA_PRM="MDM-RE rb1 Server for group port 9997" set SSA_LOGS=-1%SSAWORKDIR%\idsrb1v.log -2%SSAWORKDIR%\idsrb1v.err -3%SSAWORKDIR%\idsrb1v.dbg set SSA_ISSUP_CMD=start %SSA_PRM% "%SSABIN%\ssasrsv" %SSA_ISSUP_CMD% -m9997 -gfranky,%SSA_GRPDB% -w1 %SSA_LOGS%
UNIX example
SSA_LOGS="-1$SSAWORKDIR/idsrb1v.log -2$SSAWORKDIR/idsrb1v.err -3$SSAWORKDIR/idsrb1v.dbg" export SSA_LOGS $SSABIN/ssasrsv -m9997 -gfranky,$SSA_GRPDB -w1 $SSA_LOGS
Start a second Rulebase Server in the same group:
set SSA_PRM="MDM-RE rb2 Server for group port 9999" set SSA_LOGS=-1%SSAWORKDIR%\idsrb2v.log -2%SSAWORKDIR%\idsrb2v.err -3%SSAWORKDIR%\idsrb2v.dbg set SSA_ISSUP_CMD=start %SSA_PRM% "%SSABIN%\ssasrsv" %SSA_ISSUP_CMD% -m9999 -gfranky,%SSA_GRPDB% -w1 %SSA_LOGS%
UNIX example
SSA_LOGS="-1$SSAWORKDIR/idsrb2v.log -2$SSAWORKDIR/idsrb2v.err -3$SSAWORKDIR/idsrb2v.dbg" export SSA_LOGS $SSABIN/ssasrsv -m9999 -gfranky,$SSA_GRPDB -w1 $SSA_LOGS &
If the two servers are started on the same machine they must have different port numbers (9997 and 9999 respectively). If they are started on different machines they could use the same port numbers.
We now have two Rulebase Servers running. One will become the Primary Rulebase for this RBSG and the other will go into Secondary polling mode where it will just monitor the first Rulebase and take over if it detects that the Primary Rulebase has ceased to work.
We may start as many Rulebase Servers as necessary. All additional servers will become secondary servers.
Start a Search Server:
set SSA_PRM="MDM-RE se Server on %SSA_SEHOST%" set SSA_LOGS=-1%SSAWORKDIR%\idssexx.log -2%SSAWORKDIR%\idssexx.err -3%SSAWORKDIR%\idssexx.dbg set SSA_ISSUP_CMD=start %SSA_PRM% "%SSABIN%\ssasrsv" %SSA_ISSUP_CMD% -n%SSA_SEPORT% -gfranky,%SSA_GRPDB% %SSA_LOGS%
UNIX example
SSA_LOGS="-1$SSAWORKDIR/idssexx.log -2$SSAWORKDIR/idssexx.err -3$SSAWORKDIR/idssexx.dbg" export SSA_LOGS $SSABIN/ssasrsv -n$SSA_SEPORT -gfranky,$SSA_GRPDB $SSA_LOGS &
Do not assign a RB Server port to the Search Server, as it will automatically determine the correct one based on the
-g
parameter. An error will be generated if a RuleBase Server and the
-g
switch are both specified.
Start the Console Server:
set SSA_PRM="MDM-RE cs Server on %SSA_CSHOST%" set SSA_LOGS=-1%SSAWORKDIR%\idscsxx.log -2%SSAWORKDIR%\idscsxx.err -3%SSAWORKDIR%\idscsxx.dbg set SSA_ISSUP_CMD=start %SSA_PRM% "%SSABIN%\ssacssv" set SSA_ISSUP_HOSTS=-hco%SSA_COHOST% -hse%SSA_SEHOST% -hxm%SSA_XMHOST% -gfranky,%SSA_GRPDB% %SSA_ISSUP_CMD% -o -n%SSA_CSPORT% %SSA_ISSUP_HOSTS% -w%SSAWORKDIR% %SSA_LOGS%
UNIX example
SSA_LOGS="-1$SSAWORKDIR/idscsxx.log -2$SSAWORKDIR/idscsxx.err -3$SSAWORKDIR/idscsxx.dbg" export SSA_LOGS SSA_ISSUP_HOSTS="-hco$SSA_COHOST -hse$SSA_SEHOST -hxm$SSA_XMHOST -gfranky,$SSA_GRPDB" export SSA_ISSUP_HOSTS $SSABIN/ssacssv -o -n$SSA_CSPORT $SSA_ISSUP_HOSTS -w$SSAWORKDIR $SSA_LOGS &
Do not assign a Rulebase Server port to the Console Server, as it will automatically determine the correct one based on the
-g
parameter. Use the
-o
switch to prevent Search and Rulebase Servers from being spawned automatically.

0 COMMENTS

We’d like to hear from you!