I am trying to call an existing CICS cobol program from php using the ca1s support pack. However this program returns more than 32K of data and I cant fit it in the COMMAREA. Is there anyway to use channels, containers, a memory pointer, cics temp storage from php? Any work around for this limitation would be helpful.
JonathanPLawrence 120000CY9630 Posts
Re: Commarea size limitation2011-02-14T11:51:41ZThis is the accepted answer. This is the accepted answer.Hi,
The first thing to mention is that the CA1S SupportPac is not supported and you should move to the CICS Transaction Server Feature Pack for Dynamic Scripting (http://www.ibm.com/software/htp/cics/scripting/) as soon as possible. NB this requires CICS Transaction Server v4.1. CICS Dynamic Scripting includes the same PHP technology as the CA1S SupportPac, and is supported as a CICS Feature.
Having said that, yes, I believe you should be able to use the CICS Channel/Container interface to CICS programs from PHP in CA1S or the FeaturePack. You are correct that the provided CICSProgram API which is documented in the CA1S User Guide does not support channels, however in principle you can in fact use any of the JCICS API in conjunction with the PHP-Java Bridge which is part of the CA1S PHP implementation and documented here:
Note that some of the later enhancements (notably the improved access to Class members) are not included with the version of PHP in the SupportPac - but they are in the Feature Pack.
Again you would typically be using JZOS to construct the container content to pass to the JCICS container APIs, and then you would use the underlying CICS Program Java class for access to the CICS program, rather than the CA1S CICSProgram API.
This approach, whilst it should work, is untested and unsupported in the SupportPac, though this is the supported approach to calling CICS programs in the Dynamic Scripting Feature Pack.
CICS PHP Runtime Development
IBM United Kingdom Limited