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



Oops, typo, sorry.
Peter

-----Original Message-----
From: Carsten Flensburg [mailto:flensburg@novasol.dk]
Sent: Wednesday, December 26, 2001 12:48 AM
To: rpg400-l@midrange.com
Subject: Re: New stuff on Who envoked that trigger program?


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

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


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.