Re: YAJL JSON data - how and when to save?
Dave <[email protected]>
| Newsgroups | gmane.comp.systems.as400.web |
|---|---|
| Message-ID | <CAEw=R=uGYcPjddo4-uxwwSzw=SOaHShfD9vfk4UGQASjkXJZ9Q@mail.gmail.com> |
Thanks Scott, If the program has crashed in production and the job is waiting for a response to a message, then the environment variable route won't work. If I use a data area or file, I can switch to debug mode and maybe get the program to end correctly. Regards On Wed, 12 Jan 2022 at 01:56, Scott Klement <[email protected]> wrote: > Hi Dave, > > I would typically create an environment variable. These work great for > CGI programs because you can set them in the Apache httpd.conf file, and > they can be set separately for different <Directory>, <Location>, etc > containers as needed. > > So for example, I might do something like this: > > ScriptAlias /apitest /QSYS.LIB/SKTESTAPI.LIB/MYPGM.PGM > > <Directory /QSYS.LIB/SKTESTAPI.LIB> > Require all granted > SetEnv API_LOG_FILE /var/apitest/requestData.txt > SetEnv QIBM_CGI_LIBRARY_LIST "TESTDB;SKUTILS" > </Directory> > > The important part is API_LOG_FILE -- in this example, programs in the > SKTESTAPI library will log their data to the > /var/apitest/requestData.txt file. If API_LOG_FILE isn't defined for a > program, it would be in "production" mode and wouldn't log anything. > > Then in the program I would do something like this: > > dcl-pr getenv pointer EXTPROC('getenv'); > name pointer value options(*STRING); > end-pr; > > dcl-s logFile varchar(2048); > dcl-s ptr pointer; > dcl-s log int(10) inz(-1); > : > : > ptr = getenv('API_LOG_FILE'); > if ptr = *null; > // no log needed > else; > logFile = %str(ptr); > log = open( logFile > : O_CREAT + O_TRUNC + O_INHERITMODE + O_WRONLY > + O_TEXTDATA + O_TEXT_CREAT + O_CCSID > : 0 > : 1208 > : 0); > endif; > > I included the prototype for "getenv" (get environment variable) in case > you didn't already have it. Typically, I'd have this in a copybook or > similar. > > As always, in computer programming, there are many ways to accomplish > the same thing, but this way has always worked nicely for me. It's much > more versatile than something like a data area because it can be defined > in different places with different values in your httpd.conf > > Good luck! > > > On 1/10/2022 11:40 AM, Dave wrote: > > Hi, > > > > > > > > At the moment, during testing, each time my CGI programme receives JSON > > data, I'm saving it to the IFS. > > > > > > As I won't need to keep the JSON data once the application is deployed, > what > > would be the best way to dynamically turn on and off the save function of > > the program in case it were needed? Seems to me there are many ways of > > doing it. I could configure an environment variable, an URL, change a > data > > area, etc. What do you people do ? > > > > > > > > > > Thanks ! > -- > This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing > list > To post a message email: [email protected] > To subscribe, unsubscribe, or change list options, > visit: https://lists.midrange.com/mailman/listinfo/web400 > or email: [email protected] > Before posting, please take a moment to review the archives > at https://archive.midrange.com/web400. > > -- This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list To post a message email: [email protected] To subscribe, unsubscribe, or change list options, visit: https://lists.midrange.com/mailman/listinfo/web400 or email: [email protected] Before posting, please take a moment to review the archives at https://archive.midrange.com/web400.