Interpreting the Trace Resolver output
![Start of change](./delta.gif)
![End of change](./deltaend.gif)
- Setup files that are used for
Trace Resolver
:
-
- Resolver Procedure:
-
//RESOLVER PROC PARMS='CTRACE(CTIRESFL)' //* //EZBREINI EXEC PGM=EZBREINI,REGION=0M,TIME=1440,PARM=&PARMS //* //SETUP DD DSN=TPOUSER.RESOLVER.SETUP.DATA,DISP=SHR,FREE=CLOSE
- Setup File TPOUSER.RESOLVER.SETUP.DATA contains:
-
; DEFAULTTCPIPDATA('TPOUSER.RESOLVER.DEFAULT.DATA') ; ; GLOBALTCPIPDATA(/etc/tcpipglobal.data) # GLOBALTCPIPDATA('SYS1.TCPPARMS(RESGLOBL)')
- Global TCPIP.DATA file SYS1.TCPPARMS(RESGLOBL) contains:
-
# Note that DOMAIN is ignored because SEARCH is mutually exclusive # and SEARCH appears after DOMAIN. Domain abcxyz ; Note that SEARCH can be specified on multiple lines. SEARCH tcp.raleigh.ibm.com raleigh.ibm.com SEARch ibm.com com uk SEARch gov 1a Search mil SORTLIST 0.0.19.0/0.0.255.0 0.0.18.99/0.0.255.255 0.42.17.0/0.255.255.0 SORTLIST 129.42.16.0/255.255.255.0 1b Sortlist 9.0.0.0 NSinterAddr 111.111.111.111 NameServer 9.67.128.255 ; not a server NSinterAddr 2001::9:43:80:52 NSportAddr 53 2 ;ResolveVia UDP ResolverTimeout 3 ResolverUdpRetries 1 ; 1 means 1 total try, 0 would be no tries at all 1c loaddbcstables unknown loaddbcstables big5 3 MVS000: Hostname MVS026
- Default TCPIP.DATA file TPOUSER.RESOLVER.DEFAULT.DATA contains:
-
; TRACE RESOLVER DatasetPrefix USER1 TcpipJobname TCPCS3 Hostname VIC097 ; trace c sockets ; alwayswto no ; messagecase whoknows ; loaddbcstables tbd
Note: For this example, this file exists but is not used to obtain this exampleTrace Resolver
output.
- Local TCPIP.DATA file USER55.TCPIP.DATA contains:
-
; trace resolver DATASETPREFIX USER55 # If an option is coded multiple times but can only have 1 value, # the last occurrence is used. TCPIPjobname TCPCS2 TCPIPjobname TCPCS 3 HostName MVS000 DomainOrigin edu ; NameServer 127.0.0.1 ; loopback # 2 ResolveVia TCP ResolverTimeout 22 1d alwayswto xyz messagecase mixed loaddbcstables schinese
- TSO commands issued to obtain the trace (gethostbyname):
-
alloc dd(systcpt) dsn(traceres) reuse 4 invoke a REXX application which issues gethostbyname for TESTBEN46.SVT390.COM
- Trace Resolver output in USER55.TRACERES contains (gethostbyname):
-
5 Resolver Trace Initialization Complete -> 2009/06/18 15:51:51.733708 1a res_init Skipped option(s) on line 8: SYS1.TCPPARMS(RESGLOBL) 1b res_init Skipped option(s) on line 11: SYS1.TCPPARMS(RESGLOBL) 1c res_init Parse error on line 19: SYS1.TCPPARMS(RESGLOBL) 1d res_init Parse error on line 14: USER55.TCPIP.DATA 6 res_init Resolver values: 35 Setup file warning messages = No
36 CTRACE TRACERES option = No
Global Tcp/Ip Dataset = SYS1.TCPPARMS(RESGLOBL) Default Tcp/Ip Dataset = TPOUSER.RESOLVER.DEFAULT.DATA Local Tcp/Ip Dataset = USER55.TCPIP.DATA Translation Table = Default UserId/JobName = USER55 19 Caller API = TCP/IP Rexx Sockets 20 Caller Mode = EBCDIC 32 System Name = MVS000 (from VMCF) 34 UnresponsiveThreshold = 25 (L) DataSetPrefix = USER55 3 (G) HostName = MVS026 (L) TcpIpJobName = TCPCS 3 (G) Search = tcp.raleigh.ibm.com raleigh.ibm.com ibm.com com uk gov (G) SortList = 0.0.19.0/0.0.255.0 0.0.18.99/0.0.255.255 0.42.17.0/0.255.255.0 129.42.16.0/255.255.255.0 3 (G) NameServer = 111.111.111.111 EDNS0 Support = Unknown 9.67.128.255 EDNS0 Support = Unknown 2001::9:43:80:52 EDNS0 Support = Unknown (G) NsPortAddr = 53 (G) ResolverTimeout = 3 2 (*) ResolveVia = UDP (G) ResolverUdpRetries = 1 (*) Options NDots = 1 (*) SockNoTestStor (*) AlwaysWto = NO (L) MessageCase = MIXED 11 (*) LookUp = DNS LOCAL 25 (*) Cache
37 (*) CacheReorder
(G) LoadDbcsTable = BIG5 res_init Succeeded res_init Started: 2009/06/18 15:51:51.800668 res_init Ended: 2009/06/18 15:51:51.800676 *************************************************************************** 4 GetHostByName Started: 2009/06/18 15:51:51.815838 GetHostByName Resolving Name: TESTBEN46.SVT390.COM GetHostByName Stack Name: TCPCS res_search(TESTBEN46.SVT390.COM, C_IN, T_A) res_search Host Alias Search found no alias res_querydomain(TESTBEN46.SVT390.COM., , C_IN, T_A) res_querydomain resolving name: TESTBEN46.SVT390.COM. res_query(TESTBEN46.SVT390.COM., C_IN, T_A) 26 Querying resolver cache for TESTBEN46.SVT390.COM. EZBRECFR: RetVal = 0, RC = 0, Reason = 0x00000000 26a No cache information was available res_mkquery(QUERY, TESTBEN46.SVT390.COM., C_IN, T_A) 7 res_mkquery created message: * * * * * Beginning of Message * * * * * Query Id: 18693 Flags: 00000001 00000000 Flags set: recurDes OpCode: QUERY Response Code: NOERROR Number of Question RRs: 1 Question 1: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN Number of Answer RRs: 0 Number of Authority RRs: 0 7a Number of Additional RRs: 1 Additional 1: Type (0X0029) T_OPT UDP Payload (0X0C00) 3072 Extended RCODE 0 Version 0 Flags 0000 * * * * * End of Message * * * * * 21 res_send Name Server Capabilities 21b Monitoring intervals used = 5 Name server 111.111.111.111 EDNS0 Support = unknown Queries sent = 0 Failures = 0 Percentage = 0% 21a Use this name server for queries Name server 9.67.128.255 EDNS0 Support = unknown Queries sent = 0 Failures = 0 Percentage = 0% Use this name server for queries Name server 2001::9:43:80:52 EDNS0 Support = unknown Queries sent = 0 Failures = 0 Percentage = 0% Use this name server for queries 8 res_send sending query to Name Server 111.111.111.111 27 DNS Communication Started: 2009/06/18 15:51:51.816987 31 BPX1SOC: RetVal = 0, RC = 0, Reason = 0x00000000, Type=IPv6 22 No OPT RR record sent on request to 111.111.111.111 BPX1STO: RetVal = 38, RC = 0, Reason = 0x00000000 BPX1AIO Sched: RetVal = 1, RC = 0, Reason = 0x00000000 BPX1AIO RECVMSG : From 111.111.111.111 RetVal=502, RC=0, Reason=0x00000000 UDP Data Length: 502 9 res_send received data via UDP. Message received: * * * * * Beginning of Message * * * * * Query Id: 18693 Flags: 10000111 10000000 Flags set: resp auth trunc recurDes recurAvl OpCode: QUERY Response Code: NOERROR Number of Question RRs: 1 Question 1: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN Trace terminated due to truncation condition * * * * * End of Message * * * * * 27a DNS Communication Ended: 2009/06/18 15:51:51.836189 time used 00:00:00.019202 8 res_send Sending query to Name Server 111.111.111.111 27 DNS Communication Started: 2009/06/18 15:51:51.836812 22a EDNS0 Probe request sent to 111.111.111.111 id=18694 BPX1STO: RetVal = 49, RC = 0, Reason = 0x00000000 BPX1AIO Sched: RetVal = 1, RC = 0, Reason = 0x00000000 BPX1AIO RECVMSG : From 111.111.111.111 RetVal=553, RC=0, Reason=0x00000000 UDP Data Length: 553 9a res_send received data via UDP. Message received: * * * * * Beginning of Message * * * * * Query Id: 18694 Flags: 10000101 10000000 Flags set: resp auth recurDes recurAvl OpCode: QUERY Response Code: NOERROR Number of Question RRs: 1 Question 1: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN Number of Answer RRs: 29 Answer 1: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN 30 TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.5 Answer 2: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.6 Answer 3: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.7 Answer 4: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.8 Answer 5: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.9 Answer 6: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.10 Answer 7: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.11 Answer 8: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.12 Answer 9: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.13 Answer 10: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.14 Answer 11: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.15 Answer 12: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.16 Answer 13: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.17 Answer 14: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.18 Answer 15: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.19 Answer 16: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.20 Answer 17: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.21 Answer 18: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.22 Answer 19: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.23 Answer 20: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.24 Answer 21: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.25 Answer 22: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.26 Answer 23: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.27 Answer 24: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.28 Answer 25: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.29 Answer 26: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.1 Answer 27: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.2 Answer 28: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.3 Answer 29: TESTBEN46.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.14.103.4 Number of Authority RRs: 1 Authority 1: SVT390.COM Type (0X0002) T_NS Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) sdistcici.SVT390.COM 24 Number of Additional RRs: 2 Additional 1: sdistcici.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.11.235.51 Additional 2: Type (0X0029) T_OPT UDP Payload (0X1000) 4096 Extended RCODE 0 Version 0 Flags 0000 * * * * * End of Message * * * * * 23 Oversized reply to probe request from 111.111.111.111 BPX1CLO: RetVal = 0, RC = 0, Reason = 0x00000000 27a DNS Communication Ended: 2009/06/18 15:51:51.841691 time used 00:00:00.004879 33 Name Server Capability Updates Name server 111.111.111.111 EDNS0 Support = up-level Queries sent = 1 Failures = 0 res_send Succeeded 28 Attempting to cache results for TESTBEN46.SVT390.COM. EZBRECAR: RetVal = 0, RC = 0, Reason = 0x00000000 Cache information was saved res_query Succeeded res_querydomain Succeeded res_search Succeeded 10 GetHostByName Succeeded: IP Address(es) found: IP Address(1) is 197.14.103.5 IP Address(2) is 197.14.103.6 IP Address(3) is 197.14.103.7 IP Address(4) is 197.14.103.8 IP Address(5) is 197.14.103.9 IP Address(6) is 197.14.103.10 IP Address(7) is 197.14.103.11 IP Address(8) is 197.14.103.12 IP Address(9) is 197.14.103.13 IP Address(10) is 197.14.103.14 IP Address(11) is 197.14.103.15 IP Address(12) is 197.14.103.16 IP Address(13) is 197.14.103.17 IP Address(14) is 197.14.103.18 IP Address(15) is 197.14.103.19 IP Address(16) is 197.14.103.20 IP Address(17) is 197.14.103.21 IP Address(18) is 197.14.103.22 IP Address(19) is 197.14.103.23 IP Address(20) is 197.14.103.24 IP Address(21) is 197.14.103.25 IP Address(22) is 197.14.103.26 IP Address(23) is 197.14.103.27 IP Address(24) is 197.14.103.28 IP Address(25) is 197.14.103.29 IP Address(26) is 197.14.103.1 IP Address(27) is 197.14.103.2 IP Address(28) is 197.14.103.3 IP Address(29) is 197.14.103.4 GetHostByName Ended: 2009/06/18 15:51:51.846582 ***************************************************************************
- TSO commands issued to obtain the trace (getaddrinfo):
-
alloc dd(systcpt) dsn(traceres) reuse 12 CS V1R12: Pinging host TESTBEN46.SVT390.COM at IPv6 address 2000:197:14:103::15 Ping #1 timed out
- Trace Resolver output in USER55.TRACERES contains (getaddrinfo):
-
5 Resolver Trace Initialization Complete -> 2009/06/18 15:56:52.840756 1a res_init Skipped option(s) on line 8: SYS1.TCPPARMS(RESGLOBL) 1b res_init Skipped option(s) on line 11: SYS1.TCPPARMS(RESGLOBL) 1c res_init Parse error on line 19: SYS1.TCPPARMS(RESGLOBL) 1d res_init Parse error on line 14: USER55.TCPIP.DATA 6 res_init Resolver values: 35 Setup file warning messages = No
36 CTRACE TRACERES option = No
Global Tcp/Ip Dataset = SYS1.TCPPARMS(RESGLOBL) Default Tcp/Ip Dataset = TPOUSER.RESOLVER.DEFAULT.DATA Local Tcp/Ip Dataset = USER55.TCPIP.DATA Translation Table = Default UserId/JobName = USER55 19 Caller API = TCP/IP Sockets Extended 20 Caller Mode = EBCDIC 32 System Name = MVS000 (from VMCF) 34 UnresponsiveThreshold = 25 (L) DataSetPrefix = USER55 3 (G) HostName = MVS026 (L) TcpIpJobName = TCPCS 3 (G) Search = tcp.raleigh.ibm.com raleigh.ibm.com ibm.com com uk gov (G) SortList = 0.0.19.0/0.0.255.0 0.0.18.99/0.0.255.255 0.42.17.0/0.255.255.0 129.42.16.0/255.255.255.0 3 (G) NameServer = 111.111.111.111 EDNS0 Support = Up-level 9.67.128.255 EDNS0 Support = Unknown 2001::9:43:80:52 EDNS0 Support = Unknown (G) NsPortAddr = 53 (G) ResolverTimeout = 3 2 (*) ResolveVia = UDP (G) ResolverUdpRetries = 1 (*) Options NDots = 1 (*) SockNoTestStor (*) AlwaysWto = NO (L) MessageCase = MIXED 11 (*) LookUp = DNS LOCAL 25 (*) Cache
37 (*) CacheReorder
(G) LoadDbcsTable = BIG5 res_init Succeeded res_init Started: 2009/06/18 15:56:52.894280 res_init Ended: 2009/06/18 15:56:52.894288 *************************************************************************** res_init Started: 2009/06/18 15:56:52.900190 res_init Ended: 2009/06/18 15:56:52.900197 *************************************************************************** 12 GetAddrInfo Started: 2009/06/18 15:56:52.900968 GetAddrinfo Invoked with following inputs: Host Name: TESTBEN46.SVT390.COM No Service operand specified Hints parameter supplied with settings: ai_family = 0, ai_flags = 0x00000062 ai_protocol = 0, ai_socktype = 0 13 GetAddrInfo Opening Socket for IOCTLs 31 BPX1SOC: RetVal = 0, RC = 0, Reason = 0x00000000, Type=IPv6 BPX1IOC: RetVal = 0, RC = 0, Reason = 0x00000000 GetAddrInfo Opened Socket 0x00000000 14 GetAddrInfo Both IPv4 and IPv6 Interfaces Exist GetAddrInfo Host Alias Search found no alias res_querydomain(TESTBEN46.SVT390.COM., , C_IN, T_AAAA) res_querydomain resolving name: TESTBEN46.SVT390.COM. 15 res_query(TESTBEN46.SVT390.COM., C_IN, T_AAAA) 26 Querying resolver cache for TESTBEN46.SVT390.COM. EZBRECFR: RetVal = 0, RC = 0, Reason = 0x00000000 26b No cache information was available res_mkquery(QUERY, TESTBEN46.SVT390.COM., C_IN, T_AAAA) 7 res_mkquery created message: * * * * * Beginning of Message * * * * * Query Id: 52138 Flags: 00000001 00000000 Flags set: recurDes OpCode: QUERY Response Code: NOERROR Number of Question RRs: 1 Question 1: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN Number of Answer RRs: 0 Number of Authority RRs: 0 7a Number of Additional RRs: 1 Additional 1: Type (0X0029) T_OPT UDP Payload (0X0C00) 3072 Extended RCODE 0 Version 0 Flags 0000 * * * * * End of Message * * * * * 21 res_send Name Server Capabilities 21b Monitoring intervals used = 5 Name server 111.111.111.111 EDNS0 Support = up-level Queries sent = 1 Failures = 0 Percentage = 0% 21a Use this name server for queries Name server 9.67.128.255 EDNS0 Support = unknown Queries sent = 0 Failures = 0 Percentage = 0% Use this name server for queries Name server 2001::9:43:80:52 EDNS0 Support = unknown Queries sent = 0 Failures = 0 Percentage = 0% Use this name server for queries 8 res_send Sending query to Name Server 111.111.111.111 27 DNS Communication Started: 2009/06/18 15:56:52.902525 22b OPT RR record included on request to 111.111.111.111 BPX1STO: RetVal = 49, RC = 0, Reason = 0x00000000 BPX1AIO Sched: RetVal = 1, RC = 0, Reason = 0x00000000 BPX1AIO RECVMSG : From 111.111.111.111 RetVal=649, RC=0, Reason=0x00000000 UDP Data Length: 649 9b res_send received data via UDP. Message received: * * * * * Beginning of Message * * * * * Query Id: 52138 Flags: 10000101 10000000 Flags set: resp auth recurDes recurAvl OpCode: QUERY Response Code: NOERROR Number of Question RRs: 1 Question 1: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN Number of Answer RRs: 20 Answer 1: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN 30 TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::18 Answer 2: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::19 Answer 3: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::20 Answer 4: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::1 Answer 5: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::2 Answer 6: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::3 Answer 7: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::4 Answer 8: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::5 Answer 9: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::6 Answer 10: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::7 Answer 11: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::8 Answer 12: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::9 Answer 13: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::10 Answer 14: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::11 Answer 15: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::12 Answer 16: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::13 Answer 17: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::14 Answer 18: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::15 Answer 19: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::16 Answer 20: TESTBEN46.SVT390.COM Type (0X001C) T_AAAA Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 2000:197:14:103::17 Number of Authority RRs: 1 Authority 1: SVT390.COM Type (0X0002) T_NS Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) sdistcici.SVT390.COM 24 Number of Additional RRs: 2 Additional 1: sdistcici.SVT390.COM Type (0X0001) T_A Class (0X0001) C_IN TTL: 86400 (1 days, 0 hours, 0 minutes, 0 seconds) 197.11.235.51 Additional 2: Type (0X0029) T_OPT UDP Payload (0X1000) 4096 Extended RCODE 0 Version 0 Flags 0000 * * * * * End of Message * * * * * 27a DNS Communication Ended: 2009/06/18 15:56:52.908818 time used 00:00:00.006293 33a Name Server Capability Updates Name server 111.111.111.111 Queries sent = 1 Failures = 0 res_send Succeeded 28 Attempting to cache results for TESTBEN46.SVT390.COM. EZBRECAR: RetVal = 0, RC = 0, Reason = 0x00000000 Cache information was saved res_query Succeeded res_querydomain Succeeded res_querydomain(TESTBEN46.SVT390.COM., , C_IN, T_A) res_querydomain resolving name: TESTBEN46.SVT390.COM. 16 res_query(TESTBEN46.SVT390.COM., C_IN, T_A) 26 Querying resolver cache for TESTBEN46.SVT390.COM. EZBRECFR: RetVal = 0, RC = 0, Reason = 0x00000000 26c Cache data from 111.111.111.111 was retrieved res_query Succeeded res_querydomain Succeeded 17 GetAddrInfo Returning Zero as Port Number GetAddrInfo Built 35 Addrinfos 13a GetAddrInfo Closing IOCTL Socket 0x00000000 BPX1CLO: RetVal = 0, RC = 0, Reason = 0x00000000 18 GetAddrInfo Succeeded: IP Address(es) found: IP Address(1) is 2000:197:14:103::15 IP Address(2) is 2000:197:14:103::14 IP Address(3) is 2000:197:14:103::17 IP Address(4) is 2000:197:14:103::16 IP Address(5) is 2000:197:14:103::11 IP Address(6) is 2000:197:14:103::10 IP Address(7) is 2000:197:14:103::13 IP Address(8) is 2000:197:14:103::12 IP Address(9) is 2000:197:14:103::19 IP Address(10) is 2000:197:14:103::18 IP Address(11) is 2000:197:14:103::5 IP Address(12) is 2000:197:14:103::4 IP Address(13) is 2000:197:14:103::7 IP Address(14) is 2000:197:14:103::6 IP Address(15) is 2000:197:14:103::1 IP Address(16) is 2000:197:14:103::3 IP Address(17) is 2000:197:14:103::2 IP Address(18) is 2000:197:14:103::9 IP Address(19) is 2000:197:14:103::8 IP Address(20) is 2000:197:14:103::20 IP Address(21) is 197.14.103.5 IP Address(22) is 197.14.103.6 IP Address(23) is 197.14.103.7 IP Address(24) is 197.14.103.8 IP Address(25) is 197.14.103.9 IP Address(26) is 197.14.103.10 IP Address(27) is 197.14.103.11 IP Address(28) is 197.14.103.12 IP Address(29) is 197.14.103.13 IP Address(30) is 197.14.103.14 IP Address(31) is 197.14.103.15 IP Address(32) is 197.14.103.16 IP Address(33) is 197.14.103.17 IP Address(34) is 197.14.103.18 IP Address(35) is 197.14.103.19 29 GetAddrInfo Ended: 2009/06/18 15:56:52.914971 *************************************************************************** FreeAddrInfo Started: 2009/06/18 15:56:52.917611 FreeAddrInfo Called to free addrinfo structures FreeAddrInfo Succeeded, Freed 35 Addrinfos FreeAddrInfo Ended: 2009/06/18 15:56:52.918496 ***************************************************************************
![Start of change](./delta.gif)
![End of change](./deltaend.gif)
- 1
- Errors that are deliberately entered into this example to show
action taken:
- a
- Line 8 in the global file specifies seven SEARCH values; the maximum number that is allowed is 6. The seventh value is ignored.
- b
- Line 11 in the global file specifies five SORTLIST values; the maximum number that is allowed is 4. The fifth value is ignored.
- c
- Line 19 in the global file has a value for LOADDBCSTABLES that is not valid. The value is ignored.
- d
- Line 14 in the local file has a value for ALWAYSWTO that is not valid. The value is ignored and the default is used.
- 2
- The ResolveVia field specifies UDP even though the local file indicated RESOLVEVIA TCP. UDP is used because GLOBALTCPIPDATA is being used. If a global file is used, then all resolver-related TCPIP.DATA statements must be specified in it. If the resolver statements are not specified, then default values are assigned. In this example, resolver statements are not specified as shown by RESOLVEVIA being commented out in the global file.
- 3
- A local file cannot override the global file for any value. The
global file specifies the hostname, therefore the local
file value of MVS000 does not override the global value
of MVS026. Likewise, since there is a GLOBALTCPIPDATA specified all
resolver-related statements in a local file are ignored
(for example, DOMAINORIGIN, NAMESERVER and RESOLVERTIMEOUT).
The list of name servers to be queried also indicates whether the resolver considers the name server to support the Extension Mechanisms for DNS (EDNS0) capability. The resolver might believe that the name server supports EDNS0 (EDNS0 Support = Up-level), that the name server does not support EDNS0 (EDNS0 Support = Down-level), or that the capability of the name server is undetermined (EDNS0 Support = Unknown).
- 4
- A REXX application calls GetHostByName at the indicated local date and time. The flow through the resolver API calls shows the parameters that are being passed.
- 5
- Trace output reports the date and time the TCPIP.DATA statements were processed.
- 6
- The res_init() resolver initialization values
are reported. These values are the values actually being
used by the resolver, with an indication of the origin
of the value. The indicators are:
- *
- Default value
- A
- Modified by application
- D
- Default file (not used if the local file is found)
- E
- Environment variable
- G
- Global file
- L
- Local file
- 7
- res_mkquery creates a DNS message (from Beginning
of Message to End of Message). The message is interpreted,
and flags and codes are spelled out.
- a
- res_mkquery appends an additional RR record (the OPT RR) to the request that is being built. The presence of the OPT RR record on the request indicates that the resolver supports the EDNS0 function and that UDP packets of up to 3072 bytes can be sent to the resolver (instead of the normal 512-byte limitation).
- 8
- res_send sends the query to the name server. The res_send function calls several z/OS® UNIX functions; the indentation of the lines that follow res_send indicate res_send was the caller. The IP address of the DNS is also displayed.
- 9
- res_send receives a message from DNS. This message
is truncated because the amount of data that the DNS
has available to send regarding the resource is greater
than 512 bytes.
- a
- res_send receives a message from DNS. This time, because the DNS query from resolver contained the OPT RR record that indicates up to 3072 bytes of UDP data could be returned, the DNS returns all 553 bytes of data that use UDP protocols. The total number of Answer records in this response is 29.
- b
- res_send receives a message from DNS. This message is also greater than 512 bytes, but since the OPT RR record is included on the query, the full amount of data can be sent on the first UDP response from the name server. The total number of Answer records in this response is 20.
- 10
- The GetHostByName function reports success and lists the IP addresses returned. If addresses matched any of the values in the SORTLIST definitions, the order of the addresses would have been modified to match the SORTLIST specification.
- 11
- LookUp specifies the order in which the DNS and the local host
file are to be used for name resolution. There are four
possible search orders:
- LOOKUP DNS LOCAL (DNS search first)
- LOOKUP LOCAL DNS (local host file search first)
- LOOKUP DNS (only DNS search)
- LOOKUP LOCAL (only local host file search)
- 12
- Ping calls GetAddrinfo at the indicated local date and time. The
flow through the resolver API calls shows the parameters
that are being passed.
- ai_family = 0 means that AF_UNSPEC is specified
- ai_flags = x'00000062' means that AI_CANNONNAMEOK, AI_ALL, and AI_ADDRCONFIG are specified
- ai_protocol = 0 and ai_socktype = 0 means that protocol and socktype are not specified
For more information about input values of getaddrinfo, see z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference.
- 13
- To honor the setting of ai_ADDRCONFIG, the Resolver must query
the stacks to determine whether IPv6 or IPv4 interfaces
exist (the results of the query are shown in message 14 ). A socket, separate from the one used to send
DNS queries, is opened for communicating with the stacks.
- a
- The socket that is used for communicating with the stacks is closed before finishing Getaddrinfo processing.
- 14
- The resolver detected that the system can handle both IPv4 and IPv6 addresses.
- 15
- Because the system can handle both IPv4 and IPv6, and ai_ALL is specified, the resolver sends the IPv6 query (T_AAAA) for IPv6 to DNS first. For an explanation of how resolver decides to send an IPv6 or IPv4 query to DNS, see z/OS Communications Server: IPv6 Network and Application Design Guide.
- 16
- The resolver prepares to send the IPv4 query (T_A). For an explanation of how resolver decides to send an IPv6 or IPv4 query to DNS, see z/OS Communications Server: IPv6 Network and Application Design Guide.
- 17
- Because no Service operand is passed as input to Getaddrinfo, there is no service resolution to perform, so any sockaddr returned has a port number=0.
- 18
- Before the resolver returns resolved addresses to the application, the resolver sorts all addresses so that the most preferable is the first in the address chain. For more information, see z/OS Communications Server: IPv6 Network and Application Design Guide.
- 19
- The caller API value indicates which search order is used by the
resolver for any required local table usage. The following
caller API values indicate that the z/OS UNIX environment search order is used:
- Language Environment® C Sockets
For more information about z/OS XL C/C++ runtime library functions, see z/OS XL C/C++ Runtime Library Reference.
- Unix System Services
For more information about z/OS UNIX System Services (z/OS UNIX) callable services, see z/OS UNIX System Services Programming: Assembler Callable Services Reference.
The following caller API values indicate that the native MVS™ environment search order is used:- TCP/IP Pascal Sockets
For more information about z/OS Communications Server PASCAL API, see z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference.
- TCP/IP C Sockets
For more information about z/OS Communications Server C/C++ API, see z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference.
- TCP/IP Rexx Sockets
For more information about z/OS Communications Server REXX API, see z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference.
- TCP/IP Sockets Extended
For more information about z/OS Communications Server Callable and Macro API, see z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference.
- Language Environment® C Sockets
- 20
- The Caller Mode value indicates the representation of any input characters as being either in EBCDIC or ASCII.
- 21
- Because the resolver awareness of the EDNS0 capability of name
servers is maintained on a system-wide level, it is
possible that the resolver has a different awareness of
the name server capability during res_send processing than it
had during res_init processing. The current awareness
level is displayed before any queries are sent to the
name servers.
In addition to the current EDNS0 capability of the name servers, if the resolver is monitoring name server responsiveness, the system-wide responsiveness statistics for each name server are also displayed. These statistics are based on a sliding 5-minute interval or a 30-second interval, so these numbers represent the volume of requests that are sent to the name server in the past 5 minutes or 30 seconds. Two statistics are maintained and displayed: the total number of requests that are sent to the name server by the resolver and the number of those requests that received no response from the name server. The resolver compares the percentage of failures for each name server against the value of the UNRESPONSIVETHRESHOLD resolver setup statement to determine whether a name server is to be considered unresponsive.
If the resolver is not monitoring name server responsiveness because UNRESPONSIVETHRESHOLD is set to 0, only the current EDNS0 capability information is displayed in the trace.
- a
- If the AUTOQUIESCE operand is coded on the UNRESPONSIVETHRESHOLD statement, the resolver stops sending DNS queries that are generated by an application to unresponsive name servers. This message indicates whether resolver sends DNS queries to a particular name server. In these examples, all name servers are responding with a failure rate less than the UNRESPONSIVETHRESHOLD value, so the resolver sends DNS queries to all name servers, if necessary. If the name server was unresponsive, the resolver would generate a different trace message that indicates that the name server was to be skipped for DNS queries that are generated by an application.
- b
- If the AUTOQUIESCE operand is not coded on the UNRESPONSIVETHRESHOLD statement, the statistics that are displayed represent 5 minutes of data, or the sum of five 1-minute statistical intervals. If the AUTOQUIESCE operand is coded, the statistics represent 30 seconds of data, or one 30-second interval of data. The number of intervals that are used to calculate the statistics is displayed on this trace entry.
- 22
- Because the EDNS0 capability of the target name server is currently
unknown, the resolver does not send the OPT RR record
on the request to the name server. The DNS query that
is built during res_mkquery processing is manipulated to remove the
additional record.
- a
- The receipt of the truncated UDP response causes resolver to reissue the query, to the same DNS, but this time the OPT RR record is not removed from the request data. This query is treated as an EDNS0 capability probe, and the response we receive from the DNS will determine whether future queries to the DNS include the OPT RR record or not. The transaction ID for this EDNS0 probe is different from the first query, and the new value is included in the trace information.
- b
- As displayed on message line 21, the name server is considered to be up-level in terms of EDNS0 support, so the resolver sends the OPT RR record that res_mkquery built on the DNS query.
- 23
- The receipt of a UDP package greater than 512 bytes, in response to an EDNS0 probe, indicates that this name server is up-level. Future communication with this name server will always include the OPT RR record to allow the name server to send UDP responses of greater than 512 bytes without requiring more EDNS0 probe requests.
- 24
- Since the resolver included an OPT RR on the request to indicate that the resolver supports EDNS0, the name server also includes an OPT RR on the response. The DNS indicates it can accept up to 4096 bytes of data on a UDP message, but the resolver does not use this information.
- 25
- The setting of Cache indicates that the system is currently performing resolver caching and the application is permitted to use the caching function. An individual application can be prevented from using the resolver caching function by specifying NOCACHE in the TCPIP.DATA data set.
- 26
- Because resolver caching is active and available for use by this
application, before the query is sent to the DNS, the
resolver cache is queried to see whether any information
is currently available for this resource.
- a
- The cache has no information about the resource. The resolver must query the DNS to obtain the A record information.
- b
- The cache has no AAAA record information about the resource, although it does have A record information (from the previous GetHostByName call). The resolver must query the DNS to obtain the AAAA information.
- c
- The cache has A record information about the resource, which is saved from the previous GetHostByName call for the same resource, and the information is not expired, so the saved information is retrieved from the cache. No communication to the name server is necessary this time to obtain the A record information about the resource.
- 27
- A timestamp is displayed when the query is actually sent to the
DNS name server.
- a
- A corresponding timestamp is displayed when the response from the DNS is successfully processed. If no response is received, the timestamp represents when the resolver stopped waiting for the response. The amount of time that elapses from the start of communication with the name server is also displayed.
- 28
- Because resolver caching is active and available for use by this application, the information about this resource is cached for later reuse by this application or other applications on the system.
- 29
- The resolver returns at most 35 IP addresses for a resource, even if, as in this case, there are more IP addresses that could be returned (20 IPv6 addresses, and 29 IPv4 addresses). Priority is given to IPv6 addresses, so in this case, all the possible IPv6 addresses are returned, but only 15 of the possible IPv4 addresses.
- 30
- The time to live (TTL) value represents the amount of time that the resolver cache can use the returned information about the resource. The MAXTTL resolver setup statement can be used to define an upper limit on the actual TTL value that is used for a resource by the resolver.
- 31
- The Type value indicates whether an IPv6 socket or an IPv4 socket is being used. IPv4 sockets are used when the system does not support IPv6 sockets or when only IPv4 addresses are specified for the name servers to be searched.
- 32
- System name indicates the value of the system_name parameter and where it was obtained. If VMCF is running, the value is the name that VMCF used when it started. Otherwise, it is the value of the z/OS CVT (Communication Vector Table) CVTSNAME field.
- 33
- At the completion of res_send processing, if UNRESPONSIVETHRESHOLD
is non-zero, resolver updates the system-wide responsiveness
statistics, and possibly the EDNS0 capability, for each
name server that is contacted as part of res_send processing. In
this example, resolver sent one request successfully
to the first name server in the list, and as part of
res_send processing discovered that the name server supported
EDNS0. The EDNS0 probe that resolver sent, after the truncated
response is received from the name server, is not included
in the count of requests that are sent during res_send,
since that probe is only used for resolver purposes.
Because only the first name server in the list was contacted, there were no updates to record for the second and third name servers in the list.
- a
- Since resolver did not detect any changes in the EDNS0 capability of this name server, only the updates to the system-wide responsiveness statistics as part of res_send processing are displayed here.
- 34
- The value of the UNRESPONSIVETHRESHOLD resolver setup statement at the time of the res_init processing is displayed. If the AUTOQUIESCE operand is specified on the resolver setup statement, the value that is displayed here would be in the form percentage,AUTOQUIESCE.
- 35
- The resolver address space initializes even if syntax errors are detected in the resolver setup file. This statement indicates whether errors are detected during resolver address space initialization and are not yet corrected.
36
This statement indicates whether the CTRACE TRACERES option is enabled. If the application enables the CTRACE TRACERES option, Trace Resolver output is collected as Resolver CTRACE records. For more information, see CTRACE - RESOLVER.
37
The setting of CacheReorder indicates that the resolver reorders the list of cached IP addresses in a round-robin manner before the resolver returns the list to the requesting application. You can specify the NOCACHEREORDER statement in the TCPIP.DATA data set to disable cache reordering for an individual application.
- If any errors occurred, see z/OS Communications Server: IP and SNA Codes.
- In a multitasking environment, if the LRECL of the
Trace Resolver
output is at least 128 characters, the MVS TCB storage address appears at the end of each line. The MVS TCB storage address can be useful in determining the origin of the resolver request.