Do you mean "thread" ?

Of course, the term CGI thread is nothing to do with a CGI program itself. I don't think anyone would suggest otherwise. CGI programs (RPGLE) are clearly not thread capable. A CGI thread is a "real" thread spawned by the Apache server, but to all intents and purposes (for a programmer) it is just a job within which their CGI program runs. So jobs running QZSRCGI *are* real threads in the true sense of the word, but the application code they run is not itself multi-threaded.

-----Original Message-----
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Henrik Rützou
Sent: 04 March 2017 11:39
To: Web Enabling the IBM i (AS/400 and iSeries) <web400@xxxxxxxxxxxx>
Subject: Re: [WEB400] Question on QTEMP and CGI Jobs

I hate the words tread since it may be confused with the term tread in a processor that is a complete different thing.

If you want to use the term tread in relation to a CGI program, please explain what a multi-treaded CGI program is?

It can't exist since C is the only ILE language that supports multi--treaded programming and, if used, it will still refer to the processors tread. I exclude java since java runs under PASE and therefore isn't an ILE program per. definition

It is perhaps quibbling but the same applies to IBM when they says DB2 now supports unstructured data as XML and JSON. How can XML or JSON be unstructured when they represents strict hierarchical data structures.

The correct term is more likely to be that they now supports undefined data structures only accessible as strings.

Big deal, they have supported XML and JSON strings through clob's all the time - and beside, what to use it for as long as RPG dosn't support objects based on XML or JSON where JSON is a textual notation of a object or a shallow copy if you like that excludes typeof 'function' data types from the object it is created from.

By "aggressive" I mean how many QZSRCGI jobs a page uses at the same time to serve data that single page - so building an entire system based on AJAX calls isn't necessarily to use AJAX "aggressivly".

BTW, I have never seen a AJAX call that starts with adding Accept-HTSession and a session id that is required to make a persistence call and there is nothing in the W3C AJAX docs that descibes such a header.

But lets no discuss old technology no one seems to use.

On Sat, Mar 4, 2017 at 11:24 AM, Kevin Turner <kevin.turner@xxxxxxxxxxxxxx>
wrote:

The answer to the question is still "no". You have to assume that a
"CGI call" as described in the question is an HTTP request to a CGI program.
There is no way that two (or more) concurrent "CGI calls" can access
the same objects in QTEMP as they will both be handled by different
jobs (or CGI threads if that is the preferred terminology). So Richard
has a bug and he is barking up the wrong tree for the solution.

As an aside, apart from the very first request, *all* requests (in our
world) use xmlHttpRequest (AJAX). How "aggressive" is that? :)

-----Original Message-----
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Henrik
Rützou
Sent: 04 March 2017 10:13
To: Web Enabling the IBM i (AS/400 and iSeries) <web400@xxxxxxxxxxxx>
Subject: Re: [WEB400] Question on QTEMP and CGI Jobs

Kevin

well, it may be understod that they share QTEMP since a call to PGMA
from user 1 and thereafter call to PGMB from user 2 running under the
same QZSRCGI shares the same QTEMP that belongs to the QZSRCGI and not
PGMA or PGMB.

PS - I don't think you uses AJAX as agressivly as I, if you fires 4-5
unnested AJAX calls from the browser at the same time it will result
in 4-5 QZSRCGI jobs handling the requests, in other word they aren't
queued to the same QZSRCGI job.

Remember that persistence CGI was written way before AJAX where AJAX
may run many independend sockets to the server at the same time.


On Sat, Mar 4, 2017 at 10:42 AM, Kevin Turner
<kevin.turner@xxxxxxxxxxxxxx

wrote:

So the even shorter answer to this question "Would there be any way
for two CGI calls at the same time to overlap the QTEMP libs ?"
is
"No!"

HTH

On 4 Mar 2017, at 09:08, Kevin Turner
<kevin.turner@xxxxxxxxxxxxxx>
wrote:

There is nothing special or different about QTEMP when used in a
CGI
thread. It's unique to the thread/job so nothing else can touch
objects in there other than that thread. Obviously you cannot rely
on storing a value in QTEMP on one request and retrieving it in
another request because (unless you use persistent CGI) each request
can go to a different thread (with a different instance of QTEMP).


[https://www.netcracker.com/assets/img/netcracker-social-final.png
]
ƕ
On 4 Mar 2017, at 05:58, Richard Schoen
<Richard.Schoen@xxxxxxxxxxxxxxx>
wrote:

We have an interesting scenario where a CGI job is using a data
area in
QTEMP for a temp value in a web app and there appears to be a random
issue where that value gets clobbered by another job. (At least
that's what we think is happening.)

My understanding is that each CGI call is synchronous and each
thread/program active job instance has its own copy of QTEMP library
so one call on a particular CGI job thread would have to complete
before it can be re-used by another call. Or if there is only 1 CGI
thread/job subsequent calls will block until the executing call has
completed.

Is my understanding of this correct ?

Would there be any way for two CGI calls at the same time to
overlap
the QTEMP libs ?

Hope this makes sense.

Any thoughts appreciated.

Thanks.

Regards,

[http://static.helpsystems.com/hs/email/templates/signatures
-final/images/hs-logo2.png]

Richard Schoen
Director of Document Management

e.
richard.schoen@xxxxxxxxxxxxxxx<mailto:richard.schoen@helpsystems.
co
m

p. 952.486.6802
w. helpsystems.com<http://www.helpsystems.com/>
[cid:image002.jpg@01D1A545.4C2BF250]<http://www.linkedin.com
/in/richardschoen>[cid:image003.jpg@01D1A545.4C2BF250]<http:
//www.twitter.com/richardschoen>




--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing list
To post a message email: WEB400@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/web400.




________________________________
The information transmitted herein is intended only for the person
or
entity to which it is addressed and may contain confidential,
proprietary and/or privileged material. Any review, retransmission,
dissemination or other use of, or taking of any action in reliance
upon, this information by persons or entities other than the
intended recipient is prohibited. If you received this in error,
please contact the sender and delete the material from any computer.
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing
list
To post a message email: WEB400@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at http://archive.midrange.com/web400.



________________________________
The information transmitted herein is intended only for the person
or entity to which it is addressed and may contain confidential,
proprietary and/or privileged material. Any review, retransmission,
dissemination or other use of, or taking of any action in reliance
upon, this information
by
persons or entities other than the intended recipient is prohibited.
If
you
received this in error, please contact the sender and delete the
material from any computer.
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing list To post a message email: WEB400@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/web400.




--
Regards,
Henrik Rützou

http://powerEXT.com <http://powerext.com/>
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



________________________________
The information transmitted herein is intended only for the person or
entity to which it is addressed and may contain confidential, proprietary
and/or privileged material. Any review, retransmission, dissemination or
other use of, or taking of any action in reliance upon, this information by
persons or entities other than the intended recipient is prohibited. If you
received this in error, please contact the sender and delete the material
from any computer.
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.




--
Regards,
Henrik Rützou

http://powerEXT.com <http://powerext.com/>
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



________________________________
The information transmitted herein is intended only for the person or entity to which it is addressed and may contain confidential, proprietary and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.