NAME
MVS::JESFTP - Perl extension for submitting JCL to MVS systems through
FTP.
SYNOPSIS
use MVS::JESFTP;
$jes = MVS::JESFTP->open($host, $logonid, $password) or die;
$jes->submit($job);
$aref = $jes->wait_for_results($jobname, $timeout);
$jes->get_results($aref);
$jes->delete_results($aref);
$jes->quit;
DESCRIPTION
IBM mainframe MVS systems accept job input through the Job Entry
Subsystem (JES). This input is in the form of 80-byte *card images* that
correspond to the punch cards of ancient times. The new releases of MVS
can accept this input via FTP to the MVS *internal reader* (equivalent
to the physical card readers of older systems).
This module uses the Net::FTP module under the hood to handle the FTP
chores.
METHODS
$jes = MVS::JESFTP->open($host, $logonid, $password);
This method creates a connection to the MVS system JES. If the
connection is made, "open" returns a reference $jes to the JES
connection; otherwise "open" returns "undefined".
"open" takes three arguments:
$host
The IP address or DNS name of the MVS system.
$logonid
A valid FTP logon ID for the host.
$password
A valid FTP password for the host.
$jes->submit($job);
This method submits the jobstream contained in the file $job. If the
submission is successful, "submit" returns true; otherwise "submit"
returns "undefined".
$aref = $jes->wait_for_results($jobname, $timeout);
This method waits for the output of the submitted job to arrive in the
JES *hold queue*. "wait_for_results" returns an array reference $aref to
the a list of output files for the job suitable for input to
"get_results", or "undefined" if NO results could be obtained. (1)
"wait_for_results" takes two arguments:
$jobname
The name of the job you presumedly submitted with the "submit"
method.
$timeout
How many seconds to wait for the job output to arrive; defaults to
60.
$result = $jes->get_results($aref);
This method retrieves the output of the submitted job from the JES *hold
queue*. "get_results" returns "undefined" if successful; otherwise it
returns a reference to an array of names of the files it could NOT
retrieve. (1)
"get_results" takes one argument:
$aref
An array reference to the a list of output files from the job, such
as "wait_for_results" generates. "get_results" will retreive (via
FTP) each output file in turn and store them in the current
subdirectory; file names will be preserved.
$result = $jes->delete_results($aref);
This method deletes the output of the submitted job from the JES *hold
queue*. "delete_results" returns "true" if successful; otherwise it
returns a reference to an array of names of the jobs it could not
delete.
"delete_results" takes one argument:
$aref
An array reference to the a list of output files from the job, such
as "wait_for_results" generates. "delete_results" will delete each
job in turn.
$jes->quit;
This method closes the connection to JES. It is just the Net::FTP "quit"
method.
(1) To use this method, your JCL *JOB* card must specify a *MSGCLASS*
that directs its output to the JES *hold queue*. If you don't understand
what this means, don't use this method, or you will hang your calling
program.
PREREQUISITES
You have to have Net::FTP installed.
INSTALLATION
tar xzf MVS-JESFTP-1.00.tar.gz
perl Makefile.PL
make
#
# Edit TEST.SEQ to contain your site-specific logonid,
# password, account, & node in the appropriate places.
#
make test
make install
For Win32 systems, after unarchiving the the package, copy JESFTP.pm to
C:\Perl\site\lib\MVS (modifying this path for your installation of
Perl).
AUTHOR
Mike Owens
mike.owens@state.nm.us
Copyright (c) 2000 Mike Owens. All rights reserved. This program is free
software; you can redistribute it and/or modify it under the same terms
as Perl itself.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the GNU
General Public License or the Artistic License for more details.
SEE ALSO
perl(1)
"Net::FTP"