Summary

Sometimes it is necessary to restart one of the boks_bridge processes that BoKS Manager hosts use to communicate with one another. Normally this is done by restarting BoKS Manager by running 'Boot -k; Boot' but it can be useful to be able to restart just a specific bridge.


Procedure


Depending on the configuration of the host in question, there are a number of boks_bridge processes running with different arguments. For every "send bridge" there is a corresponding "receive bridge" (for more details, please see Appendix A "System Architecture" in the Administration Guide).

The running of these processes is managed by 'boksinit'; You could simply kill the correct bridge process (use signal 15/SIGTERM to allow the bridge to shut down nicely) and boksinit will notice that it has died and restart it. boksinit will also log this in the $BOKS_var/boks_errlog.

You can identify the correct boks_bridge process by its arguments ("boks_bridge -xn -s -l clntd.s ...")

Note that in the following listings the term "client" refers to Server Agent and the term "server" refers to Replica.

Master:

  • Client daemon send bridge ('boks_bridge -xn -s -l clntd.s -Q ....') sends messages from Master to client, runs on Master
  • servm send bridge ('boks_bridge -xn -s -l servm.s-Q ....') sends BoKS database updates from Master to servers, runs on Master
  • master receive bridge ('boks_bridge -xn -r -l master.r-Q ....') reads messages from server to Master, runs on Master
  • servc receive bridge ('boks_bridge -xn -r -l servc.r -Q ....') reads messages from client programs to servc, runs on Master/server
  • servc send bridge ('boks_bridge -xn -s -l servc.s-Q ....') sends messages from client programs to servc, runs on all machines

Replica:

  • master send bridge ('boks_bridge -xn -r -l master.s-Q ....') sends messages to Master from server, runs on server
  • servm receive bridge ('boks_bridge -xn -s -l servm.r-Q ....') reads BoKS database updates from Master to servers, runs on server
  • servc receive bridge ('boks_bridge -xn -r -l servc.r-Q ....') reads messages from client programs to servc, runs on Master/server
  • servc send bridge ('boks_bridge -xn -s -l servc.s-Q ....') sends messages from client programs to servc, runs on all machines

Server Agent/Client:

  • servc send bridge ('boks_bridge -xn -s -l servc.s -Q ...') sends messages from client pgms to servc, runs on all machines
  • client daemon receive bridge ('boks_bridge -xn -r -l clntd.r -Q ...') reads messages from Master to client, runs on client

Another way of identifying the pid of a specific bridge process is to look in the lock files for each process located in the $BOKS_var/run directory (for BoKS 6.6 and later) or $BOKS_var/LCK directory (BoKS 6.5). For example, restart the clntd.s bridge:

BoKS # kill -HUP `cat $BOKS_var/run/clntd.s`

You can also use a feature in the debug command 'bdebug' to restart a bridge process for you by telling it to disable debug:

BoKS # bdebug bridge -x0

The first argument to bdebug is the program to debug. For the bridges, the valid options are:

bridge_clntd_s - sends messages from master to client, runs on master

bridge_clntd_r - reads messages from master to client, runs on client
bridge_master_s - sends messages to master from server, runs on server
bridge_master_r - reads messages from server to master, runs on master
bridge_servc_s - sends messages from client pgms to servc, runs on all machines
bridge_servc_r - reads messages from client pgms to serc, runs on master/server
bridge_servm_s - sends DB updates from master to servers, runs on master
bridge_servm_r - reads DB updates from master to servers, runs on server

bdebug will update the boksinit configuration and signal (SIGHUP) boksinit which will notice the change and restart the bridge.

Using this method will not produce a message in the BoKS error log.


Still have questions? We can help. Submit a case to Technical Support.

Last Modified On: May 25, 2018