IBM held a Support Technical Exchange Open Mic session on the topic of CICS Web Services on 27 August 2008. This included a short introduction to the topic followed by a question and answer period in which a group of subject matter experts answered questions from customers.
Open Mic sessions are conducted in a question and answer format. The table below provides a time index (minutes:seconds) to the recording and describes the questions or topics discussed. You can fast forward to any question using the time index. A table containing the panel of experts is also included.
To play or download the audio 1 hour and 20 minute recording of this Open Mic session, see the Audio Section of this document.
Open Mic session
|08:00||How do I get started with Web services in CICS?|
|10:26||What is the difference between CICS Web services, CICS Web support, and the CICS Web interface?|
|13:01||I have been researching on how to set up Web services ... From a practical point of view, is it better to set up a new CICS region that does all the initial Web services routing versus install Web services in a series of AORs?|
|14:45||Is there any detailed documentation for .NET/Visual Studio integration?|
|16:14||The WSDL we generated for a simple program was pulled into Visual Studio, but offered no sample test application the way the WSDLs we generated through Visual Studio do. Yet when we pulled the same WSDL into Eclipse, the sample application was offered right away. Do you plan a tighter integration with Visual Studio?
Technote: Testing Web services
|17:50||What is the easiest way to debug my Web services applications?|
|20:32||How do I diagnose a CICS Web services conversion error?|
|26:21||Is there any way for my application to participate in the trouble shooting for a Web services error?
Question submitted: Currently if an inbound or outbound messages do not conform to the WSDL specification an error is recorded in a CICS log. Is it possible to have a fault generated so the application can participate in trouble shooting such issues? The current CICS log is NOT a very effective means for resolving these issues. Also, in many cases the information recorded in the CICS log is insufficient to determine the source of the issue.
|29:32||We are hoping to use your Web services tools to build browser-based front-end to many of our legacy 3270 applications. One of the features of our existing applications is field validation upon submission backed up by a sub-program offering look-ups for fields that failed validation. For example, if you entered "New Tork" in a city input field for the state of New York, the validation routine would push a look-up screen to the user that offers a valid list of cities in New York State. Since it is a sub-program of the original, the selection of a valid city immediately becomes part of the submitted response, replacing the invalid entry and validation can continue. Is this type of integration between the initial submission and reworked response possible in the Web services area? We do not want to have to push the whole screen back out to be re-worked and revalidated, just open a browser window on the user’s desktop and have them fix an error during the course of validation. The code already exists in CICS, but we would need to maintain a tight level of persistence between each user’s initial input and their subsequent modifications.|
|32:56||Is it possible to get support for SOAP Headers (the building of)?|
|35:21||With Web services, RD/z has become a key component for generating production objects. However, the objects generated (WSBIND, etc.) are impacted by the responses to the wizard prompts. It is very important that production objects always be created the same. But, currently there is no way to record prompt responses and then rerun those responses so the object generation will always be the same. Please explain what we can expect in the future to enable “good practices” to be used for the maintaining of production-alized Web service objects.|
|37:09||It is not uncommon in the world of Web services to need to consume a WSDL that does not include the size parameters (MIN/MAX-LENGTH) required by the mainframe. In these cases, the default size is used a lot. Since the WSDL is the Web service contract it is preferable to NOT modify the WSDL or associated XSD. However, currently RD/z only allows for one default length which is not sufficient in a lot of cases thus forcing developers to modify the WSDL and/or XSD. This practice invalidates the contract of the service provider (not the preferable method). A preferred approach may be more defaults, or a element by element override JUST to enable the mainframe definitions. Please comment on what we can expect in the future on this issue.|
|40:00||How do we set up our RACF Keyrings to include both self signed Client and Server certificates and also the CA (Entrust) and SITE certificate that the region needs?
We are trying to implement client certificates and when I point the CICS region to a keyring with only the self signed certificates, I get a 440 SSL error. The self signed client certificate is added to the keyring as usage(certauth). The self signed server certificate is in the keyring with usage(personal) and default. The display of the keyring:
Certificate Label Name Cert Owner USAGE DEFAULT
---------------------- ------------- -------- -------
WASCERT20 ID(PSERVER) CERTAUTH NO
CICSCERT ID(CICS3) PERSONAL YES
When I point the CICS region to a keyring with the self signed certificates mentioned above and our CA and SITE certificates, we get a 435 SSL error. The display of the keyring:
Certificate Label Name Cert Owner USAGE DEFAULT
---------------------- ------------ -------- -------
WASCERT20 ID(PSERVER) CERTAUTH NO
CICSCERT ID(CICS3) PERSONAL NO
Entrust Secure Server Root CACERTAUTH CERTAUTH NO
Shared SSL for CICS SITE PERSONAL YES
|44:08||Is there any place to find SOAP fault messages documented and what the reason/action text would be to go along with the messages? Our first attempt at using a self signed client certificate resulted in the SOAP fault:
<?xml version='1.0' encoding='UTF-8'?>
<faultstring>ERROR: Caught *XSECException*
during operation: processMessage()</faultstring>
Not authorized to use this service.</message>
How would a person debug that fault message when nothing is being logged on the mainframe in CICS or the SYSLOG?
|46:56||Is it possible to enable retrieving of the container DFHREQUEST after the “INVOKE WEBSERVICE” verb has been used (by application program)?|
We are on CICS TS V2.2 with the SOAP Feature installed. We are scheduled to install CICS TS V3.2 in the first quarter of 2009. All of the CICS Web services that I have written are service providers. The client applications are .NET. The CICS Web services parse the input XML message and generate the output XML message. We do not use WSDL. The .NET client sends a SOAP message without using a WDSL to the CICS Web service.
By changing the BTS input and output container names to the new CICS TS V3.2 container names for XML input and output, would our current Web services run without a WSDL and without the SOAP Feature being installed in CICS TS V3.2? What is the migration path for Web services written using the CICS SOAP Feature, without rewriting all of our current Web services?
|52:45||Seems like there is a limitation to the WEBSERVICE name (8 characters) if we choose to pre-define URIMAPs and WEBSERVICEs. The reason for this approach is to attach a different UserId with the URIMAP in test and production so that we do not have to generate 2 WSBIND files using RD/z. Do you always recommend pipeline scans? Your thoughts?|
|54:51||I have a WSDL document that is rejected by DFHWS2LS.... What can I do?|
|1:00:58||I have a question about the XML parsing and zAPP engine. Will CICS be able to make use of that? One of our barriers to people wanting to use XML and SOAP is the the number of elements that are being parsed, so running them on the zAPP engine would help. I know that new COBOL will support running XML parsing on the zAPP engine. How will that support work with CICS SOAP?|
|1:02:53||At debug time, how do we enable TCP monitor to see the SOAP envelope to be sent on the wire or received on the wire?|
|1:09:33||Is the mapping information in the WSBIND file used at runtime?
|1:13:06||Does IBM have any recommendation for the HFS directory structure for the three artifact areas, the config, shelf, and WSDIR?
|1:15:09||When CICS is consuming a Web service, using INVOKE WEBSERVICE, other than specifying the location on the API command, is there a way to change the endpoint in a resource definition, or any other suggestions on how we might do that? Normally it picks up whatever is in the WSBIND file.
|1:18:31||Open Mic Summary|
|1:19:06||Closing remarks/End of Call|
|Paul Cooper||Software Developer, CICS|
|Fraser Bohm||Software Developer, CICS|
|Gary Mazo||Software Developer, RD/z|
|Mark Pocock||Level3 Service Specialist, CICS|
|Charlie Wiese||Level2 Support, CICS|
|Leigh Compton||Advanced Technical Support, CICS|
|Dennis Weiand||Advanced Technical Support, CICS|
|Steve Webb||Knowledge Engineer, CICS|
Click on Download Audio to play the recording of this conference call (MP3 format). Right-click and select Save As to store the file on your local computer for later playback. Remember that you can fast forward to any question using the time index.
CICS/TS CICS TS CICS Transaction Server