ILU Lister v5.0 by Robert B. Wamble LSU Southern Regional Climate Center 9803.14 Note: Be careful to get the serverID correct for serve32xx. If there are conflicts between different servers, it could cause clients to fail. Full description is available below. Lister Objects: Supervisor creates Factory finders for clients. Factory finder checks primary and secondary RCCs for running factories, and provides the preferred one to the client. Watcher receives event timing reports from local data servers, and provides statistics clients with the info. Factory provides and instance of a data server to the client. Data servers list 3200, 3220, 3240, or 9641 data for the client, and report timing information to the local Foreman Watcher. This distribution has been tested on Linux and IRIX 5.3. Latest changes: Added GetLongname routines to all data servers. Modified all clients to make use of GetLongname. Added alternate output format to 3240 clients. Add a 1 after the normal arguments to get day per line output. Requirements: See below for full instructions on building. Here is a synopsis to build everything from scratch: From iluLister-v5.0 directory: vi Imakefile (check LOCALLIBRARIES line for netcdf, libz, etc.) ilumkmf cd extractlib-v3.3 vi Makefile (check for any changes, ie. Linux uses ranlib, IRIX uses lorder.) make cp libextract32xx.a .. cd .. make (builds the iluLister-v4.0 distribution) To run: (All servers and clients provide Usage if entered with no arguments.) Lister: serve32xx serverID (Ensure that you use the correct serverID) Each RCC will have a Factory running. It is REQUIRED that you use the abbreviation for your RCC as the serverID, and only run one instance of the Lister at your RCC. Example: serve32xx srcc To use the clients: client4man3220 serverID auth state station year period variable Example: client4man3220 srcc ucanrbw5 la 0549 1985 2 EMXT clientstats serverID Example: clientstats srcc (Provides usage and timing information) What the Lister does right now: The client performs a LookupObject on the serverID/Foreman32xx. It gets a reference to the Supervisor. The client then requests an instance of the finder, which checks available Factories and provides one to the client. Within the finder, every state is listed with a primary and secondary RCC Factory. The finder performs a LookupObject on the primary and secondary, getting references to both. It then calls the Factories' AreYouThere routine. If it works, the Factory exists and is running. If it fails, the Factory isn't running. Note that I made up the primary and secondary arrangements for each state. The primary is always the state's RCC, and the secondary is one of the others. When more intelligence is added to the finder, the secondary selection may change. The finder will provide a data server to the client if a Factory responded successfully. If the primary didn't work, it provides the secondary. If neither worked, it provides one of SRCC's data servers. The data server performs the client's request, and finished by providing timing information to the local Foreman's Watcher. Currently, timing information is the event start time, and the event duration in millionths of a second. The clientmaint program allows start/stop of maintenance mode on the Watcher, Supervisor, and Factory objects. Unauthorized use is not recommended. Possible enhancements: Interface to metadata server for headers. Improve client output. Full Requirements: Requirements to build: The server: ILU(alpha12), extractlib-v3.2, Znetcdf, and udunits installed. The client: ILU(alpha12), Znetcdf, and udunits installed. Requirements to execute: For now, all servers/clients must use the same binding service. Type serve32xx with no arguments to see usage of ILU_BINDING_SERVICE: ie., setenv ILU_BINDING_SERVICE "srcc.lsu.edu:130.39.129.231:2001" or export ILU_BINDING_SERVICE="srcc.lsu.edu:130.39.129.231:2001" For the demo, we'll probably use the NRCC simple binder. For now, use samoon.srcc.lsu.edu (130.39.129.231, port 2001; as above example). The server: 3240_DATA_PATH or PATH3240 should be pointing to the directory containing the state's directories; ie, if the directory for Louisiana 3240 data is /hourly/3240/la, then the data path variable would be /hourly/3240. 3220_DATA_PATH or PATH3220 should point at the 3220 state directory. 9641_DATA_PATH or PATH9641 should point to the directory containing the mlynrmls.cdf file. *******>>> Note: Under Linux, use the PATHxxxx environment variables. Linux doesn't like env vars starting with numbers. The client: ILU_BINDING_SERVICE must be set to the simple binder (ilusb) being used by the server. This allows the client to look up the server/Factory. Run client4man3240, client4man3220, or client4man9641 alone for usage.