Loading ...
Sorry, an error occurred while loading the content.

Re: [Easy400Group] Re: Library List for QTMHHTP ?

Expand Messages
  • Richard ECUYER
    to make a program call, you must match an url entered with a pgm to be called. ... From: tbenfanti To: Easy400Group@yahoogroups.com Sent: Tuesday, October 01,
    Message 1 of 24 , Oct 1, 2002
    • 0 Attachment
      to make a program call, you must match an url entered with a pgm to be called.
      ----- Original Message -----
      From: tbenfanti
      Sent: Tuesday, October 01, 2002 4:10 AM
      Subject: [Easy400Group] Re: Library List for QTMHHTP ?

      Paul,

      I appreciate the assistance, but I'm afraid it's beyond my
      capablilities.  I am looking for the simplest method of implementing
      a library list.  I see how you maintain the variables for the
      calling pgms, what I don't understand is how and from where these
      pgms get called. I'm sure this is due to my limited knowledge of
      rpg/cgi processing.

      Thanks again,
      Tony

      --- In Easy400Group@y..., "DECOURCYELLIS, PAUL A [GPB/0402]"
      <paul.a.decourcyellis@p...> wrote:
      > We are running BPCS ERP system and already had in place test and
      production
      > environemnts and change management methodolgy for using them. When
      I started
      > developing CGI programs I had to conform to thoe environments and
      practices.
      >
      > Every one of our CGI program works out which path it came in from
      and then
      > checks a control file to see which environment it should load it's
      library
      > list from.
      >
      > Attached document has some screen prints showing what we have
      done. This
      > methodology has enabled us to get started in running several
      environments
      > but may have to be refined at a later stage.
      >

      >
      > -----Original Message-----
      > From: tbenfanti [mailto:tbenfanti@u...]
      > Sent: Tuesday, 1 October 2002 1:46 AM
      > To: Easy400Group@y...
      > Subject: [Easy400Group] Library List for QTMHHTP ?
      >
      >
      > I have written my first test program utilizing the cgidev2 library.
      >
      > My question is how do I control data access.  Is there a best
      > practice approach.  I'm not sure if I should setup a library list
      > for user qtmhhtp or is this controlled thru the server
      > administration.
      >
      > When I copy my files to the cgidev2 library all works fine,
      > without the copy I see an error in the job log that file was not
      > found in *libl.
      >
      > Any help would be appreciated.
      >
      >
      >
      >
      >
      > To unsubscribe from this group, send an email to:
      > Easy400Group-unsubscribe@y...
      >

      >
      > Your use of Yahoo! Groups is subject to
      http://docs.yahoo.com/info/terms/


      To unsubscribe from this group, send an email to:
      Easy400Group-unsubscribe@yahoogroups.com



      Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
    • tomjedrz@yahoo.com
      The BEST EASY approach is to use the docmd function to execute a CHGLIBL command. This function is used many times in the CGIDEV2 example programs.
      Message 2 of 24 , Oct 1, 2002
      • 0 Attachment
        The BEST EASY approach is to use the "docmd" function to execute a
        CHGLIBL command. This function is used many times in the CGIDEV2
        example programs.

        --example from CGIDEV2/BOATSCH1---
        eval rc = docmd('OVRDBF FILE(BOATSALE) +
        TOFILE(CGIDEV2/BOATSALE) +
        SECURE(*YES)')

        ---adapted for you---
        eval rc = docmd('CHGLIBL LIBL(LIB1 LIB2 +
        LIB3 . . .)')

        In the interest of simplicity and speed, you could hard code the
        libraries you want.
        *OR
        You could set the libraries based on a context; there have been several
        methods of determining a context discussed in this thread and previous.
        I suggest you search the archives, try "production" or "test
        environment".

        Theoretically, you could change the job description used to kick off
        the HTTP server jobs, but IMHO that is playing with fire.

        Hope this get you moving!

        Tom J.

        --- tbenfanti <tbenfanti@...> wrote:
        > Paul,
        >
        > I appreciate the assistance, but I'm afraid it's beyond my
        > capablilities. I am looking for the simplest method of implementing
        > a library list. I see how you maintain the variables for the
        > calling pgms, what I don't understand is how and from where these
        > pgms get called. I'm sure this is due to my limited knowledge of
        > rpg/cgi processing.
        >
        > Thanks again,
        > Tony
        >
        > --- In Easy400Group@y..., "DECOURCYELLIS, PAUL A [GPB/0402]"
        > <paul.a.decourcyellis@p...> wrote:
        > > We are running BPCS ERP system and already had in place test and
        > production
        > > environemnts and change management methodolgy for using them. When
        > I started
        > > developing CGI programs I had to conform to thoe environments and
        > practices.
        > >
        > > Every one of our CGI program works out which path it came in from
        > and then
        > > checks a control file to see which environment it should load it's
        > library
        > > list from.
        > >
        > > Attached document has some screen prints showing what we have
        > done. This
        > > methodology has enabled us to get started in running several
        > environments
        > > but may have to be refined at a later stage.
        > >
        > >
        > >
        > > -----Original Message-----
        > > From: tbenfanti [mailto:tbenfanti@u...]
        > > Sent: Tuesday, 1 October 2002 1:46 AM
        > > To: Easy400Group@y...
        > > Subject: [Easy400Group] Library List for QTMHHTP ?
        > >
        > >
        > > I have written my first test program utilizing the cgidev2 library.
        > >
        > > My question is how do I control data access. Is there a best
        > > practice approach. I'm not sure if I should setup a library list
        > > for user qtmhhtp or is this controlled thru the server
        > > administration.
        > >
        > > When I copy my files to the cgidev2 library all works fine,
        > > without the copy I see an error in the job log that file was not
        > > found in *libl.
        > >
        > > Any help would be appreciated.
        > >
        > >
        > >
        > >
        > >
        > > To unsubscribe from this group, send an email to:
        > > Easy400Group-unsubscribe@y...
        > >
        > >
        > >
        > > Your use of Yahoo! Groups is subject to
        > http://docs.yahoo.com/info/terms/
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        > To unsubscribe from this group, send an email to:
        > Easy400Group-unsubscribe@yahoogroups.com
        >
        >
        >
        > Your use of Yahoo! Groups is subject to
        > http://docs.yahoo.com/info/terms/
        >
        >


        __________________________________________________
        Do you Yahoo!?
        New DSL Internet Access from SBC & Yahoo!
        http://sbc.yahoo.com
      • dunnriteservices
        I use a different technique to set the library list for my HTTP server jobs. By adding a new routing step to the qhttpsvr subsystem, I can set the correct
        Message 3 of 24 , Oct 1, 2002
        • 0 Attachment
          I use a different technique to set the library list for my HTTP
          server jobs. By adding a new routing step to the qhttpsvr subsystem,
          I can set the correct library list for any server instance I
          create:

          Subsystem description: QHTTPSVR Status:ACTIVE

          Type options, press Enter.
          5=Display details

          Start
          Opt Seq Nbr Program Library Compare Value Pos
          9 HTTPENV QGPL 'HTTPWWW' 1
          10 QCMD QSYS 'HTTPWWW' 1



          Source for program HTTPENV:


          PGM
          DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
          RTVJOBA JOB(&JOB)

          IF COND(&JOB *EQ 'PRODUCTION ') THEN(CHGLIBL +
          LIBL(QTEMP PRODFILES PRODOBJ CGIDEV2))


          IF COND(&JOB *EQ 'WEBTEST') THEN(CHGLIBL +
          LIBL(QTEMP TESTFILES TESTOBJ CGIDEV2 +
          PRODFILES PRODOBJ))

          TFRCTL PGM(QCMD)
          ENDPGM



          Keep in mind that the real power of the CGIDEV2 technique is that it
          enables you to use your existing iseries expertise. The technique
          described above is independent of the processes(cgi,net.data,green
          screen, etc.) that would use it.

          hth

          Robert Dunn

          --- In Easy400Group@y..., "tbenfanti" <tbenfanti@u...> wrote:
          > I have written my first test program utilizing the cgidev2 library.
          >
          > My question is how do I control data access. Is there a best
          > practice approach. I'm not sure if I should setup a library list
          > for user qtmhhtp or is this controlled thru the server
          > administration.
          >
          > When I copy my files to the cgidev2 library all works fine,
          > without the copy I see an error in the job log that file was not
          > found in *libl.
          >
          > Any help would be appreciated.
        • tomjedrz@yahoo.com
          This is very slick. How do you determine what the compare value should be? Is HTTPWWW the default for the web server, or do you set it somewhere else?
          Message 4 of 24 , Oct 1, 2002
          • 0 Attachment
            This is very slick. How do you determine what the "compare value"
            should be? Is 'HTTPWWW' the default for the web server, or do you set
            it somewhere else?

            Thanks.

            --- dunnriteservices <dunnriteservices@...> wrote:
            > I use a different technique to set the library list for my HTTP
            > server jobs. By adding a new routing step to the qhttpsvr subsystem,
            > I can set the correct library list for any server instance I
            > create:
            >
            > Subsystem description: QHTTPSVR Status:ACTIVE
            >
            >
            >
            > Type options, press Enter.
            > 5=Display details
            >
            > Start
            > Opt Seq Nbr Program Library Compare Value Pos
            > 9 HTTPENV QGPL 'HTTPWWW' 1
            > 10 QCMD QSYS 'HTTPWWW' 1
            >
            >
            >
            >
            > Source for program HTTPENV:
            >
            >
            > PGM
            > DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
            > RTVJOBA JOB(&JOB)
            >
            > IF COND(&JOB *EQ 'PRODUCTION ') THEN(CHGLIBL +
            > LIBL(QTEMP PRODFILES PRODOBJ CGIDEV2))
            >
            >
            >
            > IF COND(&JOB *EQ 'WEBTEST') THEN(CHGLIBL +
            > LIBL(QTEMP TESTFILES TESTOBJ CGIDEV2 +
            > PRODFILES PRODOBJ))
            >
            > TFRCTL PGM(QCMD)
            > ENDPGM
            >
            >
            >
            >
            > Keep in mind that the real power of the CGIDEV2 technique is that it
            > enables you to use your existing iseries expertise. The technique
            > described above is independent of the processes(cgi,net.data,green
            > screen, etc.) that would use it.
            >
            > hth
            >
            > Robert Dunn
            >
            > --- In Easy400Group@y..., "tbenfanti" <tbenfanti@u...> wrote:
            > > I have written my first test program utilizing the cgidev2 library.
            > >
            > > My question is how do I control data access. Is there a best
            > > practice approach. I'm not sure if I should setup a library list
            > > for user qtmhhtp or is this controlled thru the server
            > > administration.
            > >
            > > When I copy my files to the cgidev2 library all works fine,
            > > without the copy I see an error in the job log that file was not
            > > found in *libl.
            > >
            > > Any help would be appreciated.
            >
            >
            > ------------------------ Yahoo! Groups Sponsor
            >
            > To unsubscribe from this group, send an email to:
            > Easy400Group-unsubscribe@yahoogroups.com
            >
            >
            >
            > Your use of Yahoo! Groups is subject to
            > http://docs.yahoo.com/info/terms/
            >
            >


            __________________________________________________
            Do you Yahoo!?
            New DSL Internet Access from SBC & Yahoo!
            http://sbc.yahoo.com
          • Robert Dunn
            The compare value is the default for the subsystem. You are basicly intercepting the request before it reaches the default value. Set your library list and
            Message 5 of 24 , Oct 1, 2002
            • 0 Attachment
              The compare value is the default for the subsystem.
              You are basicly intercepting the request before it
              reaches the default value. Set your library list and
              then execute qcmd which is what the default method is
              doing.

              Thanks for the complement and good luck!

              bob
              --- tomjedrz@... wrote:
              > This is very slick. How do you determine what
              the
              > "compare value"
              > should be? Is 'HTTPWWW' the default for the web
              > server, or do you set
              > it somewhere else?
              >
              > Thanks.
              >
              > --- dunnriteservices
              <dunnriteservices@...>
              > wrote:
              > > I use a different technique to set the
              library
              > list for my HTTP
              > > server jobs. By adding a new routing step to
              the
              > qhttpsvr subsystem,
              > > I can set the correct library list for any
              server
              > instance I
              > > create:
              > >
              > > Subsystem description: QHTTPSVR
              Status:ACTIVE
              >
              > >
              > >

              >
              > >
              > > Type options, press Enter.
              > > 5=Display details
              > >
              > >

              > Start
              > > Opt Seq Nbr Program Library

              > Compare Value Pos
              > > 9 HTTPENV QGPL

              > 'HTTPWWW' 1
              > > 10 QCMD QSYS

              > 'HTTPWWW' 1
              > >

              >
              > >
              > >
              > >
              > > Source for program HTTPENV:
              > >
              > >
              > > PGM
              > > DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
              > > RTVJOBA JOB(&JOB)
              > >
              > > IF COND(&JOB *EQ 'PRODUCTION
              ')
              > THEN(CHGLIBL +
              > > LIBL(QTEMP PRODFILES PRODOBJ
              CGIDEV2))
              >
              > >

              >
              > >
              > >
              > > IF COND(&JOB *EQ 'WEBTEST')
              THEN(CHGLIBL +
              >
              > > LIBL(QTEMP TESTFILES TESTOBJ
              CGIDEV2 +
              > > PRODFILES PRODOBJ))

              > >
              > > TFRCTL PGM(QCMD)
              > > ENDPGM

              >
              > >
              > >
              > >
              > >
              > > Keep in mind that the real power of the
              CGIDEV2
              > technique is that it
              > > enables you to use your existing iseries
              > expertise. The technique
              > > described above is independent of the
              > processes(cgi,net.data,green
              > > screen, etc.) that would use it.
              > >
              > > hth
              > >
              > > Robert Dunn
              > >
              > > --- In Easy400Group@y...,
              "tbenfanti"
              > <tbenfanti@u...> wrote:
              > > > I have written my first test program
              utilizing
              > the cgidev2 library.
              > > >
              > > > My question is how do I control data
              access. Is
              > there a best
              > > > practice approach. I'm not sure if I
              should
              > setup a library list
              > > > for user qtmhhtp or is this controlled
              thru the
              > server
              > > > administration.
              > > >
              > > > When I copy my files to the cgidev2
              library all
              > works fine,
              > > > without the copy I see an error in the
              job log
              > that file was not
              > > > found in *libl.
              > > >
              > > > Any help would be appreciated.
              > >
              > >
              > > ------------------------ Yahoo! Groups
              Sponsor
              > >
              > > To unsubscribe from this group, send an
              email to:
              > > Easy400Group-unsubscribe@yahoogroups.com
              > >
              > >
              > >
              > > Your use of Yahoo! Groups is subject to
              > > http://docs.yahoo.com/info/terms/
              > >
              > >
              >
              >
              >
              __________________________________________________
              > Do you Yahoo!?
              > New DSL Internet Access from SBC & Yahoo!
              > http://sbc.yahoo.com
              >


              __________________________________________________
              Do you Yahoo!?
              New DSL Internet Access from SBC & Yahoo!
              http://sbc.yahoo.com
            • Schreur, Kevin
              Bob: I was thinking of taking your route when this question was first asked. If I understand the work management piece of OS/400 Jobs can enter a subsystem in
              Message 6 of 24 , Oct 1, 2002
              • 0 Attachment
                Bob:
                I was thinking of taking your route when this question was first asked. If I understand the work management piece of OS/400 Jobs can enter a subsystem in several ways. A submitted job by a user to a job queue, from a pre-start job, from an auto start job. In any of these cases the routing data compare value is taken from the Job Description used to submit a job in order retrieve the routing information and hence the class which the job will process under. What I couldn't find is how the initial jobs are entering the QHTTPSVR subsystem, so I never pursued what you have done. I looked at the 2 HTTP user profiles, and on my systems their default job description is QDFTJOBD. There are no prestart job entries or auto start job entries in QHTTPSVR, so I could never figure out how the HTTP jobs are actually being initiated. I do understand what you have done, and I think it is a good way of accomplishing the environment issues with HTTP serving. What I would like to know from anyone from IBM is how the jobs are actually started in the subsystem. I'm guessing that the TCP functions that utilize the HTTP attributes are actually doing the submit, but that is just a guess.
                Kevin.

                -----Original Message-----
                From: Robert Dunn [mailto:dunnriteservices@...]
                Sent: Tuesday, October 01, 2002 1:31 PM
                To: Easy400Group@yahoogroups.com
                Subject: Re: [Easy400Group] Re: Library List for QTMHHTP ?


                The compare value is the default for the subsystem.
                You are basicly intercepting the request before it
                reaches the default value. Set your library list and
                then execute qcmd which is what the default method is
                doing.

                Thanks for the complement and good luck!

                bob
                --- tomjedrz@... wrote:
                > This is very slick. How do you determine what
                the
                > "compare value"
                > should be? Is 'HTTPWWW' the default for the web
                > server, or do you set
                > it somewhere else?
                >
                > Thanks.
                >
                > --- dunnriteservices
                <dunnriteservices@...>
                > wrote:
                > > I use a different technique to set the
                library
                > list for my HTTP
                > > server jobs. By adding a new routing step to
                the
                > qhttpsvr subsystem,
                > > I can set the correct library list for any
                server
                > instance I
                > > create:
                > >
                > > Subsystem description: QHTTPSVR
                Status:ACTIVE
                >
                > >
                > >

                >
                > >
                > > Type options, press Enter.
                > > 5=Display details
                > >
                > >

                > Start
                > > Opt Seq Nbr Program Library

                > Compare Value Pos
                > > 9 HTTPENV QGPL

                > 'HTTPWWW' 1
                > > 10 QCMD QSYS

                > 'HTTPWWW' 1
                > >

                >
                > >
                > >
                > >
                > > Source for program HTTPENV:
                > >
                > >
                > > PGM
                > > DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
                > > RTVJOBA JOB(&JOB)
                > >
                > > IF COND(&JOB *EQ 'PRODUCTION
                ')
                > THEN(CHGLIBL +
                > > LIBL(QTEMP PRODFILES PRODOBJ
                CGIDEV2))
                >
                > >

                >
                > >
                > >
                > > IF COND(&JOB *EQ 'WEBTEST')
                THEN(CHGLIBL +
                >
                > > LIBL(QTEMP TESTFILES TESTOBJ
                CGIDEV2 +
                > > PRODFILES PRODOBJ))

                > >
                > > TFRCTL PGM(QCMD)
                > > ENDPGM

                >
                > >
                > >
                > >
                > >
                > > Keep in mind that the real power of the
                CGIDEV2
                > technique is that it
                > > enables you to use your existing iseries
                > expertise. The technique
                > > described above is independent of the
                > processes(cgi,net.data,green
                > > screen, etc.) that would use it.
                > >
                > > hth
                > >
                > > Robert Dunn
                > >
                > > --- In Easy400Group@y...,
                "tbenfanti"
                > <tbenfanti@u...> wrote:
                > > > I have written my first test program
                utilizing
                > the cgidev2 library.
                > > >
                > > > My question is how do I control data
                access. Is
                > there a best
                > > > practice approach. I'm not sure if I
                should
                > setup a library list
                > > > for user qtmhhtp or is this controlled
                thru the
                > server
                > > > administration.
                > > >
                > > > When I copy my files to the cgidev2
                library all
                > works fine,
                > > > without the copy I see an error in the
                job log
                > that file was not
                > > > found in *libl.
                > > >
                > > > Any help would be appreciated.
                > >
                > >
                > > ------------------------ Yahoo! Groups
                Sponsor
                > >
                > > To unsubscribe from this group, send an
                email to:
                > > Easy400Group-unsubscribe@yahoogroups.com
                > >
                > >
                > >
                > > Your use of Yahoo! Groups is subject to
                > > http://docs.yahoo.com/info/terms/
                > >
                > >
                >
                >
                >
                __________________________________________________
                > Do you Yahoo!?
                > New DSL Internet Access from SBC & Yahoo!
                > http://sbc.yahoo.com
                >


                __________________________________________________
                Do you Yahoo!?
                New DSL Internet Access from SBC & Yahoo!
                http://sbc.yahoo.com


                To unsubscribe from this group, send an email to:
                Easy400Group-unsubscribe@yahoogroups.com



                Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
              • Robert Dunn
                Hi Kevin, I am not sure of the mechanism that the STRTCPSVR *HTTP command uses either. I was able to determine that when the event hit the routing step it
                Message 7 of 24 , Oct 1, 2002
                • 0 Attachment
                  Hi Kevin,

                  I am not sure of the mechanism that the STRTCPSVR
                  *HTTP command uses either. I was able to determine
                  that when the "event" hit the routing step it had a
                  job name and that name was the name of instance I was
                  starting in the STRTCPSVR command. That bit of luck
                  enabled me to keep environment issues out of my cgi
                  apps. In the short term, I don't envision having time
                  to investigate the issue further. Perhaps your email
                  will generate a response from someone who does know.

                  Sorry I couldn't be more helpful.

                  bob
                  --- "Schreur, Kevin" <kschreur@...> wrote:
                  > Bob:
                  > I was thinking of taking your route when this
                  > question was first asked. If I understand the work
                  > management piece of OS/400 Jobs can enter a
                  > subsystem in several ways. A submitted job by a user
                  > to a job queue, from a pre-start job, from an auto
                  > start job. In any of these cases the routing data
                  > compare value is taken from the Job Description used
                  > to submit a job in order retrieve the routing
                  > information and hence the class which the job will
                  > process under. What I couldn't find is how the
                  > initial jobs are entering the QHTTPSVR subsystem, so
                  > I never pursued what you have done. I looked at the
                  > 2 HTTP user profiles, and on my systems their
                  > default job description is QDFTJOBD. There are no
                  > prestart job entries or auto start job entries in
                  > QHTTPSVR, so I could never figure out how the HTTP
                  > jobs are actually being initiated. I do understand
                  > what you have done, and I think it is a good way of
                  > accomplishing the environment issues with HTTP
                  > serving. What I would like to know from anyone from
                  > IBM is how the jobs are actually started in the
                  > subsystem. I'm guessing that the TCP functions that
                  > utilize the HTTP attributes are actually doing the
                  > submit, but that is just a guess.
                  > Kevin.
                  >
                  > -----Original Message-----
                  > From: Robert Dunn
                  > [mailto:dunnriteservices@...]
                  > Sent: Tuesday, October 01, 2002 1:31 PM
                  > To: Easy400Group@yahoogroups.com
                  > Subject: Re: [Easy400Group] Re: Library List for
                  > QTMHHTP ?
                  >
                  >
                  > The compare value is the default for the subsystem.
                  > You are basicly intercepting the request before it
                  > reaches the default value. Set your library list
                  > and
                  > then execute qcmd which is what the default method
                  > is
                  > doing.
                  >
                  > Thanks for the complement and good luck!
                  >
                  > bob
                  > --- tomjedrz@... wrote:
                  > > This is very slick. How do you determine what
                  > the
                  > > "compare value"
                  > > should be? Is 'HTTPWWW' the default for the
                  > web
                  > > server, or do you set
                  > > it somewhere else?
                  > >
                  > > Thanks.
                  > >
                  > > --- dunnriteservices
                  > <dunnriteservices@...>
                  > > wrote:
                  > > > I use a different technique to set the
                  > library
                  > > list for my HTTP
                  > > > server jobs. By adding a new routing step
                  > to
                  > the
                  > > qhttpsvr subsystem,
                  > > > I can set the correct library list for
                  > any
                  > server
                  > > instance I
                  > > > create:
                  > > >
                  > > > Subsystem description: QHTTPSVR
                  > Status:ACTIVE
                  > >
                  > > >
                  > > >
                  >
                  >
                  > >
                  > > >
                  > > > Type options, press Enter.
                  > > > 5=Display details
                  > > >
                  > > >
                  >
                  >
                  > > Start
                  > > > Opt Seq Nbr Program Library
                  >
                  >
                  > > Compare Value Pos
                  > > > 9 HTTPENV QGPL
                  >
                  >
                  > > 'HTTPWWW' 1
                  > > > 10 QCMD QSYS
                  >
                  >
                  > > 'HTTPWWW' 1
                  > > >
                  >
                  >
                  > >
                  > > >
                  > > >
                  > > >
                  > > > Source for program HTTPENV:
                  > > >
                  > > >
                  > > > PGM
                  > > > DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
                  > > > RTVJOBA JOB(&JOB)
                  > > >
                  > > > IF COND(&JOB *EQ 'PRODUCTION
                  > ')
                  > > THEN(CHGLIBL +
                  > > > LIBL(QTEMP PRODFILES PRODOBJ
                  > CGIDEV2))
                  > >
                  > > >
                  >
                  >
                  > >
                  > > >
                  > > >
                  > > > IF COND(&JOB *EQ 'WEBTEST')
                  > THEN(CHGLIBL +
                  > >
                  > > > LIBL(QTEMP TESTFILES TESTOBJ
                  > CGIDEV2 +
                  > > > PRODFILES PRODOBJ))
                  >
                  >
                  > > >
                  > > > TFRCTL PGM(QCMD)
                  > > > ENDPGM
                  >
                  >
                  > >
                  > > >
                  > > >
                  > > >
                  > > >
                  > > > Keep in mind that the real power of the
                  > CGIDEV2
                  > > technique is that it
                  > > > enables you to use your existing iseries
                  > > expertise. The technique
                  > > > described above is independent of the
                  > > processes(cgi,net.data,green
                  > > > screen, etc.) that would use it.
                  > > >
                  > > > hth
                  > > >
                  > > > Robert Dunn
                  > > >
                  > > > --- In Easy400Group@y...,
                  > "tbenfanti"
                  > > <tbenfanti@u...> wrote:
                  > > > > I have written my first test program
                  > utilizing
                  > > the cgidev2 library.
                  > > > >
                  > > > > My question is how do I control data
                  > access. Is
                  > > there a best
                  > > > > practice approach. I'm not sure if I
                  > should
                  > > setup a library list
                  > > > > for user qtmhhtp or is this
                  > controlled
                  > thru the
                  > > server
                  > > > > administration.
                  > > > >
                  > > > > When I copy my files to the cgidev2
                  > library all
                  > > works fine,
                  > > > > without the copy I see an error in
                  > the
                  > job log
                  > > that file was not
                  > > > > found in *libl.
                  > > > >
                  > > > > Any help would be appreciated.
                  > > >
                  > > >
                  > > > ------------------------ Yahoo! Groups
                  > Sponsor
                  > > >
                  > > > To unsubscribe from this group, send an
                  > email to:
                  > > > Easy400Group-unsubscribe@yahoogroups.com
                  > > >
                  > > >
                  > > >
                  > > > Your use of Yahoo! Groups is subject to
                  > > > http://docs.yahoo.com/info/terms/
                  >
                  === message truncated ===


                  __________________________________________________
                  Do you Yahoo!?
                  New DSL Internet Access from SBC & Yahoo!
                  http://sbc.yahoo.com
                • Henrik Rützou
                  Hi, Librarylist setting is a little bit difficult, remember every request is a hit an run job and it leaves the QZHBHJOB/HTTP server job that serves the
                  Message 8 of 24 , Oct 1, 2002
                  • 0 Attachment
                    Hi,

                    Librarylist setting is a little bit difficult, remember every request is a
                    hit an run job and it leaves the QZHBHJOB/HTTP server job that serves the
                    request your job (cgi-program) left it in, with the settings - librarylist,
                    open files etc. .

                    Lets se what happens, a request comes in to the DEFAULT server instance
                    ....

                    DEFAULT QTMHHTTP BCH 0,0 PGM-QZHBHTTP CNDW
                    DEFAULT QTMHHTTP BCI 0,0 PGM-QZHBHJOB TIMW
                    DEFAULT QTMHHTTP BCI 0,0 PGM-QZHBHJOB TIMW
                    DEFAULT QTMHHTTP BCI 0,0 PGM-QZHBHJOB TIMW
                    DEFAULT QTMHHTTP BCI 0,0 PGM-QZHBHJOB TIMW

                    The QZHBHTTP job runs the following

                    1032967703 00000044 HTRequst Client sez.. GET
                    /s600webp/wbmnwa.pgm?ses=0350840928&req=02783664152823250902 HTTP/1.1
                    1032967703 00000044 HTRequst Protocol version.... 1.1
                    1032967703 00000044 HTRequst Persistent Conection has been established
                    1032967703 00000044 HTRequst Client sez.. Accept: image/gif,
                    image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint,
                    application/vnd.ms-excel, application/msword, */*
                    1032967703 00000044 HTRequst Accept...... image/gif
                    (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Accept...... image/x-xbitmap
                    (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Accept...... image/jpeg
                    (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Accept...... image/pjpeg
                    (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Accept...... application/vnd.ms-powerpoint
                    (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Accept...... application/vnd.ms-excel
                    (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Accept...... application/msword
                    (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Accept...... */* (q=1.00,mxb=0.0,mxs=0.0)
                    1032967703 00000044 HTRequst Client sez.. Referer: http://www.way2trade.dk
                    1032967703 00000044 HTRequst Referer..... http://www.way2trade.dk
                    1032967703 00000044 HTRequst Client sez.. Accept-Language: da
                    1032967703 00000044 HTRequst Language.... da (q=1.00)
                    1032967703 00000044 HTRequst Client sez.. User-Agent: Mozilla/4.0
                    (compatible; MSIE 6.0; Windows NT 5.1)
                    1032967703 00000044 HTRequst User-Agent.. Mozilla/4.0 (compatible; MSIE
                    6.0; Windows NT 5.1)
                    1032967703 00000044 HTString Debug....... strcasestr(s1 = "Mozilla/4.0
                    (compatible; MSIE 6.0; Windows NT 5.1)", s2 = "MSIE 4.") => No match
                    1032967703 00000044 HTRequst Client sez.. Host: www.way2trade.dk
                    1032967703 00000044 HTRequst Host........ www.way2trade.dk
                    1032967703 00000044 HTRequst Client sez.. Pragma: no-cache
                    1032967703 00000044 HTRequst Pragma...... no-cache (force refresh)
                    1032967703 00000044 HTParse. HTSimplify.. simplifying
                    `/s600webp/wbmnwa.pgm'
                    1032967703 00000044 HTParse. HTSimplify.. nothing to do¤
                    1032967703 00000044 HTMPool. MemPool..... creating a new 4240-byte pool.
                    1032967703 00000044 HTServer About....... to call preexit for
                    "/s600webp/wbmnwa.pgm?ses=0350840928&req=02783664152823250902".
                    1032967703 00000044 HTRuleDB Using local address 80.197.214.67.
                    1032967703 00000044 HTRuleDB Map......... /eapc/start did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /eapc/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /eapch/*.htm did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /eapch/*.mbr did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Pass........
                    /QSYS.LIB/EASY400APC.LIB/HTMLSRC.FILE/* did NOT match /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Pass........ /easy400apc/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Service..... /eapcp/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2/start did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2/setup did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2h/*.htm did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2o/*.htm did NOT match
                    /s600webp/wbmnwa.pgm.
                    ............................ ¬25/Sep/2002:15:28:22 +0000, 1032967702|
                    00000851
                    1032967703 00000044 HTRuleDB Map......... /cgidev2oit/*.htm did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2o/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2oit/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2h/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2r/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2l/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2d/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Map......... /cgidev2f/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Pass........ /QSYS.LIB/CGIDEV2.LIB/* did NOT
                    match /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Pass........ /cgidev/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Service..... /cgidev2p/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Pass........ /w600sys/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Service..... /w600syscgi/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Pass........ /s600web/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Pass........ /s600webinf/* did NOT match
                    /s600webp/wbmnwa.pgm.
                    1032967703 00000044 HTRuleDB Service..... matched "/s600webp/wbmnwa.pgm" ->
                    "/QSYS.LIB/S600WEB.LIB/wbmnwa.pgm"
                    1032967703 00000044 HTRuleDB No.......... PATH_INFO
                    1032967703 00000044 HTAAServ AuthCheck... Translated script name:
                    "/QSYS.LIB/S600WEB.LIB/wbmnwa.pgm"
                    1032967703 00000044 HTAAServ AccessOk.... by fast path. No protect rule nor
                    ACL.
                    1032967703 00000044 HTServer AA.......... check returned 200
                    1032967703 00000044 HTServer Translated.. "-null-"
                    1032967703 00000044 HTServer HTHandle..... Access as "%%SERVER%%" for
                    Client "-unknown-"
                    1032967703 00000044 HTPICS.c PICS........ no protocol bags received.
                    1032967703 00000044 HTServer HTHandle.... method GET
                    1032967703 00000044 HTScript HTStartScript... content length parm is 0
                    1032967703 00000044 HTScript Scheme...... CGI/1.1
                    1032967703 00000044 HTSEnv.c Environ..... CGI_MODE=%%EBCDIC%%
                    1032967703 00000044 HTSEnv.c Environ..... CGI_OUTPUT_MODE=%%MIXED%%
                    1032967703 00000044 HTSEnv.c Environ..... IBM_CCSID_VALUE=277
                    1032967703 00000044 HTSEnv.c Environ..... CGI_EBCDIC_CCSID=277
                    1032967703 00000044 HTSEnv.c Environ..... CGI_ASCII_CCSID=819
                    1032967703 00000044 HTSEnv.c Environ.....
                    SERVER_SOFTWARE=IBM-HTTP-Server/1.0
                    1032967703 00000044 HTSEnv.c Environ..... SERVER_NAME=www.way2trade.dk
                    1032967703 00000044 HTSEnv.c Environ..... SERVER_PORT=80
                    1032967703 00000044 HTSEnv.c Environ.....
                    RULE_FILE=/QSYS.LIB/QUSRSYS.LIB/QATMHTTPC.FILE/CONFIG.MBR
                    1032967703 00000044 HTSEnv.c Environ..... SERVER_PROTOCOL=HTTP/1.1
                    1032967703 00000044 HTSEnv.c Environ..... REQUEST_METHOD=GET
                    1032967703 00000044 HTSEnv.c Environ..... GATEWAY_INTERFACE=CGI/1.1
                    1032967703 00000044 HTSEnv.c Environ..... PATH_INFO=
                    1032967703 00000044 HTSEnv.c Environ..... PATH_TRANSLATED=
                    1032967703 00000044 HTSEnv.c Environ.....
                    QUERY_STRING=ses=0350840928&req=02783664152823250902
                    1032967703 00000044 HTSEnv.c HTScript.... QUERY_STRING length = 39
                    1032967703 00000044 HTSEnv.c ............
                    ses=0350840928&req=02783664152823250902
                    1032967703 00000044 HTSEnv.c Environ..... SERVER_ADDR=80.197.214.67
                    1032967703 00000044 HTSEnv.c Environ..... SCRIPT_NAME=/s600webp/wbmnwa.pgm
                    1032967703 00000044 HTSEnv.c Environ..... REMOTE_ADDR=80.197.214.66
                    1032967703 00000044 HTMPool. MemPool..... creating a new 4000-byte pool.
                    1032967703 00000044 HTSEnv.c Environ..... AUTH_TYPE=
                    1032967703 00000044 HTSEnv.c Environ..... REMOTE_USER=
                    1032967703 00000044 HTSEnv.c Environ..... CONTENT_TYPE=
                    ............................ ¬25/Sep/2002:15:28:22 +0000, 1032967702|
                    00000901
                    1032967703 00000044 HTSEnv.c Environ.....
                    REFERER_URL=http://www.way2trade.dk
                    1032967703 00000044 HTSEnv.c Environ.....
                    DOCUMENT_ROOT=/QSYS.LIB/S600WEB.LIB
                    1032967703 00000044 HTSEnv.c Environ.....
                    DOCUMENT_URI=/s600webp/wbmnwa.pgm?ses=0350840928&req=02783664152823250902
                    1032967703 00000044 HTSEnv.c Environ.....
                    DOCUMENT_NAME=/QSYS.LIB/S600WEB.LIB/wbmnwa.pgm
                    1032967703 00000044 HTSEnv.c Environ..... FSCP=277
                    1032967703 00000044 HTSEnv.c Environ..... NETCP=819
                    1032967703 00000044 tfprintf Info........ HTScriptArgv: returning:
                    1032967703 00000044 tfprintf argv¬0| = "wbmnwa.pgm"
                    1032967703 00000044 zhbhelpr sendToCGIHelper: CGI helper function=195
                    1032967703 00000044 zhbhelpr getJob: helper job successfully selected
                    1032967703 00000044 HTScript Child process has been spawned ID=79
                    1032967703 00000044 HTTimer. TimeOut..... set for process 79 (300 secs)
                    1032967703 00000044 zhbhelpr sendMsgToHelper: helper message type=10
                    1032967703 00000044 HTMPool. MemPool..... creating a new 4112-byte pool.
                    1032967704 00000044 HTScript HTLoadScriptResult... End of Headers.
                    1032967704 00000044 HTScript No redirection, doing put of 4095 bytes.
                    1032967704 00000044 HTCpConv CpConv...... cp(2) conv(yes).
                    1032967704 00000044 HTCpConv CpConv...... cp(2) conv(yes).
                    1032967704 00000044 HTCpConv CpConv...... cp(1) conv(yes).
                    1032967704 00000044 HTMPool. MemPool..... creating a new 8112-byte pool.
                    1032967704 00000044 HTCpConv CpConv...... cp(2) conv(yes).
                    1032967704 00000044 HTCpConv CpConv...... cp(1) conv(yes).
                    1032967704 00000044 HTMPool. MemPool..... creating a new 8112-byte pool.
                    1032967704 00000044 HTCpConv CpConv...... cp(2) conv(yes).
                    1032967704 00000044 HTCpConv CpConv...... cp(1) conv(yes).
                    1032967704 00000044 HTMPool. MemPool..... creating a new 8112-byte pool.
                    1032967704 00000044 HTCpConv CpConv...... cp(1) conv(yes).
                    1032967704 00000044 htrsp.c No.......... metafile to look for.
                    1032967704 00000044 HTPICS.c No.......... PICS labels to send back.
                    1032967704 00000044 htrsp.c ............ Header section for client
                    HTTP/1.1 200 Document follows Server: IBM-HTTP-Server/1.0 Date: Wed, 25
                    Sep 2002 15:28:23 GMT Connection: close Accept-Ranges: bytes
                    Content-Type: text/plain Content-Length: 15757 ............ End of
                    headers
                    1032967704 00000044 htclc.c buf_flush...
                    1032967704 00000044 HTWriter Writer...... 4096-byte block arriving.
                    1032967704 00000044 HTWriter Writer...... sending 190-byte header.
                    1032967704 00000044 HTWriter Writer...... 190-byte block arriving.
                    1032967704 00000044 HTWriter HTWriter.... buffering 190 bytes.
                    1032967704 00000044 HTWriter Writer...... building a 1460-byte starter
                    packet.
                    1032967704 00000044 HTWriter level3write...socket: 46, bufptr=00000044,
                    size=35, socketype=16
                    1032967704 00000044 os2socke Socket...... wrote 1460 bytes on socket 46.
                    1032967704 00000044 HTWriter HTWriter.... nothing buffered.
                    1032967704 00000044 HTWriter level3write...socket: 46, bufptr=00000000,
                    size=-317390916, socketype=-553257184
                    1032967704 00000044 os2socke Socket...... wrote 2826 bytes on socket 46.
                    1032967704 00000044 HTWriter Writer...... 4096-byte block arriving.
                    1032967704 00000044 HTWriter HTWriter.... nothing buffered.
                    1032967704 00000044 HTWriter level3write...socket: 46, bufptr=00000000,
                    size=-317390916, socketype=-553257184
                    1032967704 00000044 os2socke Socket...... wrote 4096 bytes on socket 46.
                    1032967704 00000044 HTWriter Writer...... 7565-byte block arriving.
                    1032967704 00000044 HTWriter HTWriter.... nothing buffered.
                    1032967704 00000044 HTWriter level3write...socket: 46, bufptr=00000000,
                    size=-317390916, socketype=-553257184
                    1032967704 00000044 os2socke Socket...... wrote 7565 bytes on socket 46.
                    1032967704 00000044 HTLog.c Logging..... updating SNMP/PerfMon counters.
                    ............................ ¬25/Sep/2002:15:28:23 +0000, 1032967703|
                    00000951
                    1032967704 00000044 HTLog.c Logging..... off; fastpath¤
                    1032967704 00000044 HTServer CleanupMemory. HTHandledStdin = FALSE,
                    HTContentLenghtLeft = 0
                    1032967704 00000044 HTWorkT. Uninit Fn... not defined for module
                    "HTPresentation".
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTList" (Ø2701131776)
                    being called.
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTMemPool"
                    (Ø2701131776) being called.
                    1032967704 00000044 HTMPool. MemPool..... freed 6 pools totalling 36688
                    bytes.
                    1032967704 00000044 HTWorkT. Uninit Fn... not defined for module "HTTimer".
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTDaemon"
                    (Ø2701131776) being called.
                    1032967704 00000044 HTThread Daemon..... uninit functions being run in
                    context 2.
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTVInit"
                    (Ø2701131776) being called.
                    1032967704 00000044 zhbhelpr freeJob: CGI helper job freed at thread
                    termination
                    1032967704 00000044 HTServer Keep-Alive.. Keep_Alive is -1 and KARequest is
                    1.
                    1032967704 00000044 HTServer Keep-Alive.. Exit HTTPD 1.1 loop.
                    1032967704 00000044 HTServer Disconnected Socket 46.
                    1032967704 00000044 HTWorkT. Uninit Fn... not defined for module
                    "HTPresentation".
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTList" (Ø2701131776)
                    being called.
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTMemPool"
                    (Ø2701131776) being called.
                    1032967704 00000044 HTWorkT. Uninit Fn... not defined for module "HTTimer".
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTDaemon"
                    (Ø2701131776) being called.
                    1032967704 00000044 HTThread Daemon..... uninit functions being run in
                    context 1.
                    1032967704 00000044 HTWorkT. Uninit Fn... for module "HTVInit"
                    (Ø2701131776) being called.
                    1032967704 00000044 httpool. Thread 14 ended at 25/Sep/2002:15:28:23 +0000.
                    Total threads=15, Active threads=13.




                    The QZHBHTTP job determins how, where and wich QZHBHJOB is going to run the
                    CGI-program, so you can't be sure that the librarylist is set for the job
                    that receives the request, it depends on workload etc. - and if you leave
                    with open files etc. QZHBHJOB librarylist settings may be useless for the
                    next call.

                    In my opinion, the best way to get the best performance is to have a HTTP
                    server instance for every enviroment you wish to serve, and then leaving
                    the job with open files, library list settings and programs running under
                    an activationgroup other than *NEW and perhaps use the SETOBJACC command to
                    bring program and files into memory.

                    rgds
                    Henrik







                    "Jere
                    Jackson" To: <Easy400Group@yahoogroups.com>
                    <jerej@bellso cc:
                    uth.net> Subject: RE: [Easy400Group] Library List for QTMHHTP ?

                    30-09-02
                    19:42
                    Please
                    respond to
                    Easy400Group





                    I would like some examples of how to set up and call the initial program. I
                    am trying to set up a test environment so that we are not testing our
                    programs in the production libraries.





                    Send the examples to jerej@... or jjackson@... (My work
                    e-Mail address)








                    Thanks





                    Jere





                    -----Original Message-----
                    From: Richard ECUYER [mailto:recuyer@...]
                    Sent: Monday, September 30, 2002 11:03 AM
                    To: Easy400Group@yahoogroups.com
                    Subject: Re: [Easy400Group] Library List for QTMHHTP ?





                    your first programm (called by http server) must initialize the library
                    list for the job.


                    if you want i can send you some examples.


                    ----- Original Message -----


                    From: tbenfanti


                    To: Easy400Group@yahoogroups.com


                    Sent: Monday, September 30, 2002 5:46 PM


                    Subject: [Easy400Group] Library List for QTMHHTP ?





                    I have written my first test program utilizing the cgidev2 library.

                    My question is how do I control data access. Is there a best
                    practice approach. I'm not sure if I should setup a library list
                    for user qtmhhtp or is this controlled thru the server
                    administration.

                    When I copy my files to the cgidev2 library all works fine,
                    without the copy I see an error in the job log that file was not
                    found in *libl.

                    Any help would be appreciated.




                    To unsubscribe from this group, send an email to:
                    Easy400Group-unsubscribe@yahoogroups.com



                    Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.






                    To unsubscribe from this group, send an email to:
                    Easy400Group-unsubscribe@yahoogroups.com



                    Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.



                    To unsubscribe from this group, send an email to:
                    Easy400Group-unsubscribe@yahoogroups.com



                    Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
                  • Peter Fuller
                    I have a three tier development environment, xxxDEV, xxxTST, and xxxPRD that is controlled by a 3rd party change management product. When I looked at using
                    Message 9 of 24 , Oct 1, 2002
                    • 0 Attachment
                      I have a three tier development environment, xxxDEV,
                      xxxTST, and xxxPRD that is controlled by a 3rd party
                      change management product. When I looked at using CGI
                      I wanted to mirror this environment and use the change
                      management product to control my CGI development. I
                      set up three HTTP server instances, SVRDEV, SVRTST,
                      SVRPRD and accessed them by using the port number in
                      the URL (SVRPRD uses the default so normal users don't
                      have to do anything). To control the library list for
                      each different server I wrote a CLP to modify the
                      QZHBHTTP jobd in QHTTPSVR temporarily while the
                      specific server starts. Once the server starts with
                      that library list, all jobs running under that server
                      instance inherit that library list. Here is the
                      technique I use:

                      Make a copy of QZHBHTTP jobd (you might want to put it
                      in QUSRSYS). I named it the same name as the server,
                      i.e. SVRDEV

                      Modify the copy to the desired library list, etc.
                      (do this for each instance)

                      Create a CLP with the server name as a parm that will:
                      1) Copy the existing (standard)QZHBHTTP jobd in
                      QHTTPSVR to a backup copy (don't use QTEMP in case the
                      job dies)
                      2) Copy the server specific version that was modified
                      into QZHBHTTP in QHTTPSVR
                      3) Run the STRHTTPSVR command with your parm as the
                      server name.
                      4) Delay the job a few seconds to allow the server to
                      start
                      5) Delete the modified version of the QZHBHTTP jobd.
                      6) Copy the archived version of the QZHBHTTP jobd
                      back to QHTTPSVR library

                      I called my CLP STRWEBSVR and created a command in
                      QUSRSYS by the same name. I put this in the system
                      startup program. You just have to remember to use the
                      STRWEBSVR command if you have to manually restart the
                      servers.

                      Hope this helps.

                      --- tbenfanti <tbenfanti@...> wrote:
                      > I have written my first test program utilizing
                      the
                      > cgidev2 library.
                      >
                      > My question is how do I control data access. Is
                      > there a best
                      > practice approach. I'm not sure if I should
                      setup a
                      > library list
                      > for user qtmhhtp or is this controlled thru the
                      > server
                      > administration.
                      >
                      > When I copy my files to the cgidev2 library all
                      > works fine,
                      > without the copy I see an error in the job log
                      that
                      > file was not
                      > found in *libl.
                      >
                      > Any help would be appreciated.
                      >
                      >
                      >
                      >
                    • DECOURCYELLIS, PAUL A [GPB/0402]
                      Tony, If you don t want to use different ports just use different URL s. In your server instance use the exec directive to point your test URL to your test
                      Message 10 of 24 , Oct 1, 2002
                      • 0 Attachment
                        Tony,

                        If you don't want to use different ports just use different URL's. In your
                        server instance use the exec directive to point your "test" URL to your test
                        library and your "live " URL to point to your live library.(use command
                        WRKHTTPCFG)
                        example:

                        Exec /cgitest/* /QSYS.LIB/mytestlib.LIB/*.PGM %%EBCDIC%
                        Exec /cgislive/* /QSYS.LIB/mylivelib.LIB/*.PGM %%EBCDIC%

                        Now have a data area in those 2 libraries that contains the library list for
                        each environment.

                        Now when the server fires up your program the library it resides in will be
                        your current library so you can now get your CGI program to call a CL
                        program to get that data area and do a chglibl command. Now open your files
                        and they will be pointing to the right library.

                        The drawback with this approach is that the program must reside in the
                        library you are executing it from.

                        If you want the library list creation to occur before the program is fired
                        then I would use Eduard's solution that uses the server instance to
                        determine which library to use. ( I think this means using different ports
                        though, 1 server instance per port ? Eduard can confirm this .)





                        -----Original Message-----
                        From: tbenfanti [mailto:tbenfanti@...]
                        Sent: Tuesday, 1 October 2002 12:10 PM
                        To: Easy400Group@yahoogroups.com
                        Subject: [Easy400Group] Re: Library List for QTMHHTP ?


                        Paul,

                        I appreciate the assistance, but I'm afraid it's beyond my
                        capablilities. I am looking for the simplest method of implementing
                        a library list. I see how you maintain the variables for the
                        calling pgms, what I don't understand is how and from where these
                        pgms get called. I'm sure this is due to my limited knowledge of
                        rpg/cgi processing.

                        Thanks again,
                        Tony

                        --- In Easy400Group@y..., "DECOURCYELLIS, PAUL A [GPB/0402]"
                        <paul.a.decourcyellis@p...> wrote:
                        > We are running BPCS ERP system and already had in place test and
                        production
                        > environemnts and change management methodolgy for using them. When
                        I started
                        > developing CGI programs I had to conform to thoe environments and
                        practices.
                        >
                        > Every one of our CGI program works out which path it came in from
                        and then
                        > checks a control file to see which environment it should load it's
                        library
                        > list from.
                        >
                        > Attached document has some screen prints showing what we have
                        done. This
                        > methodology has enabled us to get started in running several
                        environments
                        > but may have to be refined at a later stage.
                        >
                        >
                        >
                        > -----Original Message-----
                        > From: tbenfanti [mailto:tbenfanti@u...]
                        > Sent: Tuesday, 1 October 2002 1:46 AM
                        > To: Easy400Group@y...
                        > Subject: [Easy400Group] Library List for QTMHHTP ?
                        >
                        >
                        > I have written my first test program utilizing the cgidev2 library.
                        >
                        > My question is how do I control data access. Is there a best
                        > practice approach. I'm not sure if I should setup a library list
                        > for user qtmhhtp or is this controlled thru the server
                        > administration.
                        >
                        > When I copy my files to the cgidev2 library all works fine,
                        > without the copy I see an error in the job log that file was not
                        > found in *libl.
                        >
                        > Any help would be appreciated.
                        >
                        >
                        >
                        >
                        >
                        > To unsubscribe from this group, send an email to:
                        > Easy400Group-unsubscribe@y...
                        >
                        >
                        >
                        > Your use of Yahoo! Groups is subject to
                        http://docs.yahoo.com/info/terms/



                        To unsubscribe from this group, send an email to:
                        Easy400Group-unsubscribe@yahoogroups.com



                        Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                      • DECOURCYELLIS, PAUL A [GPB/0402]
                        I agree with Tom - this is great stuff ! It partitions environment control from the application - something I definately want to do. My method was born from
                        Message 11 of 24 , Oct 1, 2002
                        • 0 Attachment
                          I agree with Tom - this is great stuff !

                          It partitions environment control from the application - something I
                          definately want to do. My method was born from the need to get seperate
                          environments almost from the word go (so that management would allow me to
                          move CGI into production I HAD to have seperate test/live environments). But
                          this is so much better ! I plan to modify my method to incorporate this
                          technique before we write to may more programs!

                          Good on you Robert !

                          -----Original Message-----
                          From: dunnriteservices [mailto:dunnriteservices@...]
                          Sent: Wednesday, 2 October 2002 2:17 AM
                          To: Easy400Group@yahoogroups.com
                          Subject: [Easy400Group] Re: Library List for QTMHHTP ?


                          I use a different technique to set the library list for my HTTP
                          server jobs. By adding a new routing step to the qhttpsvr subsystem,
                          I can set the correct library list for any server instance I
                          create:

                          Subsystem description: QHTTPSVR Status:ACTIVE

                          Type options, press Enter.
                          5=Display details

                          Start
                          Opt Seq Nbr Program Library Compare Value Pos
                          9 HTTPENV QGPL 'HTTPWWW' 1
                          10 QCMD QSYS 'HTTPWWW' 1



                          Source for program HTTPENV:


                          PGM
                          DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
                          RTVJOBA JOB(&JOB)

                          IF COND(&JOB *EQ 'PRODUCTION ') THEN(CHGLIBL +
                          LIBL(QTEMP PRODFILES PRODOBJ CGIDEV2))


                          IF COND(&JOB *EQ 'WEBTEST') THEN(CHGLIBL +
                          LIBL(QTEMP TESTFILES TESTOBJ CGIDEV2 +
                          PRODFILES PRODOBJ))

                          TFRCTL PGM(QCMD)
                          ENDPGM



                          Keep in mind that the real power of the CGIDEV2 technique is that it
                          enables you to use your existing iseries expertise. The technique
                          described above is independent of the processes(cgi,net.data,green
                          screen, etc.) that would use it.

                          hth

                          Robert Dunn

                          --- In Easy400Group@y..., "tbenfanti" <tbenfanti@u...> wrote:
                          > I have written my first test program utilizing the cgidev2 library.
                          >
                          > My question is how do I control data access. Is there a best
                          > practice approach. I'm not sure if I should setup a library list
                          > for user qtmhhtp or is this controlled thru the server
                          > administration.
                          >
                          > When I copy my files to the cgidev2 library all works fine,
                          > without the copy I see an error in the job log that file was not
                          > found in *libl.
                          >
                          > Any help would be appreciated.



                          To unsubscribe from this group, send an email to:
                          Easy400Group-unsubscribe@yahoogroups.com



                          Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                        • Eduard Sluis
                          Tony, Is correct, the different sites all have their own port. This way never problems with url s or other stuff that needs to be maintained (and will cause
                          Message 12 of 24 , Oct 2, 2002
                          • 0 Attachment
                            Tony,

                            Is correct, the different sites all have their own port.
                            This way never problems with url's or other stuff that needs to be
                            maintained (and will cause problems when less needed).

                            Eduard.

                            --- "DECOURCYELLIS, PAUL A [GPB/0402]"
                            <paul.a.decourcyellis@...> wrote:

                            <HR>
                            <html><body>


                            <tt>
                            Tony,<BR>
                            <BR>
                            If you don't want to use different ports just use different URL's. In
                            your<BR>
                            server instance use the exec directive to point your "test"
                            URL to your test<BR>
                            library and your "live " URL to  point to your live
                            library.(use command<BR>
                            WRKHTTPCFG)<BR>
                            example:<BR>
                            <BR>
                            Exec /cgitest/* /QSYS.LIB/mytestlib.LIB/*.PGM  %%EBCDIC%
                                    <BR>
                            Exec /cgislive/* /QSYS.LIB/mylivelib.LIB/*.PGM  %%EBCDIC%<BR>
                            <BR>
                            Now have a data area in those 2 libraries that contains the library
                            list for<BR>
                            each environment.<BR>
                               <BR>
                            Now when the server fires up your program the library it resides in
                            will be<BR>
                            your current library so you can now get your CGI program to call a
                            CL<BR>
                            program to get that data area and do a chglibl command. Now open your
                            files<BR>
                            and they will be pointing to the right library.<BR>
                            <BR>
                            The drawback with this approach is that the program must reside in
                            the<BR>
                            library you are executing it from. <BR>
                            <BR>
                            If you want the library list creation to occur before the program is
                            fired<BR>
                            then I would use Eduard's solution that uses the server instance to<BR>
                            determine which library to use. ( I think this means using different
                            ports<BR>
                            though, 1 server instance per port ? Eduard can confirm this .)<BR>
                            <BR>
                            <BR>
                            <BR>
                            <BR>
                            <BR>
                            -----Original Message-----<BR>
                            From: tbenfanti [mailto:tbenfanti@...]<BR>
                            Sent: Tuesday, 1 October 2002 12:10 PM<BR>
                            To: Easy400Group@yahoogroups.com<BR>
                            Subject: [Easy400Group] Re: Library List for QTMHHTP ?<BR>
                            <BR>
                            <BR>
                            Paul,<BR>
                            <BR>
                            I appreciate the assistance, but I'm afraid it's beyond my <BR>
                            capablilities.  I am looking for the simplest method of
                            implementing <BR>
                            a library list.  I see how you maintain the variables for the <BR>
                            calling pgms, what I don't understand is how and from where these <BR>
                            pgms get called. I'm sure this is due to my limited knowledge of <BR>
                            rpg/cgi processing.<BR>
                            <BR>
                            Thanks again,<BR>
                            Tony<BR>
                            <BR>
                            --- In Easy400Group@y..., "DECOURCYELLIS, PAUL A [GPB/0402]"
                            <BR>
                            <paul.a.decourcyellis@p...> wrote:<BR>
                            > We are running BPCS ERP system and already had in place test and
                            <BR>
                            production<BR>
                            > environemnts and change management methodolgy for using them. When
                            <BR>
                            I started<BR>
                            > developing CGI programs I had to conform to thoe environments and
                            <BR>
                            practices.<BR>
                            > <BR>
                            > Every one of our CGI program works out which path it came in from
                            <BR>
                            and then<BR>
                            > checks a control file to see which environment it should load it's
                            <BR>
                            library<BR>
                            > list from.<BR>
                            > <BR>
                            > Attached document has some screen prints showing what we have <BR>
                            done. This<BR>
                            > methodology has enabled us to get started in running several <BR>
                            environments<BR>
                            > but may have to be refined at a later stage.<BR>
                            > <BR>
                            >  <BR>
                            > <BR>
                            > -----Original Message-----<BR>
                            > From: tbenfanti [mailto:tbenfanti@u...]<BR>
                            > Sent: Tuesday, 1 October 2002 1:46 AM<BR>
                            > To: Easy400Group@y...<BR>
                            > Subject: [Easy400Group] Library List for QTMHHTP ?<BR>
                            > <BR>
                            > <BR>
                            > I have written my first test program utilizing the cgidev2
                            library.<BR>
                            > <BR>
                            > My question is how do I control data access.  Is there a best
                            <BR>
                            > practice approach.  I'm not sure if I should setup a library
                            list <BR>
                            > for user qtmhhtp or is this controlled thru the server <BR>
                            > administration.<BR>
                            > <BR>
                            > When I copy my files to the cgidev2 library all works fine, <BR>
                            > without the copy I see an error in the job log that file was not
                            <BR>
                            > found in *libl.<BR>
                            > <BR>
                            > Any help would be appreciated.<BR>
                            > <BR>
                            > <BR>
                            > <BR>
                            > <BR>
                            > <BR>
                            > To unsubscribe from this group, send an email to:<BR>
                            > Easy400Group-unsubscribe@y...<BR>
                            > <BR>
                            >  <BR>
                            > <BR>
                            > Your use of Yahoo! Groups is subject to <BR>
                            <a
                            href="http://docs.yahoo.com/info/terms/">http://docs.yahoo.com/info/terms/</a><BR>
                            <BR>
                            <BR>
                            <BR>
                            To unsubscribe from this group, send an email to:<BR>
                            Easy400Group-unsubscribe@yahoogroups.com<BR>
                            <BR>
                            <BR>
                            <BR>
                            Your use of Yahoo! Groups is subject to <a
                            href="http://docs.yahoo.com/info/terms/">http://docs.yahoo.com/info/terms/</a>
                            <BR>
                            </tt>


                            <br>
                            <tt>
                            To unsubscribe from this group, send an email to:<BR>
                            Easy400Group-unsubscribe@yahoogroups.com<BR>
                            <BR>
                            </tt>
                            <br>

                            <br>
                            <tt>Your use of Yahoo! Groups is subject to the <a
                            href="http://docs.yahoo.com/info/terms/">Yahoo! Terms of
                            Service</a>.</tt>
                            </br>

                            </body></html>
                          • David
                            I use the override concept with a data file to track my library names. Within the system I use there is a limited number of libraries available. My data file
                            Message 13 of 24 , Oct 2, 2002
                            • 0 Attachment
                              I use the override concept with a data file to track my library names.
                              Within the system I use there is a limited number of libraries
                              available. My data file PCLIENT lists the correct library for each
                              group, Student, Finance, Employee, Ect. Once I hit the file, I can use
                              the field names creating the overrides.


                              C READ PCLIENT

                              C Move CWFYear FYear



                              C eval rc = docmd('OVRDBF FILE(ppay340H) +

                              C TOFILE('+%TRIM(CWEMS)+'/ppay340H) +

                              C MBR(' +CWClient+ FYear + ') +

                              C SECURE(*YES)')

                              C open ppay340h


                              David H. Taylor
                              Programmer
                              Tyler Independent School District

                              > --example from CGIDEV2/BOATSCH1---
                              > eval rc = docmd('OVRDBF FILE(BOATSALE) +
                              > TOFILE(CGIDEV2/BOATSALE) +
                              > SECURE(*YES)')
                              >
                            Your message has been successfully submitted and would be delivered to recipients shortly.