IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

CICS Web Services configuration question


IBM Mainframe Forums -> CICS
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Mon Nov 04, 2019 9:56 pm
Reply with quote

Good morning,

We are in the process of implementing CICS Web Services as a provider in our shop - all homegrown code without any real expertise, so we are really starting from the ground floor.

We have defined our TCPIPService/Port and WEBService, and are using the default PIPELine "PIPEPR12". During the PIPELINE SCAN, CICS has defined the URIM.

Background:
- We currently are working on a service to do a single business logic function for a Requisition.
- We will be working on the rest of the purchasing stream - POs, Inventory Receiving, and Vouchering.

My question is:
- From a "best practice" and/or "performance" standpoint, do we need to have separate PIPELines or TCPIPServices for each WEBService?

I have done a lot of searching in the IBM RedBooks and through a lot of the PDFs/PPTs available online from various webcasts and can't find a definitive answer.

TIA for any advice/help.
Steve
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Tue Nov 05, 2019 8:59 pm
Reply with quote

My advise is to keep it simple. Moving a webs service into production from a test environment is a pretty involved process. Don't make it more difficult. I configure multiple pipelines in test CICS, to facilitate different developers doing different things with web services. I may have two pipelines in production if I have a lot of web services, just to group them and provide some order. But, there isn't any particular benefit to be had from multiple pipelines.

More than one port definition may be used to provide different security at the port level. But if all of your web services use the same security, I don't see the need. Make sure each CICS region uses a different port though. Especially TEST and PRODUCTION CICS regions. You don't want to accidently direct a test web service to a production CICS region.

I don't know which kind of files your web services will use, but I would strongly recommend DB2. Early web services I created using VSAM all had to be changed to DB2 because VSAM presents far too many obstacles and performance issues.

I don't know what programming language you are using, but if it's COBOL or PL/1, I would use CICS container support to write the programs and use SmartBear SoapUI to test with. Once you understand how containers work, you can develop new web service providers in a matter of hours. I can put together a pretty complex web service and test it in SoapUI in 2 days.
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Tue Nov 05, 2019 9:25 pm
Reply with quote

I should have said use CICS Channels and Containers. I always forget to say channels.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Tue Nov 05, 2019 9:44 pm
Reply with quote

Thanks very much for the reply John!

I should have included a few more details in my original post.

For background, this is an existing procurement MF application and we are writing "wrapper" web service programs around the business logic for posting transactions through the procurement stream. This will eventually be the "back end" for transactions coming in from multiple points via a middleware setup.

We do have separate test/prod ports currently defined. All of the wrappers will be using the same security, but I was just worried that we would need to separate them at the port or pipeline level. Good to know that isn't necessary.

The application is a COBOL/CICS/DB2 application, so the wrappers are as well and will be using Channels/Containers with SOAP WSDL.

We picked up on the SmartBear SoapUI test package a bit ago - good to know it was the right choice! Really nice package for the price ($0)!

We had previously created a web service provider on the web/PC side and have the MF as requestor, so we do have a bit of familiarity with Channels/Containers at least.

It seems like we are just about there with everything - just need a few additional tweaks with our CICS configuration and firewalls.

Thanks again for your insight John!
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Wed Nov 06, 2019 12:23 am
Reply with quote

Are your requests or responses single occurrences or arrays? Arrays can be a little tricky.

Did you define a CICS transaction to serve as the DB2 anchor?

Are you using wsdl or RestFul?

You can get a lot of the CICS setup and commands needed in the IBM CA1P SupportPac for web service samples.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Wed Nov 06, 2019 12:28 am
Reply with quote

We are using WSDL for the data structure and have hooks to a CICS transaction.

I read quite a bit on how tricky arrays can be, so we've written them to be mostly limited and not too complex (no ODOs, only single-level, etc.).

I appreciate the tips!
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Wed Nov 06, 2019 2:47 am
Reply with quote

If you need any help feel free to ask. I have about 6 years experience with mainframe web services using channels and containers. I have a "sniffer" program that will show you what your containers are doing, if you are interested. It works great but you have to restart your CICS region to turn it on and off.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Thu Nov 14, 2019 2:05 am
Reply with quote

Good afternoon John,

I've got nearly everything defined correctly, but am running into what must be a simple issue.

I'm trying to do a WSDL discovery (hostname/webservicename?wsdl) and am getting a DFHPI0603 message. This happens either by trying to browse it in Chrome, or by the SoapUI testbench...

From the KB article (https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.2.0/com.ibm.cics.ts.messages.doc/DFHPI/DFHPI0603I.html):
"... A URIMAP resource might be missing if the URI is trying to discover a WSDL file."
and also
"If the request is attempting to discover the WSDL for a web service, ensure a URIMAP resource is installed that can match the path of the URI to the location of the WSDL."

How can I match these up?

- The URI parm on the DFHLS2WS job points to the address of the WebService:
URI=http://<IP Address>:<port>/PostREQ
- The WSDL parm has the full UNIX path to the WSDL:
WSDL=/usr/local/cics/cicst5y/wsdl/PostREQ.wsdl
- The PIPELINE scan builds the URIMap ($111600), and it points to the WebService:
Webservice(PostREQ)
- The PATH shows the relative path of the URI parm from DFHLS2WS:
Path(/PostREQ)
- The WebService points to the correct PipeLine and URIMap:
Pipeline(PIPEPR12)
URIMap($111600)

Any pointers on where to look or what I'm missing? I tried dropping off the IP/Port in the URI in DFHLS2WS, but that just made the Address Location at the bottom of the generated WSDL invalid.

I know it's got to be something simple....

Thanks for any help!
Steve
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Thu Nov 14, 2019 7:51 am
Reply with quote

Have you set up SoapUI correctly with the wsdl as a project and manually entered your web service provider address and name?

I assume you have done these things, but it doesn't hurt to verify. If not, I can step you through what is needed.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Thu Nov 14, 2019 6:26 pm
Reply with quote

Yes, SoapUI looks good. I also verified with the network people on both ends that the port and SOAP traffic are being permitted according to the logs. The error in CICS happens for both SoapUI and a generic WSDL discovery browse by Chrome.

I even copied the DFHLS2WS generated WSDL from the UNIX library to a text document and verified it against Use [URL] BBCode for External Links and got no errors.

I feel like it's right there, but I've forgotten just a little (or stupid) thing....

Thanks, I really appreciate all of your help and guidance!
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Thu Nov 14, 2019 9:49 pm
Reply with quote

Why are you using Web service discovery? That introduces complexity you don't want when you are testing your first web service provider. Keep it simple, Hard code the address. In your SOAPUI web service, under Request1, you code the address in the box on top as something like this:
http:/10.133.40.20:41000/test/TestService

Where:
10.133.40.20 is the address of your mainframe
41000 is the name of the port you assigned
test is the name of the CICS transaction
Test Service is the name of your web service provider

Of course, these are not real values, just examples.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Thu Nov 14, 2019 9:54 pm
Reply with quote

Sorry, I might be using wrong terminology.

What I am trying to get is just the XML of the WSDL to verify we're good to that point. Using your example:
http:/10.133.40.20:41000/test/TestService?WSDL

And am expecting to get back the XML document.
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Thu Nov 14, 2019 10:06 pm
Reply with quote

SoapUI will take care of that. If you give it bad wsdl, it will complain.
Here's a sample of the Request1 it creates. It should be all you need to see:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sci0="http://www.SCI02WS.SCI02RQI.Request.com">
<soapenv:Header/>
<soapenv:Body>
<sci0:SCI02WSOperation>
<sci0:SciStatRequest>
<sci0:DocType>?</sci0:DocType>
<sci0:DocBatch>?</sci0:DocBatch>
<sci0:DocID>94020578</sci0:DocID>
</sci0:SciStatRequest>
</sci0:SCI02WSOperation>
</soapenv:Body>
</soapenv:Envelope>
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Thu Nov 14, 2019 10:32 pm
Reply with quote

I will try to "discover" one of my web services in my test environment. As I recall, it requires some things to be set up that I don't normally use. This could take awhile.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Thu Nov 14, 2019 10:42 pm
Reply with quote

Awesome, thank you!
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Thu Nov 14, 2019 10:57 pm
Reply with quote

I tried to discover the web service for the sample I showed you. It didn't work for me, either. I did verify the web service worked fine in SOAPUI:

<SOAP-ENV:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sci0="http://www.SCI02WS.SCI02RQI.Request.com" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SCI02WSOperationResponse xmlns="http://www.SCI02WS.SCI02RSI.Response.com">
<SciStatResponse>
<SciCompletion>ROWS SELECTED: 0001</SciCompletion>
<SciArray>
<ResType>PD</ResType>
<ResBatch>327</ResBatch>
<ResDocId>94020578</ResDocId>
<ResMessID>F063</ResMessID>
<ResMessTxt>DOC PROCESSED AND ACCEPTED</ResMessTxt>
<ResDate>2019/05/14 15:40:03.2520</ResDate>
</SciArray>
</SciStatResponse>
</SCI02WSOperationResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The version of CICS we have is a 3.2, which may be too old for Discover.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Thu Nov 14, 2019 11:29 pm
Reply with quote

Can you see if your CICS logs had a DFHPI0603 (it's in our MSGUSR DD under the CICS listing).

(As info, we're on CICS TS 5.2.)
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Fri Nov 15, 2019 3:37 am
Reply with quote

My version of CICS simply ignores Discover and gives an internal server error, no DFH messages of any kind.

I suggest using my manual SOAP testing method to see if you can get your web service to work and worry about discover later.
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Mon Nov 18, 2019 9:32 pm
Reply with quote

Well, I'm back and stuck again. Sorry, but I need another knock on the head to see what I'm doing wrong. Sorry if this is too much (or not enough) info.

Thanks for all your insight!

When I'm trying to hit this via SoapUI, I'm not getting any errors in the CICS logs, but SoapUI is throwing this when I try to create the project:
Code:
WSDLException (at /SOAP-ENV:Envelope): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.


Also, this is in the soapui-errors.log file:
Code:
2019-11-18 10:49:02,976 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
   at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlInterfaceDefinition.load(WsdlInterfaceDefinition.java:52)
   at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.loadDefinition(WsdlContext.java:62)
   at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.loadDefinition(WsdlContext.java:34)
   at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext.cacheDefinition(AbstractDefinitionContext.java:245)
   at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext.access$400(AbstractDefinitionContext.java:47)
   at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:218)
   at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
   at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:131)
   at java.lang.Thread.run(Unknown Source)


As I mentioned on Thursday last week, I ran the WSDL generated from the DFHLS2WS job through Use [URL] BBCode for External Links and got no errors.

For reference, the generated WSDL:
Code:
<?xml version="1.0" ?>                                                         
<!--This document was generated using 'DFHLS2WS' at mapping level '4.0'. -->   
<definitions targetNamespace="http://www.PCHL0900.PHCWWSI1.com" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:reqns="http://www.PCHL0900.PHCWWSI1.Request.com" xmlns:resns="http://www.PCHL0900.PHCWWSO1.Response.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.PCHL0900.PHCWWSI1.com">
 <documentation>
   Service: Requisition Posting service
   Version: 1.0.0
   Owner: State of Maryland, Department of Information Technology, Financial Application Systems
 </documentation>
   <types>                                                                     
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://www.PCHL0900.PHCWWSI1.Request.com" xmlns:tns="http://www.PCHL0900.PHCWWSI1.Request.com">
         <xsd:annotation>                                                       
            <xsd:documentation source="http://www.ibm.com/software/htp/cics/annotations">This schema was generated by the CICS Web services assistant.</xsd:documentation>
         </xsd:annotation>                                                     
         <xsd:annotation>                                                       
            <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.mappingLevel=4.0</xsd:appinfo>                     
         </xsd:annotation>                                                     
         <xsd:complexType abstract="false" block="#all" final="#all" mixed="false" name="ProgramInterface">
            <xsd:sequence>                                                     
               <xsd:element name="ws_web_service_area_inbound" nillable="false">
                  <xsd:complexType mixed="false">                               
                     <xsd:sequence>                                             
                        <xsd:element name="ws_inbound_data_payload" nillable="false">
                           <xsd:complexType mixed="false">                     
                              <xsd:sequence>                                   
                                 <xsd:element name="ws_doc_type" nillable="false">
                                    <xsd:simpleType>                           
                                       <xsd:annotation>                         
                                          <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.charlength=fixed                                   
com.ibm.cics.wsdl.properties.synchronized=false                                 
com.ibm.cics.wsdl.properties.utf16be=false</xsd:appinfo>                       
                                       </xsd:annotation>                       
                                       <xsd:restriction base="xsd:string">     
                                          <xsd:maxLength value="3"/>           
                                          <xsd:whiteSpace value="collapse"/>   
                                       </xsd:restriction>                       
                                    </xsd:simpleType>                           
                                 </xsd:element>                                 
                                 <xsd:element name="ws_field_1" nillable="false">
                                    <xsd:simpleType>                           
                                       <xsd:annotation>                         
                                          <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.charlength=fixed                                   
com.ibm.cics.wsdl.properties.synchronized=false                                 
com.ibm.cics.wsdl.properties.utf16be=false</xsd:appinfo>                       
                                       </xsd:annotation>                       
                                       <xsd:restriction base="xsd:string">     
                                          <xsd:maxLength value="50"/>           
                                          <xsd:whiteSpace value="collapse"/>   
                                       </xsd:restriction>                       
                                    </xsd:simpleType>                           
                                 </xsd:element>                                 
                                 <xsd:element name="ws_field_2" nillable="false">
                                    <xsd:simpleType>                           
                                       <xsd:annotation>                         
                                          <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.charlength=fixed                                   
com.ibm.cics.wsdl.properties.synchronized=false                                 
com.ibm.cics.wsdl.properties.utf16be=false</xsd:appinfo>                       
                                       </xsd:annotation>                       
                                       <xsd:restriction base="xsd:string">     
                                          <xsd:maxLength value="50"/>           
                                          <xsd:whiteSpace value="collapse"/>   
                                       </xsd:restriction>                       
                                    </xsd:simpleType>                           
                                 </xsd:element>                                 
                              </xsd:sequence>                                   
                           </xsd:complexType>                                   
                        </xsd:element>                                         
                     </xsd:sequence>                                           
                  </xsd:complexType>                                           
               </xsd:element>                                                   
            </xsd:sequence>                                                     
         </xsd:complexType>                                                     
         <xsd:element name="PCHL0900Operation" nillable="false" type="tns:ProgramInterface"/>
      </xsd:schema>                                                             
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://www.PCHL0900.PHCWWSO1.Response.com" xmlns:tns="http://www.PCHL0900.PHCWWSO1.Response.com">
         <xsd:annotation>                                                       
            <xsd:documentation source="http://www.ibm.com/software/htp/cics/annotations">This schema was generated by the CICS Web services assistant.</xsd:documentation>
         </xsd:annotation>                                                     
         <xsd:annotation>                                                       
            <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.mappingLevel=4.0</xsd:appinfo>                     
         </xsd:annotation>                                                     
         <xsd:complexType abstract="false" block="#all" final="#all" mixed="false" name="ProgramInterface">
            <xsd:sequence>                                                     
               <xsd:element name="ws_web_service_area_outbound" nillable="false">
                  <xsd:complexType mixed="false">                               
                     <xsd:sequence>                                             
                        <xsd:element name="ws_outbound_data_payload" nillable="false">
                           <xsd:complexType mixed="false">                     
                              <xsd:sequence>                                   
                                 <xsd:element name="ws_return_message" nillable="false">
                                    <xsd:simpleType>                           
                                       <xsd:annotation>                         
                                          <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.charlength=fixed                                   
com.ibm.cics.wsdl.properties.synchronized=false                                 
com.ibm.cics.wsdl.properties.utf16be=false</xsd:appinfo>                       
                                       </xsd:annotation>                       
                                       <xsd:restriction base="xsd:string">     
                                          <xsd:maxLength value="7"/>           
                                          <xsd:whiteSpace value="collapse"/>   
                                       </xsd:restriction>                       
                                    </xsd:simpleType>                           
                                 </xsd:element>                                 
                                          <xsd:element name="ws_error_code" nillable="false">
                                             <xsd:simpleType>                   
                                                <xsd:annotation>               
                                                   <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.charlength=fixed                                   
com.ibm.cics.wsdl.properties.synchronized=false                                 
com.ibm.cics.wsdl.properties.utf16be=false</xsd:appinfo>                       
                                                </xsd:annotation>               
                                                <xsd:restriction base="xsd:string">
                                                   <xsd:maxLength value="4"/>   
                                                   <xsd:whiteSpace value="collapse"/>
                                                </xsd:restriction>             
                                             </xsd:simpleType>                 
                                          </xsd:element>                       
                                          <xsd:element name="ws_error_message" nillable="false">
                                             <xsd:simpleType>                   
                                                <xsd:annotation>               
                                                   <xsd:appinfo source="http://www.ibm.com/software/htp/cics/annotations">
com.ibm.cics.wsdl.properties.charlength=fixed                                   
com.ibm.cics.wsdl.properties.synchronized=false                                 
com.ibm.cics.wsdl.properties.utf16be=false</xsd:appinfo>                       
                                                </xsd:annotation>               
                                                <xsd:restriction base="xsd:string">
                                                   <xsd:maxLength value="25"/> 
                                                   <xsd:whiteSpace value="collapse"/>
                                                </xsd:restriction>             
                                             </xsd:simpleType>                 
                                          </xsd:element>                       
                              </xsd:sequence>                                   
                           </xsd:complexType>                                   
                        </xsd:element>                                         
                     </xsd:sequence>                                           
                  </xsd:complexType>                                           
               </xsd:element>                                                   
            </xsd:sequence>                                                     
         </xsd:complexType>                                                     
         <xsd:element name="PCHL0900OperationResponse" nillable="false" type="tns:ProgramInterface"/>
      </xsd:schema>                                                             
   </types>                                                                     
   <message name="PCHL0900OperationResponse">                                   
      <part element="resns:PCHL0900OperationResponse" name="ResponsePart"/>     
   </message>                                                                   
   <message name="PCHL0900OperationRequest">                                   
      <part element="reqns:PCHL0900Operation" name="RequestPart"/>             
   </message>                                                                   
   <portType name="PCHL0900Port">                                               
    <documentation>Receives all data elements required for requisition posting, then provides response message with any errors.</documentation>
      <operation name="PCHL0900Operation">                                     
         <input message="tns:PCHL0900OperationRequest" name="PCHL0900OperationRequest"/>
         <output message="tns:PCHL0900OperationResponse" name="PCHL0900OperationResponse"/>
      </operation>                                                             
   </portType>                                                                 
   <binding name="PCHL0900HTTPSoapBinding" type="tns:PCHL0900Port">             
      <!-- This soap:binding indicates the use of SOAP 1.1 -->                 
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="PCHL0900Operation">                                     
         <soap:operation soapAction="" style="document"/>                       
         <input name="PCHL0900OperationRequest">                               
            <soap:body parts="RequestPart" use="literal"/>                     
         </input>                                                               
         <output name="PCHL0900OperationResponse">                             
            <soap:body parts="ResponsePart" use="literal"/>                     
         </output>                                                             
      </operation>                                                             
   </binding>                                                                   
   <service name="PCHL0900Service">                                             
      <port binding="tns:PCHL0900HTTPSoapBinding" name="PCHL0900Port">         
         <soap:address location="http://1.2.3.4:5/PostREQ"/>               
      </port>
   </service>
</definitions>

The inbound data area copybook:
Code:
01  WS-WEB-SERVICE-AREA-INBOUND.                   
    05  WS-INBOUND-DATA-PAYLOAD.                   
        10  WS-DOC-TYPE                  PIC X(03).
        10  WS-FIELD-1                   PIC X(50).
        10  WS-FIELD-2                   PIC X(50).

Lastly, the outbound data area:
Code:
01  WS-WEB-SERVICE-AREA-OUTBOUND.                         
    05  WS-OUTBOUND-DATA-PAYLOAD.                         
        10  WS-RETURN-MESSAGE            PIC X(07).       
            88  WS-RETURN-SUCCESS        VALUE 'SUCCESS'. 
            88  WS-RETURN-SUCCESS        VALUE 'FAILURE'. 
        10  WS-ERROR-CODE                PIC X(04).       
        10  WS-ERROR-MESSAGE             PIC X(25).       
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Mon Nov 18, 2019 9:35 pm
Reply with quote

Forgot to add the input cards to DFHLS2WS:
Code:
PGMNAME=PCHL0900                                               
LANG=COBOL                                                     
PGMINT=CHANNEL                                                 
PDSLIB=//(removed).COPYLIB                             
REQMEM=PHCWWSI1                                                 
RESPMEM=PHCWWSO1                                               
LOGFILE=/(removed)/PostREQ.ls2ws.log     
MAPPING-LEVEL=4.0                                               
WSBIND=/(removed)/PostREQ.wsbind
WSDL=/(removed)/PostREQ.wsdl             
URI=http://1.2.3.4:5/PostREQ

(and also replaced IP/Port with 1.2.3.4:5)
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Tue Nov 19, 2019 12:35 am
Reply with quote

FYI,

Also checked the "SoapUI Log" button at the bottom of the UI window and got additional messages:
Code:
Mon Nov 18 13:24:16 EST 2019:DEBUG:Getting wsdl component from [http://1.2.3.4:5/PostREQ/]
Mon Nov 18 13:24:16 EST 2019:DEBUG:Attempt 1 to execute request
Mon Nov 18 13:24:16 EST 2019:DEBUG:Sending request: GET /PostREQ/ HTTP/1.1
Mon Nov 18 13:24:16 EST 2019:DEBUG:Receiving response: HTTP/1.1 405 Method Not Allowed
Mon Nov 18 13:24:16 EST 2019:DEBUG:Connection can be kept alive indefinitely
Mon Nov 18 13:24:16 EST 2019:DEBUG:Loading Definition...
Mon Nov 18 13:24:16 EST 2019:DEBUG:Loading WSDL: http://1.2.3.4:5/PostREQ/
Mon Nov 18 13:24:16 EST 2019:DEBUG:Returning baseInputSource [http://1.2.3.4:5/PostREQ/]
Mon Nov 18 13:24:16 EST 2019:ERROR:An error occurred [com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException], see error log for details
Mon Nov 18 13:24:48 EST 2019:DEBUG:Connection closed


Found this post after digging around - developer.ibm.com/answers/questions/433631/soap-fault-http-post-method-only-supported-by-this/

I thought I was onto something, so I copied the WSDL from the WSDL Unix folder into the WSBIND folder. Reran the pipeline scan. No dice...

Didn't know if this would help.

I know this has got to be something stupid/simple on my part...
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Tue Nov 19, 2019 1:19 am
Reply with quote

I am not at work today, but I will be back tomorrow and will try to step you through what needs to be done. But, I need to ask why you have libraries that show as (removed) and why there is no transaction ID?
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Tue Nov 19, 2019 1:32 am
Reply with quote

Thanks for the update. No worries about the delays. I'm sure there will be more with the holidays coming next week too. I'm just glad you're helping as best you can!

For the (removed) items, I just pulled them out since they have identifying info in the path names.

Here's the DFHLS2WS parms again, but with some made up path names to show relative locations:
Code:
PGMNAME=PCHL0900                                               
LANG=COBOL                                                     
PGMINT=CHANNEL                                                 
PDSLIB=//PDS.PROJECT.COPYLIB                           
REQMEM=PHCWWSI1                                               
RESPMEM=PHCWWSO1                                               
LOGFILE=/cics/dev/logs/PostREQ.ls2ws.log     
MAPPING-LEVEL=4.0                                             
WSBIND=/cics/dev/bind/provider/PostREQ.wsbind
WSDL=/cics/dev/wsdl/PostREQ.wsdl             
URI=http://1.2.3.4:5/PostREQ


Where would the transID be defined to the web service? We have the normal CICS transID (PHRI) defined for the program (PCHL0900).
Back to top
View user's profile Send private message
John Poulakos

Active User


Joined: 13 Jun 2012
Posts: 178
Location: United States

PostPosted: Tue Nov 19, 2019 1:33 am
Reply with quote

I wish I was there; we could probably get all of this sorted out in a day or two.
It looks like a lot of configuration issues. Hard to see the full picture. But, we will keep at it!
Back to top
View user's profile Send private message
SickPup404

New User


Joined: 04 Nov 2019
Posts: 22
Location: USA

PostPosted: Tue Nov 19, 2019 1:34 am
Reply with quote

You're exactly right!

Awesome! Thanks again for everything.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CICS Goto page 1, 2  Next

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts How to access web services/website? Mainframe Interview Questions 4
No new posts Calling an Open C library function in... CICS 1
No new posts How to 'Ping' a CICS region in JCL CICS 2
No new posts Parallelization in CICS to reduce res... CICS 4
Search our Forums:

Back to Top