NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20011112: why a DATALOC doesn't update to the fesired host (cont.)



>From: "Paul L. Sirvatka" <address@hidden>
>Organization: COD
>Keywords: 200111082120.fA8LK8121993 McIDAS ADDE DATALOC

Paul,

>OK..so every time dataloc is run it writes to this file. Gotcha...

Right.

>And yes my scripts do have a DATALOC ADD command. But I want this. My
>scripts attempt to grab an AREA file from a server. If after so many
>attempts it does not find the image, I switch servers and look elsewhere
>after which I set he servers back to their default location (for
>me...CACIMBA...)

OK, this is the situation that I mused about in my last email.  Given that
you are switching servers, you _will_ want to edit your Unix shell
script(s) and add the definition and export of MCTABLE_WRITE.

>SO why can't I change them without deleting the file MCADDE.TXT first? I
>understand now why the file is showing up; why can't it be changed?
>
>Wait!!! I see...Follow with me in the folowing statements...

>I do have shell scripts to run the commands. In kickoff...it defines
>MCTABLE_READ="${MCHOME}/data/ADDESITE.TXT"

OK, so this sepcifies that ${MCHOME}/data/ADDESITE.TXT will be the only
file to be _read_ by McIDAS commands when determining what server to go
to.  Your problem is that your script has not said which file should be
updated when a DATALOC ADD is run.  It is most likely defaulting
to ~mcidas/mcidas/data/MCTABLE.TXT (your scripts are being run as
'mcidas').  What you most likely want is to define MCTABLE_READ and
MCTABLE_WRITE in your scripts as follows:

MCTABLE_READ="${MCHOME}/workdata/MCTABLE.TXT;${MCHOME}/data/ADDESITE.TXT"
MCTABLE_WRITE="${MCHOME}/workdata/MCTABLE.TXT"

Follow me here for a moment...

In the McIDAS login, MCTABLE_READ and MCTABLE_WRITE should be defined
as:

MCTABLE_READ="${MCHOME}/workdata/MCTABLE.TXT;${MCHOME}/data/ADDESITE.TXT"
MCTABLE_WRITE="${MCHOME}/data/ADDESITE.TXT"

This allows the user 'mcidas' to alter ADDESITE.TXT and so affect
each user that runs McIDAS (each user's MCTABLE_READ should have
${MCHOME}/data/ADDESITE.TXT as the second client table to read).
In normal operations, this would mean that 'mcidas' would have to
manually edit ${MCHOME}/workdata/MCTABLE.TXT in order to specify some
servers differently from the global settings in ${MCHOME}/data/ADDESITE.TXT.

Now, in your cron-initiated scripts, you can play by different rules.
You can use the set of default dataset-servers pairs in 
${MCHOME}/data/ADDESITE.TXT, AND you can change on the fly the server
that the cron-initiated process goes to.  This is done by setting
MCTABLE_READ and MCTABLE_WRITE to:

MCTABLE_READ="${MCHOME}/workdata/MCTABLE.TXT;${MCHOME}/data/ADDESITE.TXT"
MCTABLE_WRITE="${MCHOME}/workdata/MCTABLE.TXT"

Follow me?

>So when I run DATALOC ADD <site> it changes the MCTABLE.TXT file.  

IF that is the file designated to receive the write.  It dawned on
me this morning that the default set my McIDAS in lieu of a 
MCTABLE_WRITE specification is ~/mcidas/data/MCTABLE.TXT.  I think
you will find such a file if you look.  Note: if your 'mcidas' user
does not have a ~/mcidas/data directory, then you must create one!

>But I am still looking at the ADDESITE.TXT file so the crontab scripts
>being run do not see the change. That is why they tell me after them
>DATALOC ADD command that I am still looking at the old place.

Exactly.

>So...should I change that in the shell script?

Yes.

>Should it be a separte TXT
>file for each script in case there are several running at the same
>time?

It could be, but I don't know if you need to be that general.

>OF should I make the MCTABLE.TXT the place from where I read and
>just let it be global changes?

You could do this like I indicate above.

>I think I am closer to understanding...but I am still confused on what I
>need to do to fix it.

Set MCTABLE_READ and MCTABLE_WRITE as I indicate above in your script(s)
and make sure that these settings are exported in that(those) script(s).

Tom