User created exit program on iSeries

520 pts.
Tags:
AS 400
iSeries
Is there a way to write a user exit program that would protect the iSeries from abusive users? Any code examples?

Software/Hardware used:
Under V7R1

Answer Wiki

Thanks. We'll let you know when a new response is added.

Too much DASD?? I’d think you would want to check CPU usage…You could probably put together an ASYNC job that does a WRKACTJOB to *PRINT, Copy that spool to a flat file and then  read it looking for jobs with a high CPU percent. Then you could do a CHGJOB  and change that jobs RUNPTY and send a message. When you have checked all jobs, delete the spool file and DLYJOB a set time frame and repeat until it’s no longer needed. Put in an ENDJOB for a set time of day.

Discuss This Question: 8  Replies

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.
  • TheRealRaven
    The exit points are documented to allow user-created programming, and some examples as well as some free-ware offerings can be found around the Internet. There are various caveats, though, that can take some time and experience to work through.

    Because of the time that it can take and the vulnerabilities that can be created through inexperience, it's almost always both cheaper and safer to pick a commercial offering.
    24,415 pointsBadges:
    report
  • GregManzo
    We only ever had one user that would routinely abuse the system, so we always knew where to look. We changed his password to expire every 7 days, after that he got the hint and started to behave better.
    2,515 pointsBadges:
    report
  • ToddN2000
    What do you mean by abuse? There are numerous things thing that can be done security and operations wise to prevent this.
    102,585 pointsBadges:
    report
  • WoodEngineer
    IBM has some examples of exit programs. We use one of theirs to protect FTP access. I believe there is another one for ODBC.
    If you want to just purchase a package, check out KISCO's offering. Their package is quite comprehensive and reasonably priced. It would save you a lot of time.
    7,930 pointsBadges:
    report
  • TheRealRaven
    Time is saved not only in initial coding and testing. Exit program behavior needs to be revalidated after various PTFs and especially fully tested before OS upgrades. Vendors of the packages will generally get test versions of new OS releases before GA, and they ensure that their programming is updated before customers upgrade their systems.
    24,415 pointsBadges:
    report
  • Rrbond07
    What I mean by abuse is, I wanted an exit program that will terminate a user's job if it starts to eat up too much DASD, and then send a message to QSYSOPR.
    520 pointsBadges:
    report
  • WoodEngineer
    Check out this parm for user profiles: Maximum allowed storage (MAXSTG). It may do what you want without any programming.
    7,930 pointsBadges:
    report
  • ToddN2000
    We had a program we would run once about every other month.

    Something like this adding as many user libraries you need.
    When done you just query the file MYLIB/LIB_OBJS looking
    for large files of file with deleted records based on 
    parameters set in your select statement. 
     
    You could even add the RUNQRY to the CL.

    Maybe I have been luck but most places I have worked 
    very little users had the ability to create data files on their own.

    It was just the programming staff and managers who may write the occasional query.

      PGM                                                              
                                                                       
      CLRPFM MYLIB/LIB_OBJS                                           
                                                                       
      DSPFD    FILE(USRLIB1/*ALL) TYPE(*MBR) +                        
     OUTPUT(*OUTFILE) FILEATR(*PF)  OUTFILE(MYLIB/LIB_OBJS) +         
                   OUTMBR(*FIRST *ADD)                                 
      MONMSG     MSGID(CPF2123 CPF2124 CPF2110 CPF3064 CPF3012 CPF3020)
                                                                       
      DSPFD    FILE(USRLIB2/*ALL) TYPE(*MBR) +                         
     OUTPUT(*OUTFILE) FILEATR(*PF)  OUTFILE(MYLIB/LIB_OBJS) +         
                   OUTMBR(*FIRST *ADD)                                 
      MONMSG     MSGID(CPF2123 CPF2124 CPF2110 CPF3064 CPF3012 CPF3020)
      
      ENDPGM   

    102,585 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

Thanks! We'll email you when relevant content is added and updated.

Following

Share this item with your network: