Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!hplabs!hpda!hpcuhc!hpsemc!gph From: gph@hpsemc.HP.COM (Paul Houtz) Newsgroups: comp.unix.questions Subject: Re: VMS: logicals UNIX: links, but... Message-ID: <810035@hpsemc.HP.COM> Date: 10 Apr 89 17:48:32 GMT References: <475@caldwr.UUCP> Organization: HP Technology Access Center, Cupertino, CA Lines: 51 chris@mimsy.UUCP (Chris Torek) writes: >In article <475@caldwr.UUCP> rfinch@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?