I had a unique requirement (problem) and not getting the solution. My program need to link to a CICS program which reads VSAM files. But the VSAM file is huge and reading of VSAM file using other than primary key (as per the request message) is consuming lot of time. Also i cant change the program nor VSAM details as it belongs to third party.
So i need to link (or call or xtcl or start) the program and wait for 20 seconds and if didnt got response from the called program, i need to close the transaction and return some error message back to calling program.
I need a solution in which i can restrict the time taken for called online program to process
Note : My product is a Online application and all my programs are CICS based.
Joined: 18 Jul 2007 Posts: 2150 Location: At my coffee table
How is the linked to program handing back the data?
I'd rewrite the terminal program to start another program not attached to the terminal that will do the link and then wait on a timed event.
This second program will link and when returned to, will post to the event, awaking the terminal program (if it had not already woken up from the timed event).....
Thanks for the reply. In normal condition when there are less record in VSAM file we get response from the linked progam through linkage section . The linking program will pass this information back to Front end (java based) to display.
The problem comes when there are more records in VSAM file and linked program takes more than 20 secs to reterive the data . After 20 secs Front end (java based) displays the time out error to customer. So i need to make my program to just wait for response for 20 secs and if i dont get a response i need to throw a proper error message instead of generic error message.
Also can you please give me more details on how your terminal program works which you had mentioned above
Joined: 14 Jan 2008 Posts: 2504 Location: Atlanta, Georgia, USA
How is the sub-program accessing the file-records? With a STARTBR, READNEXT, ENDBR or successive random READ's?
Is the file defined to an LSR Pool, with favorable CISZ's and space allocation for both the DATA and INDEX portions?
Sounds like the program is reading an alternate index? Is there more than one alternate index defined to this base-cluster? I certainly hope not.
As a customer of the 3rd-Party, have you contacted them regarding any performance improvements that they'd recommend, similar or in addition to the ones outlined above?
How often do you reorganize the file to eliminate CI and CA splits? Note that CI's will most likely occur on-line (not really a bad thing), but you should try and reduce these occurrences via timely REORG's.
On the other hand, CA splits can wreak havoc on VSAM and transaction response time. When a CA split occurs, the QR TCB suspends task delegation, until the split is complete. With that, you can understand why CA splits should be avoided as much as possible.
We had discussion with the 3rd party tool. The problem occurs when we give request which makes the program to access file using alternative index (our request is to get records between a amount range). As per discussion they are not ready to make any changes to there programs nor there indexes . We need to alter our programs accordingly.
so can you please advise how to handle this issue.