Date: Tue, 5 Nov 2002 08:22:27 -0600
Reply-To: CICS List <CICS-L@LISTSERV.UGA.EDU>
Sender: CICS List <CICS-L@LISTSERV.UGA.EDU>
From: Rakesh Kaushika <RakeshK@SECURA.NET>
Subject: Re: Commarea within CWS Programs
Content-Type: text/plain; charset="iso-8859-1"
Donald,
Thanks for your very informative response.In my case I am having the
Presentation logic (converter program) separate from Business logic.would
you still recommend passing the data in TSQ rather than thru the
commarea.one more question I have is we have about 5K bytes of
commarea.would I have to change the user data area of DFHWBST or DFHWBSR
from 256 bytes to 5000 or am I missing something here.
I would appreciate any suggestions or feedback.
Thanks
Rakesh
-----Original Message-----
From: Donald Schnader [mailto:DSchnade@EXCHANGE.EBSCO.COM]
Sent: Monday, November 04, 2002 4:20 PM
To: CICS-L@LISTSERV.UGA.EDU
Subject: Re: Commarea within CWS Programs
Hi Rakesh
There are two sets of state management examples sent with CICS. The
default stores the state information in memory. The second stores state
information in TSQs. The TSQ is what I am using now because I'm doing port
sharing with several regions. I need the state information to go from one
region to the other as needed. The TSQ set (DFHWBSR) needed to be fixed. (I
compared and adding functions from DFH$WBST to DFHWBSR). The calling
programs needed changing to call the TSQ set.
The samples would help you when you need CICS to setup information as part
of the initiation of the transaction (like TERMID, TCTUA etc). Please
understand your "web aware" program is going to have the HTTP request in its
DFHCOMMAREA. So, passing the data in the commarea is not what you will be
doing anyway.
The alternative I would suggest is to create TSQs using the state token.
you have access to the token when the session was signed on. When your
program starts to return, create or update a TSQ where QNAME is application
identifier (1 to 8 bytes) and token (8 bytes). The token could be converted
to a 4 byte binary field (I would have to look up the algorithm). That would
give you 12 bytes for the QNAME. When the "web aware" program starts it can
read for the TSQ by the token. (Note QNAME has a length of 16 where QUEUE
only has a length of 8 bytes)
This way if you are running a single region the TSQ is always there. If
you are running multiple regions (like me) the TSQ can be made remote to a
QOR (or FOR). And of course, we could put the TSQ in a coupling facility.
Hope this helps
Donald
PS. I am very disappointed with David Clancey's answer "...(the IBM Samples
are available) but for a number of reasons (affinity issues - getmain, Size
limitations of state data (256 bytes), and url encoding problems) they are
not much use. ..."
I'm sure their classes have a certain value, but I found significant use
of the IBM supplied samples. Strangely, I haven't ran into the issues that
plague the Circle Group.
>>does the CWS has some functionality built in to save and restore the
>>commarea between the Tasks or do we have to write something on our own so
>>that commarea could be
>>maintained after a task has ended.
>>I would appreciate any feedback or suggestions
>>Thanks
>>Rakesh