× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Exit Programs
  • From: John Earl <johnearl@xxxxxxxxxxxxxxx>
  • Date: Fri, 02 Mar 2001 11:44:38 -0800
  • Organization: The PowerTech Group

Frank,

Frank Reiss wrote:

>   Could someone explain what Exit Programs are and typical uses, if
> possible show an example.

An exit program is a program that you register with an existing
(usually IBM) process.  The existing process detects that the exit
program exists and calls it to perfrom some additional processing
(essentially, exiting the IBM process to do your bidding, and then
continuing with the IBM process).

An example might be where you want all FTP transfers to run at
RUNPTY(50) (they default to RUNPTY(20).  If you execute the WRKREGINF
command, you'll see that the IBM FTP server has an exit point called
QIBM_QTMF_SERVER_REQ.  It's input parameters are defined by a data
structure called VLRQ0100.  The layout of VLRQ0100 is as follows:

INPUT - Application_identifier    4 0 B
INPUT - Operation_Identifier      4 0 B
INPUT - User_Profile                 10 *CHAR
INPUT - Remote_IP_Address   Var *CHAR
INPUT - Length_of_IP_Address 4 0 B
INPUT - Operation_information   Var *CHAR
INPUT - Length_of_Operation_information   4 0 B
OUTPUT - Return_Code                 4 0 B

(See QB3ANL03   OS/400 TCP/IP Configuration and Reference V4R4 for
complete information on the FTP exit points)

While there are similarities, each Exit Point can have different
paramaters and data contents.  For the FTP Server, you might see the
following input to the Program:

INPUT - Application_identifier    "1"   (FTP Server)
INPUT - Operation_Identifier      "6"  (Send File)
INPUT - User_Profile                 "FRED      "
INPUT - Remote_IP_Address   "172.168.20.7"
INPUT - Length_of_IP_Address "12"
INPUT - Operation_information
QSYS.LIB/PRODUCTION.LIB/CUSTOMER.CUSTOMER"
INPUT - Length_of_Operation_information   "41"
OUTPUT - Return_Code                 Null


Your Program could say do like (I know that I've left out a bunch of
the binary conversion stuff):

If (&App_Id *EQ 1) DO
If (&Opp_ID *EQ 6) *OR (&OPP_ID *EQ 5) DO
    CHGJOB RUNPTY(50)
ENDDO
ENDDO

CHGJOB RUNPTY(20)
CHGVAR &ReturnCode 1

This is a very simplistic example, but it should give you an idea of
how you can use exit programs.  What you actrually do in your exit
program (we do security) is up to you.

If you're at COMMON in New Orleans this May, check out my session of
Exit Programs.  I get into much more detail (including the gotcha's)
there.

jte







--
John Earl - VP / CTO
The PowerTech Group
Kent, Washington - 253-872-7788
johnearl@powertechgroup.com
www.400security.com
--


+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.