VMS: logicals UNIX: links, but...

Paul Houtz gph at hpsemc.HP.COM
Tue Apr 11 03:48:32 AEST 1989


chris at mimsy.UUCP (Chris Torek) writes:
>In article <475 at caldwr.UUCP> rfinch at caldwr.UUCP (Ralph Finch) writes:
>>We run models, and often want to run the same model, simultaneously,
>>in the same directory, with two different input files, and produce two
>>corresponding output files.
>
>Instead of using `logicals' or links or symlinks or . . ., just:
>
>	model < input1 > output1 &
>	model < input2 > output2 &

   The solutions you recommend are workable in only the simplest 
situation.  If you have a system that uses many programs interacting
with many different data files or data bases, this approach is not
practical.

   If you ask me, this is a another area where UNIX is deficient.  Once
you get used to being able to move large complex systems that use hundreds
of files around at will, as you can on VMS and even MPE systems, you run 
run into significant problems on UNIX.

   By specifying a simple target file name, such as "journ_entries" or
"time_card_edited", you can make a command file that puts logicals in
place to point all these files at the appropriate directories.   If you 
need to run the program multiple times, or against different data (say
test data versus real data) or if you need to run a benchmark and have
multiple instances of the software running at the same time, it becomes
VERY difficult on UNIX.   I have had to change the SOURCE CODE of    
programs in order to get them to open different files.   This is really
a pain.   If you don't happen to have the source (say you bought object
but not source rights) then you are very limitied as to where you can
put the program, and what files it accesses.  

   A good example is a program that creates a report destined for a 
printer named, for example "edit.listing".  One may not like the fact
that a "named file" is used instead of stdout, but many such programs
exist in the real world.   So what do you do to run 20 of these programs 
simultaneously?  On a 20 user system, you may have to.   The only way 
I know of is to change the program to make it write to stdout.   This 
isn't too bad if it's only one file, but what if that same program 
reads from 10 files that are unique to each user?   Here's a real world
example:   many businesses run 2 or 3 general ledgers at the same time.
They would probably want to use the same objects, but run them against
different files.   They would probably all run at the same time at 
say, month-end?

    I really don't know a good way to solve this problem, except to 
run the three programs on three different machines.

    Does anyone out there know a better solution, or if any vendor has
decided to add this flexibility to UNIX?



More information about the Comp.unix.questions mailing list