EGL Development User Group

EGL Development User Group

EGL Development User Group

The EGL Development User Group is dedicated to sharing news, knowledge, and insights regarding the EGL language and Business Developer product. Consisting of IBMers, HCL, and users, this community collaborates to advance the EGL ecosystem.

 View Only
  • 1.  Web Transaction and Temporary Storage

    Posted 01/13/16 09:20 AM

    Happy New Years !!

    RBD 9.1.1 and CICS zVSE Runtime.

     

    My customer are running EGL WebTransaction (migrated from VAG) and using stmt CONVERSE UIRecord to show web page.

    We have monitored the CICS Temporary Storage created by EGL Runtime (not user TS) and theses TS area are not PURGED.

    Are there some problem ?  or have some config to EGL Runtime ?

     

    Thanks !

    Hsieh


  • 2.  Re: Web Transaction and Temporary Storage

    Posted 01/13/16 02:57 PM

    Hsieh,

     

    Happy New year to you as well.

     

    A couple of questions:

    a.)  Are you seeing the queues still there if the web transaction program terminates normally?  (In my testing on z/OS, a DeleteQ is issued when normal end).

    b.) Is the issue related to the session timing out or if the user closes the browser?   (or something else)??

    There is an option I found documented from VAGen (see the attached word document) that should work when the session times out,  but in my testing, it did not seem to be working in EGL.  So, will need to do some investigation.

    Mark

    markevans

    Attachments



  • 3.  Re: Web Transaction and Temporary Storage

    Posted 01/13/16 04:08 PM

    Hi Mark,

    Response:

    a) I don't know.  I'll investigate.

    b) What happen when the user close the browser or type a new link to navigate a new web transaction app ?

    How to the sample COBOL TS Delete work ? or when or how is it started automaticly ?

     

    Thanks for advanced.

    Hsieh


  • 4.  Re: Web Transaction and Temporary Storage

    Posted 01/13/16 04:21 PM

    Hsieh,

     

    I need to investigate on your questions. 

     

    The way I thought this option worked was when the Gateway Servlet ended its session (the one the gateway servlet creates) due to a timeout, then it would call back and do the deleteQ.   Therefore, it should do it when the browser is closed, etc.   If the "link" to a new transaction reused the gatewayServlet session, then there would not be a need to purge it.

     

    I am not sure it is working that way, so we need to do some research on whether my understanding is correct or not.  

     

    Followon Question:

    When the customer was using VAGen, were the queues purged somehow?   Or did they have the same problem then.

     

    And followon comment:

    One thing I noticed in digging around.  There is a CICS TSMODEL resource definition.   In this, there is an option called EXPIRYINT.  As I read it, when this is set, this is an "unused" time value for a TS queue and when this value is reached, the queue will be marked for deletion.  So, maybe they could create a TSMODEL and control it that way.

     

    take care.

     

    Mark

    markevans


  • 5.  Re: Web Transaction and Temporary Storage

    Posted 01/14/16 11:32 AM

    Hsieh,

     

    After further testing, I found that the new property is case sensitive.  When you use the correct case, then it will call back to the host when the EGL GatewayServlet session is unbound due to timeout.  This is done whether the application is inactive or the browser is closed.  I think the timeout is around 30 mins, so it will not be immediate. .

     

    So, if you add the property

    serverLinkage.xxxx.tsqMod=ELACDELQ                   

     

    where xxxx is your "server" and ELACDELQ is your created version of this module.

     

    When the session is unbound, you would get a message like this (assuming you had tracing on).   But either way, it calls back to do the delete q.

     

    Thu Jan 14 11:06:33 EST 2016 - CUY8NN02 - VGJ0610I - A gateway session is being unbound for user, CUY8NN02.
    Thu Jan 14 11:06:33 EST 2016 - CUY8NN02 - No open ctgConnection for removing CICS TSQ. Opening one...
    Thu Jan 14 11:06:33 EST 2016 - CUY8NN02 - Removing CICS TSQ CUY8NQ03 rc: 0 ==> ECI_NO_ERROR

     

    markevans


  • 6.  Re: Web Transaction and Temporary Storage

    Posted 01/14/16 01:57 PM

    Hi Mark,

    It's very good !

    I did some tests and the TSQ is not purged after normal porgram terminated or browser is closed.

    ELACDELQ is not a EGL native module, correct ?  I have to use TSQSAMP and create one module as I would liked ELACDELQ.

    Thanks for tips.

    Hsieh


  • 7.  Re: Web Transaction and Temporary Storage

    Posted 01/14/16 02:53 PM

    Hsieh,

     

    If you are doing a Converse, with or without the tsqMod property, it should be deleting the TSQ if the program is "ending" (i.e. equivalent of normal PF3 on a transaction and the whole EGL rununit is terminating (EZECLOS).   When I run this way in CICS on z/OS, I see the DELETEQ just before the end of the transaction.   The code is shared between z/OS and z/VSE, so would be surprised if this one was not working...but things do surprise me sometimes.

     

    If you are using the tsqMod property, then you will need to create the ELACDELQ yourself using the sample source in the document and that load module needs to be made available to CICS (including program entries if needed).   Then the gatewayServlet call is used when the user abandons the web transaction either though no response or closing the browser, etc.  

     

    Note that it will not do the delete if the application server is terminated also as the gateway Servlet would no longer be running.

     

    If these are not happening on z/VSE like it is on z/OS, we would need for you to open a PMR and provide something like an Auxtrace in the normal circumstance and the logs from the gateway servlet (hptLogOpt=0 in gw.properties) and the communications file (application.*.traceFlag = 1 in csogw.properties).

     

    And don't know if it matters,but I use the built-in session id manager.  This means in gw.properties, I am using hptDisableRMIIDManager=Y.   I would recommend running this way.   Again, this should only affect what happens if you are using the tsqMod property.

     

     

    take care.

    markevans


  • 8.  Re: Web Transaction and Temporary Storage

    Posted 01/21/16 07:44 AM

    Hi Mark,

    Sorry for delay to reply. I were doing more tests.

    Yes,  I am using hptDisableRMIIDManager = Y.

    These are the status:

    1. TSQ is deleted

    Normal Program Exit.

    2. TSQ is not deleted

    - Close Window Browser

    - Go a new Web Transaction Program or navigate to another link.

    We have added the property  serverLinkage.xxxx.tsqMod=ELACDELQ and compile the COBOL programa ELACDELQ.

    But nothing happening when:

    - Close Window Browser

    - Go a new Web Transaction Program or navigate to another link.

    The TSQ is not deleted.

    But all TSQ are deleted when Application Server is restarted and I saw that the ELACDELQ was called.

     

    Hsieh