Slony-Replication Clients
JSOC as a client of NSO
By acting as a slony client, the JSOC fetches GONG data from NSO. To become a slony client of another DRMS site, a site must run the 'subscribe_series' script, wherein the client can subscribe to one of more series. This script is is located at /home/jsoc/cvs/Development/JSOC/base/drms/replication/subscribe_series/subscribe_series. The script takes three arguments: a configuration file name, which identifies a file that contains client-server connection information (such as the name of the server and port to connect to); a subscription-list file name, which contains a list of server data series to which the client is subscribing; a file containing information necessary for locating a ssh-agent instance. When configured for fetching GONG data, the initial run of subscribe_series will create a _nso db namespace, used by slony for internal bookkeeping, and it will create a gong namespace, used by DRMS to contain the gong related data series. It will also create the actual GONG data series listed in the subscription-list file. Unlike the other client files, the configuration file will be used each time the client subscribes to a new series. It is therefore saved in the JSOC CVS repository. The subscribe_series client configuration file is named repclient.nso.cfg and it is located in the CVS source tree at JSOC/proj/repliation/etc.
After subscribe_series has been executed, the client will have a static snapshot of the GONG data series to which the client subscribed. To automatically retrieve changes to the GONG data that may happen after the time of subscription, the client must maintain a cron job that runs a script to fetch and ingest slony logfiles. This script is named get_slony_logs.pl, and it is located at /home/jsoc/cvs/Development/JSOC/base/drms/replication. The cron job itself runs from jsocport as user jsocprod.
Together subscribe_series and get_slony_logs.pl ensure that the GONG DRMS database information gets transferred from NSO to the JSOC. However, these utilities do not transfer the actual image files. Those files must get transferred from NSO and ingested into SUMS directories. To do that, the JSOC uses the JMD (Java Mirroring Daemon) provided by NSO. This program runs on jsocport as user jsocprod.