× 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.



The API name is QWVRCSTK...

Best regards,
Carsten Flensburg

----- Original Message -----
From: "J Michael Smith" <JMichael.Smith@arch.com>
To: <rpg400-l@midrange.com>
Sent: Monday, December 24, 2001 8:16 PM
Subject: RE: New stuff on Who envoked that trigger program?


> Peter,
>
> I have search from documenation QWRCSTK and wasn't able to find any.
Could
> you please provide a URL.
>
> Thanks
>
> Michael Smith
>
> -----Original Message-----
> From: rpg400-l-admin@midrange.com [mailto:rpg400-l-admin@midrange.com]On
> Behalf Of Peter Connell
> Sent: December 23, 2001 07:18 PM
> To: 'rpg400-l@midrange.com'
> Subject: New stuff on Who envoked that trigger program?
>
>
> Regarding the current user :
> If you are not aware, the program SDS in RPGLE has been extended to
contain
> the current user (the one currently swapped to) in columns 358 to 367. If
> not swapped then it's value will be the same as the job user name in
columns
> 254 to 263. The IBM online doc shows this but the version of Infoseeker on
> your AS400 may not have been refreshed to indicate the extension.
> This makes it now an obvious choice to using the QUSRJOBI API. However,
you
> would probably want to use the API if your program did not set on LR and
the
> profile was swapped between calls.
>
> Regarding who invoked the trigger :
> If you are not aware, V5R1 now provides a cool API named QWRCSTK that will
> return the entire invocation stack for a thread in a predefined data
> structure. This would also now be the obvious choice since it's a one hit
> process. However, you would not be able to use it if the program was to be
> installed on a release prior to V5R1.
>
> Cheers, Peter
>
>
>
> -----Original Message-----
> From: Phil [mailto:sublime78ska@yahoo.com]
> Sent: Friday, December 21, 2001 2:24 PM
> To: rpg400-l@midrange.com
> Subject: RE: Who envoked that trigger program?
>
>
> Andrew,
>
> I figured out the names of the pgms by updating the file with DFU, sql,
etc.
> Then I changed the pgm to monitor for those names plus names that don't
> begin with 'Q'.
>
> At the end I pasted my modification to Denis's CL pgm.
>
> The rpg trigger pgm calls this CL only once.  But, the two api's are
called
> many times which slows things down considerably.  In my environment it's
not
> perceptible by the user but if I were writing millions of records this
would
> suck.
>
> Last week there was a thread on USER vs CURRENT USER.  If you want to know
> who updated a file via Ops Nav ISQL (for example), you can't use the PSDS
> because it will contain QUSER.  I haven't done anything about that yet but
I
> understand RTVJOBA contains the current user.
>
> Phil
>
> Here's how I modifed Denis's CL pgm:
>
>
>              PGM        PARM(&PGMID)
>
>              DCL        VAR(&NIVTST) TYPE(*DEC) LEN(2 0)
>              DCL        VAR(&NIVTRV) TYPE(*DEC) LEN(2 0)
>              DCL        VAR(&NIVBIN) TYPE(*CHAR) LEN(4)
>              DCL        VAR(&RCVVAR) TYPE(*CHAR) LEN(512)
>              DCL        VAR(&APIERRCDE) TYPE(*CHAR) LEN(8) +
>                           VALUE(X'0000000000000000')
>              DCL        VAR(&MSGKEY) TYPE(*CHAR) LEN(4)
>              DCL        VAR(&PGMID) TYPE(*CHAR) LEN(10)
>
>              DCL        VAR(&HLDCLR) TYPE(*CHAR) LEN(10)
>              DCL        VAR(&DONE) TYPE(*CHAR) LEN(1)
>
> /* initialization                                                    */
>              CHGVAR     VAR(&NIVTST) VALUE(3)
>              CHGVAR     VAR(&NIVTRV) VALUE(0)
>
>  DOUNTIL:
>              IF         COND(&DONE *EQ '1') THEN(GOTO CMDLBL(FINISHED))
>
>              CHGVAR     VAR(%BIN(&NIVBIN)) VALUE(&NIVTST)
>              CALL       PGM(QMHSNDPM) PARM(' ' ' ' 'Dummy' +
>                           X'00000005' '*INFO' '*' &NIVBIN &MSGKEY +
>                           &APIERRCDE)
>              MONMSG     MSGID(CPF0000) EXEC(DO)
> /* past last call stack entry                                        */
>              CHGVAR     VAR(&PGMID) VALUE(UNK)
>              GOTO       CMDLBL(FINISHED)
>              ENDDO
>
>              CALL       PGM(QMHRCVPM) PARM(&RCVVAR X'00000200' +
>                           'RCVM0300' '*' &NIVBIN '*ANY' &MSGKEY +
>                           X'00000000' '*REMOVE' &APIERRCDE)
>              CHGVAR     VAR(&PGMID) VALUE(%SST(&RCVVAR 472 10))
>
>  /* Do not want to return trigger pgm
> */
>              IF         COND(&NIVTST *GT 3) THEN(DO)
>
>              IF         COND(%SST(&PGMID 1 1) *NE 'Q') THEN(CHGVAR +
>                           VAR(&DONE) VALUE('1'))
>
>              IF         COND(%SST(&PGMID 1 5) *EQ 'QDZTD') +
>                           THEN(CHGVAR VAR(&DONE) VALUE('1'))
>
>              IF         COND(%SST(&PGMID 1 3) *EQ 'QSQ') THEN(CHGVAR +
>                           VAR(&HLDCLR) VALUE('ISQL'))
>
>              IF         COND(%SST(&PGMID 1 3) *EQ 'UNK') +
>                           THEN(CHGVAR VAR(&DONE) VALUE('1'))
>
>              ENDDO
>              CHGVAR     VAR(&NIVTST) VALUE(&NIVTST + 1)
>              GOTO       CMDLBL(DOUNTIL)
>  FINISHED:   IF         COND(&PGMID *EQ 'UNK' *AND &HLDCLR *EQ +
>                           'ISQL') THEN(CHGVAR VAR(&PGMID) +
>                           VALUE(&HLDCLR))
>              IF         COND(%SST(&PGMID 1 5) *EQ 'QDZTD') +
>                           THEN(CHGVAR VAR(&PGMID) VALUE('UPDDTA'))
>
>              ENDPGM
>
>
>
> > -----Original Message-----
> > From: rpg400-l-admin@midrange.com [mailto:rpg400-l-admin@midrange.com]On
> > Behalf Of Andrew Lutz
> > Sent: Thursday, December 20, 2001 1:34 PM
> > To: rpg400-l@midrange.com
> > Subject: RE: Who envoked that trigger program?
> >
> >
> > The trigger program may triggered by:
> >
> >      STRSQL
> >      STRDFU
> >      DBU
> >      EZVIEW
> >      RPGLE
> >      SQLRPGLE
> >      and etc...
> >
> > All of the examples I have found
> >
> > Look for a program in the call stack that doesn't start with Q
> > Look for a program in the call stack that doesn't exist in
> > library that doesn't start with a Q
> > Use a fixed call counter to go back in the call stack
> >
> > All of the above solutions above won't work if the source of the
> > trigger is 'unknown'.
> >
> >
>
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
> This communication is confidential and may be legally privileged.
> If it is not addressed to you, you are on notice of its status.
> Please immediately contact us at our cost and destroy it.
> Please do not use, disclose, copy, distribute or retain any of it
> without our authority - to do so could be a breach of confidence.
> Thank you for your co-operation.
> Please contact us on (09) 356 5800 if you need assistance.
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>



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.