Skip to content

Commit 8d02fed

Browse files
authored
Merge pull request #4733 from zowe/janan07/known-issues-w-apiml-2
Create known issues with API ML
2 parents f6b6fc5 + f0e5c1a commit 8d02fed

File tree

3 files changed

+208
-213
lines changed

3 files changed

+208
-213
lines changed
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
# Known Issues with API ML
2+
3+
## Error messages from TCP/IP
4+
5+
On starting Zowe, you may see the following messages in `DDNAME SYSPRINT`:
6+
```
7+
2025-09-02 11:05:10 user ERROR (gateway-service,bin/validate.sh:14) - Netstat test fail with exit code 16 (EZZ2376I Could not determine TCPIPjobname, using default of 'INET'
8+
2025-09-02 11:05:10 user ERROR (gateway-service,bin/validate.sh:14) - EZZ2377I Could not establish affinity with INET (1011/11B3005A) - can not provide the requested option information)
9+
```
10+
11+
Alternatively, you may see the following message:
12+
13+
```
14+
2025-09-02 11:05:10 user ERROR (gateway-service,bin/validate.sh:14) Netstat test fail with exit code 255 (EZZ2385I Access to Netstat -c denied - SAF RC is 00000008)
15+
```
16+
17+
In both cases, more details should be available on the SYSLOG.
18+
19+
In the first case, it is likely that the SYSTCPD dataset from the TCP/IP job may not be accessible to the user running Zowe. A message such as the following may be seen on the SYSLOG at the same time as the error is generated in the Zowe output:
20+
21+
```
22+
TSS7220E 101 J=stc A=user VOL=volume ACC=READ DSN=systcpd.dataset.name TSS7221E Dataset Not Accessible - systcpd.dataset.name
23+
IEC150I 913-38,IFG0194E,stc,*OMVSEX,SYS00003,24A4,volume, 692 systcpd.dataset.name(member) *EZZ9297E UNABLE TO ACCESS FILE systcpd.dataset.name(member) - RC 00080008
24+
```
25+
26+
**Action:**
27+
The security administrator should grant READ access to the SYSTCPD dataset mentioned on the SYSLOG to the user running Zowe.
28+
29+
30+
31+
## API ML stops accepting connections after z/OS TCP/IP stack is recycled
32+
33+
**Symptom:**
34+
35+
When z/OS TCP/IP stack is restarted, it is possible that the internal services of API Mediation Layer
36+
(Gateway, Catalog, and Discovery service) stop accepting all incoming connections, go into a continuous loop,
37+
and write numerous error messages in the log.
38+
39+
**Sample message:**
40+
41+
The following message is a typical error message displayed in STDOUT:
42+
43+
```
44+
2018-Sep-12 12:17:22.850. org.apache.tomcat.util.net.NioEndpoint -- Socket accept failed java.io.IOException: EDC5122I Input/output error.
45+
46+
.at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) ~.na:1.8.0.
47+
.at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:478) ~.na:1.8.0.
48+
.at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:287) ~.na:1.8.0.
49+
.at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:455) ~.tomcat-coyote-8.5.29.jar!/:8.5.29.
50+
.at java.lang.Thread.run(Thread.java:811) .na:2.9 (12-15-2017).
51+
```
52+
**Solution:**
53+
54+
Restart API Mediation Layer.
55+
56+
**Tip:** To prevent this issue from occurring, it is strongly recommended not to restart the TCP/IP stack while API ML is running.
57+
58+
## API ML throws I/O error on GET request and cannot connect to other services
59+
60+
**Symptom:**
61+
62+
The API ML services are running but they are in the DOWN state and not working properly. The following exceptions can be found in the log: `java.net.UnknownHostException` and `java.net.NoRouteToHostException`.
63+
64+
**Sample message:**
65+
66+
See the following message for full exceptions.
67+
68+
```
69+
org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://system.lvn.broadcom.net:7553/eureka/apps/apicatalog": system.lvn.broadcom.net; nested exception is java.net.UnknownHostException: USILCA32.lvn.broadcom.net
70+
71+
.at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:732) ~Ýspring-web-5.0.8.RELEASE.jar!/:5.0.8.RELEASE¨
72+
73+
.at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:680) ~Ýspring-web-5.0.8.RELEASE.jar!/:5.0.8.RELEASE¨
74+
75+
.at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:600) ~Ýspring-web-5.0.8.RELEASE.jar!/:5.0.8.RELEASE¨
76+
77+
.at com.ca.mfaas.apicatalog.services.initialisation.InstanceRetrievalService.queryDiscoveryForInstances(InstanceRetrievalService.java:276) Ýclasses!/:na¨
78+
79+
.at com.ca.mfaas.apicatalog.services.initialisation.InstanceRetrievalService.getInstanceInfo(InstanceRetrievalService.java:158) Ýclasses!/:na¨
80+
81+
.at com.ca.mfaas.apicatalog.services.initialisation.InstanceRetrievalService.retrieveAndRegisterAllInstancesWithCatalog(InstanceRetrievalService.java:90) Ýclas
82+
83+
….
84+
85+
main¨ o.a.http.impl.client.DefaultHttpClient : I/O exception (java.net.NoRouteToHostException) caught when connecting to {s}->https://localhost:7553: EDC8130I Host cannot be reached. (Host unreachable)
86+
87+
main¨ o.a.http.impl.client.DefaultHttpClient : Retrying connect to {s}->https://localhost:7553
88+
```
89+
90+
**Solution:**
91+
92+
The Zowe started task needs to run under a user with sufficient privileges. As a workaround, you can try to run the started task under the same user ID as z/OSMF (typically IZUSVR).
93+
94+
The hostname that is displayed in the details of the exception is a valid hostname. You can validate that the hostname is valid by using `ping` command on the same mainframe system. For example, `ping system.lvn.broadcom.net`. If it is valid, then the problem can be caused by insufficient privileges of your started task that is not allowed network access.
95+
96+
You can fix it by setting up the security environment as described in the [Zowe documentation](../user-guide/configure-zos-system.md#configure-security-environment-switching).
97+
98+
## SEC0002 error when logging in to API Catalog
99+
100+
SEC0002 error typically appears when users fail to log in to API Catalog. The following image shows the API Catalog login page with the SEC0002 error.
101+
102+
<img src={require("../images/common/Error.png").default} alt="SEC0002 Error" title="SEC0002 Error" width="450" height="350"/>
103+
104+
The error is caused by failed z/OSMF authentication. To determine the reason authentication failed, open the ZWESLSTC joblog and look for a message that contains `ZosmfAuthenticationProvider`. The following is an example of the message that contains `ZosmfAuthenticationProvider`:
105+
106+
```
107+
2019-08-05 11:25:03.431 ERROR 5 --- .0.0-7552-exec-3. c.c.m.s.l.ZosmfAuthenticationProvider : Can not access z/OSMF service. Uri 'https://ABC12.slv.broadcom.net:1443' returned: I/O error on GET request for "https://ABC12.slv.broadcom.net:1443/zosmf/info": ...
108+
```
109+
110+
Check the rest of the message, and identify the cause of the problem. The following list provides the possible reasons and solutions for the z/OSMF authentication issue:
111+
112+
113+
### Connection refused
114+
115+
In the following message, failure to connect to API Catalog occurs when connection is refused:
116+
117+
```
118+
Connect to ABC12.slv.broadcom.net:1443 .ABC12.slv.broadcom.net/127.0.0.1. failed: EDC8128I Connection refused.; nested exception is org.apache.http.conn.HttpHostConnectException:
119+
```
120+
The reason for the refused connection message is either invalid z/OSMF configuration or z/OSMF being unavailable. The preceding message indicates that z/OSMF is not on the 127.0.0.1:1443 interface.
121+
122+
**Solution:**
123+
124+
### Configure z/OSMF
125+
126+
Make sure that z/OSMF is running and is on 127.0.0.1:1443 interface, and try to log in to API Catalog again. If you get the same error message, change z/OSMF configuration.
127+
128+
**Follow these steps:**
129+
130+
1. Locate the z/OSMF PARMLIB member IZUPRMxx.
131+
132+
For example, locate IZUPRM00 member in SYS1.PARMLIB.
133+
134+
2. Change the current `HOSTNAME` configuration to `HOSTNAME('*')`.
135+
3. Change the current `HTTP_SSL_PORT` configuration to `HTTP_SSL_PORT('1443')`.
136+
137+
**Important!** If you change the port in the z/OSMF configuration file, all your applications lose connection to z/OSMF.
138+
139+
For more information, see [Syntax rules for IZUPRMxx](https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.izua300/izuconfig_IZUPRMxx.htm).
140+
141+
If changing the z/OSMF configuration does not fix the issue, reconfigure Zowe.
142+
143+
**Follow these steps:**
144+
145+
1. Open `.zowe_profile` in the home directory of the user who installed Zowe.
146+
2. Modify the value of the `ZOWE_ZOSMF_PORT` variable.
147+
3. Reinstall Zowe.
148+
149+
150+
### Missing z/OSMF host name in subject alternative names
151+
152+
In following message, failure to connect to API Catalog is caused by a missing z/OSMF host name in the subject alternative names:
153+
154+
```
155+
Certificate for <ABC12.slv.broadcom.net> doesn't match any of the subject alternative names: ..; nested exception is javax.net.ssl.SSLPeerUnverifiedException: Certificate for <ABC12.slv.broadcom.net> doesn't match any of the subject alternative names: ..
156+
```
157+
158+
**Solutions:**
159+
160+
Fix the missing z/OSMF host name in subject alternative names using the following methods:
161+
162+
**Note:** Apply the insecure fix only if you use API Catalog for testing purposes.
163+
164+
- [Secure fix](#secure-fix)
165+
- [Insecure fix](#insecure-fix)
166+
167+
### Secure fix
168+
169+
**Follow these steps:**
170+
171+
1. Obtain a valid certificate for z/OSMF and place it in the z/OSMF keyring. For more information, see [Configure the z/OSMF Keyring and Certificate](https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.izua300/izuconfig_KeyringAndCertificate.htm).
172+
2. Re-create the Zowe keystore by deleting it and re-creating it. For more information, see [Zowe certificate configuration overview](../user-guide/configure-certificates.md) and the corresponding sub-articles in this section. The Zowe keystore directory is the value of the `KEYSTORE_DIRECTORY` variable in the `zowe.yaml` file that is used to launch Zowe.
173+
174+
### Insecure fix
175+
176+
**Follow these steps:**
177+
178+
1. Re-create the Zowe keystore by deleting it and re-creating it.
179+
2. In the `zowe.yaml` file that used to launch Zowe, ensure the property `zowe.verifyCertificates` is set to `DISABLED` or `NONSTRICT`. The default value is `STRICT` which ensures that Zowe validates the certificate authority's signing chain is trusted, and that the IP address for Zowe's servers match the certificate's subject alternative name.
180+
181+
**Important!** Disabling `zowe.verifyCertificates` may expose your server to security risks. Ensure that you contact your system administrator before disabling these certificates and use these options only for troubleshooting purposes.
182+
183+
### Invalid z/OSMF host name in subject alternative names
184+
185+
In the following message, failure to connect to API Catalog is caused by an invalid z/OSMF host name in the subject alternative names:
186+
187+
```
188+
Certificate for <ABC12.slv.broadcom.net> doesn't match any of the subject alternative names: [abc12.ca.com, abc12, localhost, abc12-slck, abc12-slck.ca.com, abc12-slck1, abc12-slck1.ca.com, abc12-slck2, abc12-slck2.ca.com, usilabc12, usilabc12.ca.com];
189+
nested exception is javax.net.ssl.SSLPeerUnverifiedException: Certificate for <ABC12.slv.broadcom.net> doesn't match any of the subject alternative names: [abc12.ca.com, abc12, localhost, abc12-slck, abc12-slck.ca.com, abc12-slck1, abc12-slck1.ca.com, abc12-slck2, abc12-slck2.ca.com, usilabc12, usilabc12.ca.com]
190+
```
191+
192+
**Solutions:**
193+
194+
Fix the invalid z/OSMF host name in the subject alternative names using the following methods:
195+
196+
- [Request a new certificate](#request-a-new-certificate)
197+
- [Re-create the Zowe keystore](#re-create-the-zowe-keystore)
198+
199+
### Request a new certificate
200+
201+
Request a new certificate that contains a valid z/OSMF host name in the subject alternative names.
202+
203+
### Re-create the Zowe keystore
204+
205+
Re-create the Zowe keystore by deleting it and re-creating it. For more information, see [Importing a file-based PKCS12 certificate](../user-guide/import-certificates.md#importing-an-existing-pkcs12-certificate). The Zowe keystore directory is the value of the `KEYSTORE_DIRECTORY` variable in the `zowe.yaml` file that is used to launch Zowe.
206+
207+

0 commit comments

Comments
 (0)