[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | DEC TCP/IP Services for OpenVMS |
Notice: | Note 2-SSB Kits, 3-FT Kits, 4-Patch Info, 7-QAR System |
Moderator: | ucxaxp.ucx.lkg.dec.com::TIBBERT |
|
Created: | Thu Nov 17 1994 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 5568 |
Total number of notes: | 21492 |
5403.0. "GETHOSTBYNAME QIO Fails, UCX Restart Fixes It" by CSC32::D_PINA () Wed Apr 02 1997 17:51
The gethostbyname qio system service fails with a bogus error -32236
on the following customer's system
Note: If ucx is shutdown and restarted the QIO system service will
run successfully
-----------
Timone:
$ ucx sho comm
Communication Parameters
Local host: timone Domain: LZ.WL.COM
Cluster timer: 5
Maximum Current Peak
Interfaces 20 2 2
Device_sockets 300 44 61
Routes 65535 3 3
Services 200 0 2
Proxies 20
Type: FDDI Free Maximum Max Bytes Minimum Min
Bytes
Large buffers 20 200 947200 10
47360
Small buffers 150 2000 512000 50
12800
IRPs 20 200
Non UCX buffers 10
Remote Terminal
Large buffers: 10
UCBs: 4
Virtual term: disabled
$ ucx sho comm/mem
MBUF Summary
Small_static Large_static Small_dynamic
Large_dynamic
Total buffers 50 10 150
0
Free 1 10 75
0
Busy
Data 0 0 0
0
Header 7 0 25
0
Socket 20 0 25
0
Prot. control 14 0 25
0
Route 3 0 0
0
Socket name 0 0 0
0
Socket options 1 0 0
0
Fragment reassembly 0 0 0
0
IP address 2 0 0
0
Size of cluster 13056 47616 39504
0
Free Current Peak Waits
Drops
Small Buffers 124 170 0
0
Large Buffers 0 10 0
0
IRPs 5 1 6 0
0
Small clusters Large clusters Non UCX buffers
Free 0 0 0
$ sho mem/poo/fu
System Memory Resources on 2-APR-1997 16:28:28.83
Nonpaged Dynamic Memory (Lists + Variable)
Current Size (bytes) 4997120 Current Size (pagelets)
9760
Initial Size (NPAGEDYN) 4997120 Initial Size (pagelets)
9760
Maximum Size (NPAGEVIR) 19996672 Maximum Size (pagelets)
39056
Free Space (bytes) 1758400 Space in Use (bytes)
3238720
Size of Largest Block 1092672 Size of Smallest Block
64
Number of Free Blocks 2416 Free Blocks LEQU 64 Bytes
386
Free Blocks on Lookasides 1331 Lookaside Space (bytes)
352960
Paged Dynamic Memory
Current Size (PAGEDYN) 1966080 Current Size (pagelets)
3840
Free Space (bytes) 808368 Space in Use (bytes)
1157712
Size of Largest Block 806432 Size of Smallest Block
16
Number of Free Blocks 57 Free Blocks LEQU 64 Bytes
52
$ run FORGETH.EXE;/nodeb
Enter host name OR inet address for GETHOSTBYNAME: localhost
%TRACE-F-TRACEBACK, symbolic stack dump follows
Image Name Module Name Routine Name Line Number rel PC
abs PC
FORGETH GETHOSTBYNAME CHECK_IOSB 4599 00000E74
00030E74
FORGETH GETHOSTBYNAME GETHOSTBYNAME 3181 000002DC
000302DC
0 858E0170
858E0170
$ run CHKDNR.EXE;1
Enter Host to Resolve ("EXIT" to quit):localhost
Status from assign = 1, Index = 208
QIO Results: status = 1, iosb[0] = -32748, iosb[1] = 778
Host Address =
Host IPC Address = 127.0.0.1
Enter Host to Resolve ("EXIT" to quit):
$ ucx sho vers
Digital TCP/IP Services for OpenVMS Alpha Version V4.1 - ECO Level 4
on a AlphaServer 1000A 4/266 running OpenVMS V6.2-1H3
Image Identification Information
image name: "UCX$IPC_SHR"
image file identification: "UCX V4.1-12"
image file build identification: ""
link date/time: 23-JUL-1996 18:32:51.99
linker identification: "A11-14"
Image Identification Information
image name: "LIBRTL"
image file identification: "X01-001"
image file build identification: "X61Q-SSB-0000"
link date/time: 4-MAY-1995 22:30:41.45
linker identification: "A11-12"
image name: "SYS$PUBLIC_VECTORS"
image file identification: "X-33"
image file build identification: "X61Q-SSB-0000"
link date/time: 4-MAY-1995 22:29:27.83
linker identification: "A11-12
image name: "DEC$FORRTL"
image file identification: "V01-05.171"
image file build identification: "X61Q-SSB-0000"
link date/time: 4-MAY-1995 22:35:43.51
linker identification: "A11-12"
image name: "DECC$SHR"
image file identification: "T06.2-05"
image file build identification: "X61Q-SSB-L400"
link date/time: 6-JAN-1997 16:34:02.40
linker identification: "A11-12"
The following program is used to test the QIO interface on the
customer's system.
OPTIONS /EXTEND_SOURCE
PROGRAM GETHOSTBYNAME
IMPLICIT NONE
INCLUDE '($IODEF)'
INCLUDE '($SSDEF)'
INCLUDE 'SYS$LIBRARY:UCX$INETDEF.FOR'
STRUCTURE /ACP_FUNCTION/
UNION
MAP
BYTE TYPE
BYTE CALL_CODE / 0 /
INTEGER*2 FILLER / 0 /
END MAP
MAP
INTEGER*4 subfunction_code
END MAP
END UNION
END STRUCTURE !ACP_FUNCTION
RECORD /ACP_FUNCTION/ ACP_FUNC
INTEGER*4 SYS$QIOW, SYS$ASSIGN, STR$TRIM
INTEGER*4 IOSTAT, STATUS
CHARACTER*256 HOST_NAME
INTEGER*4 RET_LEN, HOST_LEN
CHARACTER*11 UCX_DEVICE_NAME / 'UCX$DEVICE:' /
CHARACTER*500 HOST_INET_ADRS
INTEGER*2 ACP_IOSB(4)
INTEGER*2 DEV_CHAN
TYPE 100
ACCEPT 110, host_name
100 FORMAT(' Enter host name OR inet address for GETHOSTBYNAME:
',$)
110 FORMAT(A)
TYPE *, ' '
CC Trim trailing spaces off host name/inet address, if you don't
C the host will not be found.
C
STATUS = STR$TRIM (HOST_NAME, HOST_NAME, HOST_LEN)
IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS))
C
C Assign the internet pseudo device
C
STATUS = SYS$ASSIGN (UCX_DEVICE_NAME,DEV_CHAN,,,)
IF (.NOT. STATUS) CALL LIB$STOP(%VAL(STATUS))
C
C Get the host INET address
C
ACP_FUNC.TYPE = INETACP_FUNC$C_GETHOSTBYNAME
IOSTAT = SYS$QIOW (,%VAL(DEV_CHAN),%VAL(IO$_ACPCONTROL),
>
ACP_IOSB,,,%DESCR(ACP_FUNC.SUBFUNCTION_CODE),
> HOST_NAME(1:HOST_LEN),%REF(RET_LEN),
> HOST_INET_ADRS,,)
IF (.not. iostat) call lib$stop(%val(iostat))
CALL check_iosb(acp_iosb(1))
TYPE *, 'Host INET address for ', HOST_NAME(1:HOST_LEN), ':'
TYPE *, ' '
CALL WRITE_LIST(HOST_INET_ADRS(1:RET_LEN))
TYPE *, ' '
TYPE *, ' '
C
C Get the host aliases
C
ACP_FUNC.CALL_CODE = INETACP$C_ALIASES
IOSTAT = SYS$QIOW (,%VAL(DEV_CHAN),%VAL(IO$_ACPCONTROL),
>
ACP_IOSB,,,%DESCR(ACP_FUNC.SUBFUNCTION_CODE),
> HOST_NAME(1:HOST_LEN),%REF(RET_LEN),
> HOST_INET_ADRS,,)
IF (.not. iostat) call lib$stop(%val(iostat))
CALL check_iosb(acp_iosb(1))
TYPE *, 'Host aliases for ', HOST_NAME(1:HOST_LEN), ':'
TYPE *, ' '
CALL WRITE_LIST(HOST_INET_ADRS(1:RET_LEN))
TYPE *, ' '
END
C
C Subroutine check_iosb will check return status and output the
C appropriate message.
C
SUBROUTINE check_iosb(iosb_status)
IMPLICIT NONE
INCLUDE '($SSDEF)'
INTEGER*2 iosb_status
IF (iosb_status .EQ. SS$_ABORT) THEN
TYPE *, 'Unknown cause of an internal error. An unspecified'
TYPE *, 'error was detected while performing an INET ACP'
TYPE *, 'function.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_ABORT))
END IF
IF (iosb_status .EQ. SS$_BADPARAM) THEN
TYPE *, 'Programming or internal error. Bad parameter (name
or'
TYPE *, 'address) specified in a GET{HOST,NET}BY{NAME,ADDRESS}'
TYPE *, 'ACP call.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_BADPARAM))
END IF
IF (iosb_status .EQ. SS$_BUFFEROVF) THEN
TYPE *, 'Programming error. Not enough space for'
TYPE *, 'returning all alias names in a GET{HOST,NET}'
TYPE *, ' BY{NAME,ADDRESS} ACP call.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_BUFFEROVF))
END IF
IF (iosb_status .EQ. SS$_ENDOFFILE) THEN
TYPE *, 'The information requested is not in the database.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_ENDOFFILE))
END IF
IF (iosb_status .EQ. SS$_ILLCNTRFUNC) THEN
TYPE *, 'Unknown cause of an internal error. An unspecified'
TYPE *, 'error was detected while performing an INET ACP'
TYPE *, 'function.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_ILLCNTRFUNC))
END IF
IF (iosb_status .EQ. SS$_NOPRIV) THEN
TYPE *, 'INET management error. No privilege for the
execution'
TYPE *, 'of an INET ACP function.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_NOPRIV))
END IF
IF (iosb_status .EQ. SS$_RESULTOVF) THEN
TYPE *, 'Programming error. The ACP overflowed the buffer in'
TYPE *, 'returning a parameter.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_RESULTOVF))
END IF
IF (iosb_status .EQ. SS$_SHUT) THEN
TYPE *, 'The network is being shut down.'
TYPE *, ' '
CALL LIB$STOP(%VAL(SS$_SHUT))
END IF
IF (.not. iosb_status) call lib$stop(%val(iosb_status))
RETURN
END
C
C Subroutine write_list takes a list and extracts the NULL
C separated elements using STR$ELEMENT.
C
SUBROUTINE WRITE_LIST( list )
CHARACTER*(*) list
CHARACTER*256 item
INTEGER*4 status, status2, index, item_len
INTEGER*4 STR$ELEMENT, STR$TRIM
STATUS = 1
INDEX = 0
C
C Continue to extract elements until STR$ELEMENT returns error
C %STR-W-NOELEM, no element found
C
DO WHILE (STATUS)
STATUS = STR$ELEMENT (item, index, CHAR(0), list)
STATUS2 = STR$TRIM (item, item, item_len)
IF (.NOT. STATUS2) CALL LIB$STOP(%VAL(STATUS2))
IF ((item_len .GT. 0) .AND. STATUS)
1 TYPE *, ' ', item(1:item_len)
INDEX = INDEX + 1
END DO
RETURN
END
T.R | Title | User | Personal Name | Date | Lines
|
---|