From NSDLWiki

Jump to: navigation, search

Handle Server Configuration

The NDR is dependent on a local instance of the Handle System ( Handles are used as the basis for all unique indentifiers in the NDR. When a repository item is added, the Handle server is queried for the next available handle and it is assigned to that item. The Handle service tracks all assignments made through it and prevents duplicative assignment.

Technical Information

NSDL's handle instance represent a live portion of the global handle network. Participating handle instances must be active at all time possible and permit anyone to resolve handles within our Namespace. NSDLs assigned namespace is:


Each handle instance must authenticate itself via pub key to in ordered to be considered as authoritative for that namespace. Once a server is athenticated will refer queries for the assigned namespace to that server. The pubkeys and configuration files to do this are incorporated in server directories.

There are two handle servers running with the NSDL cluster. NSDL's active handle server is assigned its own physical IP, Presently this is running on as a secondary IP (eth0:1). Handle Servers typically run on port 2641, which must be permitted Public Access through all firewalls.

A Mirroring server is also configured on Repo4, this is configured to poll the primary server and replicate its data. In the event of the need for a fall-over from Server8, one must 'down' the IP on Server8 (# ifdown eth0:1 ) and then to 'up' the secondary IP interface on Repo4 (# ifup eth0:1). The config.dct file on repo4 must be replaced with the production version (config.dct.leader) and the handle server restarted (# service handled restart).

Both handle servers use Postgres backend storage. A local postgres database 'handle' is available on each server. This database is backed up daily on the Mirror server via crontab to /var/lib/pgsql/backups

The Handle server daemon runs as user 'fedorad' on each server. All files needed for the servers are located in /usr/local/hs . svr_1 directory contains the actual java .jar files, config files and pub keys. Startup and test scripts are found in the bin directory, in particular the script '' can be used to start the daemon by hand, running as user 'fedorad' and with all the correct parameters (eg: # screen ).

There is also a redhat daemon startup script provided in /etc/init.d/handled that will automatically start/stop the service upon reboots. It can also be used with the 'service' command to perform hand operations (note: it calls ). Similarly Server8 is configured to always start up with is secondary interface to up and running (ONPARENT=yes).

The handle service has proven to be very reliable. In general it should come up automatically and work well under most conditions.

Personal tools