Configuring an LDM Installation


If you already have a previous version of the LDM installed and working, then you can probably skip these steps.

Steps

  1. Obtain upstream data-feeds

  2. Request authorization at the upstream LDM

  3. Edit the LDM configuration-file, etc/ldmd.conf

  4. Edit the pqact configuration-file, etc/pqact.conf, if appropriate

  5. Edit the scour configuration-file, etc/scour.conf, if appropriate

  6. Edit the LDM user's crontab(1) file

  7. Ensure email forwarding

  8. Ensure that the LDM is started at boot-time


Obtain upstream data-feeds

First, find out who your upstream feed site(s) will be. If you don't know and you are qualified to participate in the Unidata IDD, then contact the Unidata Program Center at <idd-connect at unidata.ucar.edu> with the following information:

Note that you can have multiple upstream hosts for any given data-feed.

Request authorization at the upstream LDM

Ask the administrator of the upstream LDM to add ALLOW entries for your LDM to the upstream LDM's configuration-file, ldmd.conf. For example,

ALLOW UNIDATA  your.ldm.host
ALLOW NLDN  your.ldm.host

Workshop-specific instructions.


Edit the LDM configuration-file, etc/ldmd.conf

This file tells an LDM what to do on startup. Possibilities include executing programs, requesting data, and authorizing connections. The default file that comes with the distribution contains examples. More information on this configuration-file can be found on the ldmd.conf webpage.

Typical entries in this file are:

Workshop-specific instructions.


Edit the pqact configuration-file, etc/pqact.conf, if appropriate

This file tells the pqact utility how to locally process various classes of data-products. Processing actions include filing the data-product, executing a local program, and piping the data-product to the standard input of a local program. If you're not going to process data-products locally, then you don't need to edit this file.

More information on this configuration-file.

  • Configuring for Unidata Decoders
  • Configuring for GEMPAK
  • Configuring for McIDAS

    Workshop-specific instructions.


    Edit the scour configuration-file, etc/scour.conf, if appropriate

    This file tells the scour utility what old files should be deleted and when to delete them. This is useful if a pqact process is saving data-products as local files; and you want to keep only the most recent files to prevent the file system from becoming full. If you're not doing this, then you probably don't need to edit this file.

    More information on this configuration-file.

    Workshop-specific instructions.


    Edit the LDM-user's crontab(1) file

    Edit the crontab file of the LDM-user by, for example, executing the command

    crontab -e
    as the LDM-user. Then

    Workshop-specific instructions.


    Ensure email forwarding

    Email for the LDM user can be generated by a crontab(1) entry or by someone trying to contact the LDM administrator at a site. Consequently, you should ensure than any email sent to the LDM user is forwarded to a responsible person. On most UNIX-like systems (on which the sendmail(8) daemon is used to deliver email) this is done by having a line like the following:

    user@host
    
    in the file .forward in the LDM user's home-directory. This file must also be be owned by the LDM user and be world-readable. For security, this file should not be writable by anyone other than the LDM user.

    Ensure that the LDM is started at boot-time

    Although boot-time start-up procedures vary amongst operating systems, each can be tailored to start the LDM. It is best to start the LDM as late as possible in the boot process to avoid interfering with processes that could hang the system (e.g., the syslog daemon). One possible LDM script is:

    export PATH=/bin:/usr/bin
    
    LDMHOME=/usr/local/ldm
    LDMBIN=$LDMHOME/bin
    LDMADMIN=$LDMBIN/ldmadmin
    PQCHECK=$LDMBIN/pqcheck
    PQCAT=$LDMBIN/pqcat
    PQ=$LDMHOME/data/ldm.pq
    LOG="logger -p local0.err $0:"
    
    case "$1" in
    
    start)
        $LOG 'Starting LDM system...'
        if [ -x $LDMADMIN ] ; then
    	if su - ldm -c "$LDMADMIN isrunning"; then
                $LOG "LDM system is already running."
    	else
    	    if [ ! -f $PQ ] ; then
    		$LOG "Product-queue doesn't exist.  Creating..."
    		if ! su - ldm -c "$LDMADMIN mkqueue"; then
    		    $LOG "Aborting..."
    		    exit 1
    		fi
    	    else
    		#
    		# Test the product-queue for corruption.
    		#
    		if ! $PQCHECK -l /dev/null -q $PQ; then
    		    case $? in
    		    1)  $LOG "System error checking product-queue.  Aborting..."
    			exit 1
    			;;
    		    2)  $LOG "Adding writer-counter to product-queue..."
    			if ! $PQCHECK -F -q $PQ; then
    			    $LOG "Aborting..."
    			    exit 1
    			fi
    			;;
    		    3)  $LOG "Product-queue was incorrectly closed.  " \
    			    "Checking..."
    			if $PQCAT -s -l /dev/null; then
    			    $LOG "Product-queue appears OK. "
    			    $LOG "Clearing writer-counter..."
    			    if ! $PQCHECK -F -q $PQ; then
    				$LOG "Couldn't clear counter.  Aborting..."
    				exit 1
    			    fi
    			else
    			    $LOG "Product-queue appears corrupt.  Deleting."
    			    rm $PQ
    			    if ! su - ldm -c "$LDMADMIN mkqueue -f"; then
    				$LOG "Couldn't make new product-queue.  Aborting..."
    				exit 1
    			    fi
    			fi
    			;;
    		    4)  $LOG "Product-queue is corrupt.  Deleting."
    			rm $PQ
    			if ! su - ldm -c "$LDMADMIN mkqueue -f"; then
    			    $LOG "Couldn't make new product-queue.  Aborting..."
    			    exit 1
    			fi
    			;;
    		    esac
    		fi
    	    fi
    	    su - ldm -c "$LDMADMIN clean"
    	    su - ldm -c "$LDMADMIN start"
    	fi
        fi
        ;;
    
    stop)
        $LOG 'Stopping the LDM system.'
        if [ -x $LDMADMIN ] ; then
            su - ldm -c "$LDMADMIN stop"
        fi
        ;;
    
    esac
    

    Note that some user-shells do not conform to the the UNIX standard and will not understand the "if ! ..." expressions in the above (e.g., SunOS 5.8's /bin/sh). You can test your user-shell with the following command:

    if ! false; then echo OK; fi
    

    Instead of using the logger utility as above, echo utility you might wish to use something else (depending on your operating system). Note that the -p option is system-dependent.

    Consult the documentation on your operating system or with your system administrator for details on how to incorporate this script (or something similar) into the boot-time start-up procedure of your system.

    Workshop-specific instructions.