SUMMARY: IBM To Sun Communications

From: Meg Grice (mlg@cstp.umkc.edu)
Date: Thu Jul 23 1992 - 22:30:50 CDT


Sun Managers:

Thanks for the help. I have not tried any of the solutions so far.
But several people have asked for the summary. I have included
my summary of just over 20 responses.

The original questions:
------------------------
> Fellow System Managers,
>
> I am working on a network of Sun computers that are connected to an IBM
> mainframe using the product "IBM TCP/IP for MVS". This product allows
> the IBM mainframe to be an NFS server and to do ftp.
>
> Because the company has traditionally been on IBM mainframes, all of
> the large databases are kept on the IBM. The IBM runs programs that
> extract the information from the databases and creates files that
> the Sun computers can access via NFS. These processes currently
> run every hour, but they plan to change that to every 15 minutes.
> The data is volatile and the application is time critical.
>
> This works fine except for the timing. Some times the IBM runs slower
> or faster depending on what other jobs are on the machine. The Sun
> computers are setup to run cron every hour so if the information is
> not updated yet, the end users get old, useless data.
>
> I would like to be able to setup some communication between the two machines
> so that each knows what the other is doing. On my UNIX to UNIX machines,
> I let one machine rsh to the others so that it always knows when something
> is done.
>
> I know nothing about IBM mainframes and the mainframers know nothing about
> UNIX. Could someone please give me some help? Does anybody know how
> to accomplish this?
>
> Thanks for any help.

Thanks to for your suggestions. They are appreciated.

>From ckd@eff.org Tue Jul 7 20:58:51 1992
>From jbence@math.ucla.edu Wed Jul 8 10:54:05 1992
>From eckhard@ikarus.ts.go.dlr.de Thu Jul 9 06:43:08 1992
>From oneel@arupa.gsfc.nasa.gov Thu Jul 9 07:14:10 1992
>From matt@wbst845e.xerox.com Thu Jul 9 07:43:51 1992
>From finnell@portia.mitre.org Thu Jul 9 08:34:20 1992
>From melissa@broccoli.cc.columbia.edu Thu Jul 9 08:52:39 1992
>From david@srv.PacBell.COM Thu Jul 9 08:57:54 1992
>From bchivers@smiley.mitre.org Thu Jul 9 09:19:43 1992
>From sid@ingres.com Thu Jul 9 09:22:30 1992
>From js@acm.Princeton.EDU Thu Jul 9 09:35:40 1992
>From brianc@jekyll.ucsf.EDU Thu Jul 9 10:41:01 1992
>From txmper@txm.ericsson.se Thu Jul 9 12:00:18 1992
>From bb@math.ufl.edu Thu Jul 9 12:43:08 1992
>From trc@bridge2.NSD.3Com.COM Thu Jul 9 12:49:28 1992
>From Perry_Hutchison.Portland@xerox.com Thu Jul 9 12:56:27 1992
>From pld@ulam.math.luc.edu Fri Jul 10 09:07:53 1992
>From @mail.uunet.ca:sunlcompose!a208@sunlife.canrem.COM Fri Jul 10 15:26:20 1992
>From miker@sbcoc.com Mon Jul 13 08:21:52 1992
>From murphy!jupiter.murphy.com!peterg@uunet.UU.NET Mon Jul 13 21:14:45 1992
>From jdschn@nicsn1.monsanto.com Mon Jul 13 11:48:33 1992

Possible Solutions:
-------------------

1) IBM runs a continous process that runs unless a certain file exists.
    IBM creates a file that indicates it is finished.
    The Sun runs a continuous process that looks for the file.
    When the Sun sees the file it runs its job.
    When the job finishes the Sun removes the file.
    The IBM sees that the file is gone and launches another job.
   
    (Some people suggested one file with contents that changed to indicate
    what should be happending. This is similar to the above.)
        I don't know how a continuous job would be implemented under MVS.
        The jobs might have to run every 10 or 15 minutes instead of contiuous.

2) Send job finished mail between the two machines. (I don't currently
    have e-mail between these two.)
 
3) Use Cron on the Sun, but remember the timestamp of the file used
    last time and if it is not new check every minute until the timestamp
    is new.

4) If MVS TCP/IP supports RPC write a daemon process for the IBM so the
    Sun and IBM programs could communicate.

5) Use a REXEC on the IBM to kick-off update on Sun. (I don't know
    if MVS TCP/IP has this facility.)

6) Use tn3270. (I have tn3270, but I thought it was a telnet program and
    do not understand how it could be helpful.)

7) Write a daemon MVS program to open tcp/ip connections.

8) VM TCP/IP has REXECD.
        That message is included. It contains a code example.

> From jdschn@nicsn1.monsanto.com Mon Jul 13 11:48:33 1992
>
> We have the VM TCP/IP product and have had simliar needs. One thing we wrote
> is a Unix program that allows us to issue a command on the VM mainframe and
> get back the result. It is done by connecting to the REXECD server on the
> IBM. Here is a sample program that does this:
>
>
> #include <stdio.h>
> #include <sys/types.h>
> #include <netdb.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #define EXEC_TCP 512
>
> main (argc,argv)
> int argc;
> char *argv[];
> {
> extern int errno;
>
> int chan;
> int size;
>
> struct {
> char status;
> char text[2048];
> } loc_message;
>
> char message[2048];
> char userid[16];
> char password[16];
> u_short inport;
> int fd2p;
>
> int buflen;
> int status;
>
>
> /* check argument types. This program expects something like:
> *
> * rexec target-node userid password 'command'
> *
> */
> if (argc < 4){
> printf ("Usage: rexec target-node userid password 'command'\n");
> exit (0);
> }
>
> /* printf ("argv[1] = %s\n",argv[1]);
> printf ("argv[2] = %s\n",argv[2]);
> printf ("argv[3] = %s\n",argv[3]);
> printf ("argv[4] = %s\n",argv[4]);
> */
> inport = EXEC_TCP;
> fd2p = 0;
>
> /* Create a socket on which to talk */
>
> password[0]='\0';
> userid[0]='\0';
> chan = rexec(&argv[1], inport, argv[2], argv[3], argv[4], &fd2p);
>
> if (chan == -1){
> printf ("Socket create request failure\n");
> exit ();
> }
>
> /* Read the message from the other side to know whether this is ok */
>
> size = recv(chan, message, sizeof(message), 0);
> if (size == -1 || size == 0){
> printf ("Receive returned invalid size of: %d\n",size);
> exit();
> }
>
> /* printf("Data line size = %d...\n",size); */
> message[size] = '\0';
> printf("%s",message);
>
> /* Now, read lines from the file and send them to the VAX */
>
> size = recv(chan, message, sizeof(message), 0);
> while (size != -1 && size != 0){
> /* printf("Data line size = %d...\n",size);*/
> message[size] = '\0';
> printf("%s",message);
> size = recv(chan, message, sizeof(message), 0);
> }
>
> close (chan);
> exit();
> }
>
> It is kind of rough since it requires a userid and password on the command
> line for authentication, but you could beef it up anyway you want. I can't
> guarentee it would work as well on the MVS TCP/IP software, but at least it
> gives you a start. It is called like this:
>
> rexec ibm_machine_name userid password "command_to_be_issued"
>
> The idea is that the Unix machine could ask the application what state the
> databases are in and respond accordingly.
>
------------------------------------------------------------------------------
Meg Grice (mlg@cstp.umkc.edu) Computer Science, UMKC
UNIX Systems Administrator 5100 Rockhill Road
USA:816-235-5212 Kansas City, MO 64110



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:06:45 CDT