Ive been working on a couple of MQ problems where the throughput to a remote queue manager is slower than expected.
Do a NETSTAT ALL report on the individual connection, and note the congestion window size as well as the calculated round-trip time.
Only the outbound connection would be affected. If the remote system's IP address is 184.108.40.206 and the MQ listener is on port 5678, the command would be:
TSO: NETSTAT ALL (IPPORT 220.127.116.11+5678
OpConsole: DISPLAY TCPIP,,NETSTAT,ALL,IPPORT=18.104.22.168+5678
or NETSTAT ALL (IPaddr 22.214.171.124
- Look at the congestion window size relative to the send window size (is it close, or significantly less?) is should be close
- Look at the smoothed round trip time (is it more than a few ms)?
- Are there any retransmissions on the connection? If there are retransmissions, it is an indication of problems outside of z/OS and is an issue that would need to be corrected. This number is cumulative, so they may have occurred previously. Repeat the command and see if the number of retransmissions has increased.
Output from my system.
MVS TCP/IP NETSTAT CS V1R13 TCPIP Name: TCPIP 08:56:58
Client Name: MQPACHIN Client Id: 00015934
Local Socket: ::ffff:126.96.36.199..3410
Foreign Socket: ::ffff:188.8.131.52..54373
Last Touched: 08:56:58 State: Establsh
RcvNxt: 2867148691 SndNxt: 1426078932
ClientRcvNxt: 2867148691 ClientSndNxt: 1426078932
InitRcvSeqNum: 2856029580 InitSndSeqNum: 1414960527
CongestionWindow: 0000063536 SlowStartThreshold: 0000065535
IncomingWindowNum: 2867278206 OutgoingWindowNum: 1426141935
SndWl1: 2867148578 SndWl2: 1426078399
SndWnd: 0000063536 MaxSndWnd: 0000063536
SndUna: 1426078399 rtt_seq: 1426078399
MaximumSegmentSize: 0000001444 DSField: 00
Smooth trip time: 0.000 SmoothTripVariance: 1.000
ReXmt: 0000000000 ReXmtCount: 0000000000
DupACKs: 0000000000 RcvWnd: 0000129515
SockOpt: 8800 TcpTimer: C0
TcpSig: 05 TcpSel: 40
TcpDet: E0 TcpPol: 00
ReceiveBufferSize: 0000065536 SendBufferSize: 0000065536
Ancillary Input Queue: N/A
Meaning of the fields
- The value that is used when congestion is detected in the network to limit the amount of data that is sent by the local stack. This value represents the maximum amount of data that is sent without waiting for an acknowledgment from the remote socket. This should be a big number eg 64KB(063536)
- The amount of available buffer space that is advertised by the remote side into which data can be sent. This should be a big number eg 64 KB(063536)
- The largest send window the remote socket has sent to the local socket. his should be a big number eg 64 KB(063536)
- The total number of times a packet has been retransmitted for this connection. This count is historical for the life of the connection.
- Round-trip information
The round-trip time is the amount of time that elapses between the time a packet is sent and the time an acknowledgment for that packet is received.
- Smooth trip time
- The average amount of time it has taken for a packet to be sent and an acknowledgment to be received for this connection, measured in milliseconds.
- The average variation in round trip time, measured in milliseconds.
Doing NETSTAT for one connection
We have a need to issue netstat for individual TCPIP sessions.
You can use NETSTAT ALL (client mq7achin to display everything for the chinit - thousands of sessions!
NETSTAT ALL (IPADDR 184.108.40.206 does all connections down to my linux machine on IP Address 220.127.116.11
if I use either of these give
MVS TCP/IP NETSTAT CS V1R13 TCPIP Name: TCPIP 16:50:55
Client Name: MQ7ACHIN Client Id: 0005013A
Local Socket: ::ffff:18.104.22.168..5411
Foreign Socket: ::ffff:22.214.171.124..36008
to get the NETSTAT for just one session you need
NETSTAT ALL (IPport 126.96.36.199+36008
You cannot say (CLIENT MQ7ACHIN IPADDR 188.8.131.52 as you can only specify one filter, and CLIENT and IPADDR is two filters
When the channel starts it displays
+CSQX500I MQ7A CSQXRESP Channel SYSTEM.ADMIN.SVRCONN started 942
but not the port.
NETSTAT conn(CLIENT MQ7ACHIN
User Id Conn State
------- ---- -----
MQ7ACHIN 0005010E Listen
Local Socket: ::..5411
MQ7ACHIN 0005190C Establsh
Local Socket: ::ffff:184.108.40.206..5411
Foreign Socket: ::ffff:220.127.116.11..52170
with 3 lines per connection. (Do it in a batch TSO job to be able to search for it)
Find the IP address of the remote end, then use
NETSTAT ALL (IPPORT 18.104.22.168+52170
to get all the netstat data for the channel
The following JCL could be used to check the network configuration by issuing PING command:
//RUN1GB EXEC PGM=IKJEFT01,REGION=0M
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PING WINMVSKC (COUNT 100000 VERBOSE LENGTH 32768
//* PINGS THE NAMED MACHINE 100,000 TIMES
//* USING 32K