This C/370 program can be used to remotely link to a CICS program over HTTP or HTTPS. LSWEBBIN uses the CICS Web Support capability introduced by IBM in CICS TS 1.3.
Clients using LSWEBBIN are expected to send binary data in the HTTP payload. The client is responsible for formatting the data according to the target CICS program expectations. LSWEBBIN does not perform any translation over the data. This means it is the client responsibility to perform such conversions as Ascii to Ebcdic, host numeric encoding, etc. LSWEBBIN has a very minimal footprint on the mainframe.
LSWEBBIN relies on specialized libraries, delivered as C370 programs to provide messaging, tracing and CICS link functionalities to both COMMAREA and CONTAINERS driven programs.
The call diagram looks like this:
------------ ---->| LSMSGLIB | | ------------ | ------------ | --->| LSLNKCOM | | | ------------ ------------ | ------------ | | LSWEBBIN |------->| LSLNKBIN |----| ------------ | ------------ | | | ------------ | --->| LSLNKCTN | | ------------ | ------------ ---->| LSCOMLOG | ------------
- CICS TS 2.3 (6.3.0 Command language translator) and TS 3.1 (6.4.0)
- C/370 for OS/390 V2 R10
Once LSWEBBIN is compiled in a library available to your CICS region in the RPL list, you might need to define it using RDO (unless programs get autoinstalled).
First time around, you can point your browser to a URL with the following form: http://host:port/CICS/CWBA/LSWEBBIN. You should receive a greeting reply. Note that the form of the URL can be customized by your CICS administrator, therefore you might want to check with him.
LSWEBBIN serves clients using theLegStar chttprt library. This library formats the http payload as compact binary. LSWEBBIN expects the following standard HTTP headers:
HTTP method | Mandatory | Should be POST for a client program. |
Content-Type | Mandatory | Should contain "application/octet-stream". |
In addition, these optional extension headers can be specified:
CICSTraceMode | Optional | Turns traces on in CICS if value is 'true'. |
CICSRequestID | Optional | Correlates the traces produced in CICS with the client request. |
Upon reply, any error will be signaled back with HTTP status code 500, Internal Server error. If the error was trapped by LSWEBBIN, further error description can be found in the CICSError HTTP header.
Be advised that in case of an error, the reply payload will actually be translated to ISO-8859-1.
Errors trapped by LSWEBBIN are also logged into CICS CESE TD Queue which usually points to CEEMSG.
If no errors occured, the reply data will be binary and signaled with a content-type of "application/octet-stream".