We are a CA GEN 8.5 Mainframe (CICS/BATCH/DB2) shop. We are preparing to upgraded to CICS/TS 5.4. Is anyone else already using CICS/TS 5.4 and if so have you encountered any issues?
One thing we noticed is that DFHDB2 defines program DSNTIAC as Threadsafe and our CA Gen has it defined as QUASIRENT. We are wondering if we can change it to QUASI. Has anyone else done this?
Hi Dee,You may have already seen that CICS/TS 5.4 is stated as supported with Gen 8.5 on these compatibility links:https://support.ca.com/phpdocs/0/MSPSaccount/COMPAT/cics_compat.HTML
So far I could not find any problems reported by other users for Gen 8.5 (or 8.6) with CICS/TS 5.4.
For the concurrency setting of THREADSAFE v QUASIRENT there is a Threadsafe section of the Gen 8.5 docops:https://docops.ca.com/ca-gen/8-5/en/installing/install-ca-gen-on-z-os/configuring-runtime-ims-and-cics/threadsafe
As you can see it states "Applications that access DB2 resources and are defined as quasirent must do TCB switching. TCB switching impacts application performance.". Using THREADSAFE is the alternative.
Specifically for DSNTIAC I checked further with Engineering:DSNTIAC as provided by IBM is not a DLL and as such it cannot be directly called from Gen DLL applications. Gen normally calls DSNTIAC via the TIRCTIAX user exit (TIRCTIAZ DLL). However DSNTIAC (or TIRCTIAX) are only invoked when there is a DB2 error to format the displayed message and hopefully you are not getting too many of those, so in this case even using QUASIRENT should not cause excessive TCB switching.For your testing they suggested you decide how you want to use DSNTIAC (dynamic vs static, default in TIRCTIAZ is to dynamic call of DSNTIAR) and define it as THREADSAFE.https://docops.ca.com/ca-gen/8-6/en/reference/user-exits/z-os-user-exits/z-os-server-user-exits-cics/tirtiarx-db2-message-exits
NOTE: Of much more relevance is the DB2 Connection Dynamic Plan Exit program TIRC$EXT documented on the Threadsafe page. This program is invoked for every transaction, particularly if DB2 Dynamic Pool is used, and it does affect TCB switching. So it is suggested you should look if the definition of TIRC$EXT (especially if it is specified in your CICS DB2CONN) is THREADSAFE.
If you want to go ahead with testing Gen 8.5 with CICS/TS 5.4 using above concurrency suggestions and report any problems via support cases we can work through them.
Alternatively you can wait for Engineering to run some tests but due to the holiday season that may take a few weeks.
Hope that helps
Thanks Lynn! We will plan to test it with the threadsafe option. I am fairly certain we are using it via the default dynamic call but will have to verify that. I had found most of those articles but it was nice to have them all in a concise summary. Glad to hear you didn’t find any support tickets! I looked but I am not as familiar with the new CA site layout so wasn’t sure if my search results were complete or not. ☺
Engineering have run some tests with TIRTIAX user exit configured to use DSNTIAC. They defined DSNTIAC both as THREADSAFE and QUASIRENT and received the same results in each case.
Therefore they reconfirmed their advice to change the Gen definition for DSNTIAC to use THREADSAFE (rather than changing the IBM definition of DSNTIAC to QUASIRENT). Per above using THREADSAFE will provide less TCB switching, especially if you also change the definition of TIRC$EXT.
Going forward for future Gen releases, Engineering will also update the DEFCICS member definitions to have THREADSAFE set for the CONCURRENCY.
Hope that helps.
Thanks for the follow up, much appreciated!