HP OpenVMS Systems Documentation |
HP OpenVMS Cluster Systems
D.5.3 Assemble and Link the ProgramUse the following command procedure to assemble and link the program:
Make the edits necessary to fix the assembly or link errors, such as
errors caused by mistyping component labels in the path description.
Assemble the program again.
Before you execute the LAVC$FAILURE_ANALYSIS.EXE procedure, modify the startup files to run the procedure only on the node for which you supplied data. Example: To execute the program on node OMEGA, you would modify the startup files in SYS$COMMON:[SYSMGR] to include the following conditional statement:
D.5.5 Execute the ProgramTo run the LAVC$FAILURE_ANALYSIS.EXE program, follow these steps:
After it executes, the program displays the approximate amount of nonpaged pool required for the network description. The display is similar to the following:
D.5.6 Modify MODPARAMS.DATOn each system running the network failure analysis, modify the file SYS$SPECIFIC:[SYSEXE]MODPARAMS.DAT to include the following lines, replacing value with the value that was displayed for nonpaged pool usage:
Run AUTOGEN on each system for which you modified MODPARAMS.DAT.
Test the program by causing a failure. For example, disconnect a
transceiver cable or ThinWire segment, or cause a power failure on a
bridge, a DELNI interconnect, or a DEMPR repeater. Then check the OPCOM
messages to see whether LAVC$FAILURE_ANALYSIS reports the failed
component correctly. If it does not report the failure, check your
edits to the network failure analysis program.
When an OpenVMS Cluster network component failure occurs, OPCOM displays a list of suspected components. Displaying the list through OPCOM allows the system manager to enable and disable selectively the display of these messages. The following are sample displays:
The OPCOM display of suspected failures uses the following prefixes to list suspected failures:
The text following the message prefix is the description of the network component you supplied when you edited LAVC$FAILURE_ANALYSIS.MAR.
Appendix E
|
Subroutine | Description |
---|---|
To manage LAN adapters: | |
SYS$LAVC_START_BUS | Directs PEDRIVER to start the NISCA protocol on a specific LAN adapter. |
SYS$LAVC_STOP_BUS | Directs PEDRIVER to stop the NISCA protocol on a specific LAN adapter. |
To control the network failure analysis system: | |
SYS$LAVC_DEFINE_NET_COMPONENT | Creates a representation of a physical network component. |
SYS$LAVC_DEFINE_NET_PATH | Creates a directed list of network components between two network nodes. |
SYS$LAVC_ENABLE_ANALYSIS | Enables the network failure analysis, which makes it possible to analyze future channel failures. |
SYS$LAVC_DISABLE_ANALYSIS | Stops the network failure analysis and deallocates the memory used for the physical network description. |
The subroutines described in this appendix are used by the LAN control programs, LAVC$FAILURE_ANALYSIS.MAR, LAVC$START_BUS.MAR, and LAVC$STOP_BUS.MAR. Although these programs are sufficient for controlling LAN networks, you may also find it helpful to use the LAN control subroutines to further manage LAN adapters.
E.2 Starting the NISCA Protocol
The SYS$LAVC_START_BUS subroutine starts the NISCA protocol on a
specified LAN adapter. To use the routine SYS$LAVC_START_BUS, specify
the following parameter:
Parameter | Description |
---|---|
BUS_NAME | String descriptor representing the LAN adapter name buffer, passed by reference. The LAN adapter name must consist of 15 characters or fewer. |
Example: The following Fortran sample program uses SYS$LAVC_START_BUS to start the NISCA protocol on the LAN adapter XQA:
PROGRAM START_BUS EXTERNAL SYS$LAVC_START_BUS INTEGER*4 SYS$LAVC_START_BUS INTEGER*4 STATUS STATUS = SYS$LAVC_START_BUS ( 'XQA0:' ) CALL SYS$EXIT ( %VAL ( STATUS )) END |
The SYS$LAVC_START_BUS subroutine returns a status value in register R0, as described in Table E-2.
Status | Result |
---|---|
Success | Indicates that PEDRIVER is attempting to start the NISCA protocol on the specified adapter. |
Failure | Indicates that PEDRIVER cannot start the protocol on the specified LAN adapter. |
SYS$LAVC_START_BUS can return the error condition codes shown in the following table.
Condition Code | Description |
---|---|
SS$_ACCVIO |
This status is returned for the following conditions:
|
SS$_DEVACTIVE | Bus already exists. PEDRIVER is already trying to use this LAN adapter for the NISCA protocol. |
SS$_INSFARG | Not enough arguments supplied. |
SS$_INSFMEM | Insufficient nonpaged pool to create the bus data structure. |
SS$_INVBUSNAM | Invalid bus name specified. The device specified does not represent a LAN adapter that can be used for the protocol. |
SS$_IVBUFLEN |
This status value is returned under the following conditions:
|
SS$_NOSUCHDEV |
This status value is returned under the following conditions:
Note: By calling this routine, an error-log message may be generated. |
SS$_NOTNETDEV | PEDRIVER does not support the specified LAN device. |
SS$_SYSVERDIF | The specified LAN device's driver does not support the VCI interface version required by PEDRIVER. |
PEDRIVER can return additional errors that indicate it has failed to
create the connection to the specified LAN adapter.
E.3 Stopping the NISCA Protocol
The SYS$LAVC_STOP_BUS routine stops the NISCA protocol on a specific LAN adapter.
Caution: Stopping the NISCA protocol on all LAN adapters causes satellites to hang and could cause cluster systems to fail with a CLUEXIT bugcheck.
To use this routine, specify the parameter described in the following table.
Parameter | Description |
---|---|
BUS_NAME | String descriptor representing the LAN adapter name buffer, passed by reference. The LAN adapter name must consist of 15 characters or fewer. |
Example: The following Fortran sample program shows how SYS$LAVC_STOP_BUS is used to stop the NISCA protocol on the LAN adapter XQB:
PROGRAM STOP_BUS EXTERNAL SYS$LAVC_STOP_BUS INTEGER*4 SYS$LAVC_STOP_BUS INTEGER*4 STATUS STATUS = SYS$LAVC_STOP_BUS ( 'XQB' ) CALL SYS$EXIT ( %VAL ( STATUS )) END |
The SYS$LAVC_STOP_BUS subroutine returns a status value in register R0, as described in Table E-3.
Status | Result |
---|---|
Success | Indicates that PEDRIVER is attempting to shut down the NISCA protocol on the specified adapter. |
Failure | Indicates that PEDRIVER cannot shut down the protocol on the specified LAN adapter. However, PEDRIVER performs the shutdown asynchronously, and there could be other reasons why PEDRIVER is unable to complete the shutdown. |
When the LAVC$STOP_BUS module executes successfully, the following device-attention entry is written to the system error log:
DEVICE ATTENTION... NI-SCS SUB-SYSTEM... FATAL ERROR DETECTED BY DATALINK... |
In addition, the following hexadecimal values are written to the STATUS field of the entry:
First longword (00000001)
Second longword (00001201)
This error-log entry indicates expected behavior and can be ignored.
However, if the first longword of the STATUS field contains a value
other than hexadecimal value 00000001, an error has occurred and
further investigation may be necessary.
E.3.2 Error Messages
SYS$LAVC_STOP_BUS can return the error condition codes shown in the following table.
Condition Code | Description |
---|---|
SS$_ACCVIO |
This status is returned for the following conditions:
|
SS$_INVBUSNAM | Invalid bus name specified. The device specified does not represent a LAN adapter that can be used for the NISCA protocol. |
SS$_IVBUFLEN |
This status value is returned under the following conditions:
|
SS$_NOSUCHDEV |
This status value is returned under the following conditions:
|
The SYS$LAVC_DEFINE_NET_COMPONENT subroutine creates a representation for a physical network component.
Use the following format to specify the parameters:
STATUS = SYS$LAVC_DEFINE_NET_COMPONENT (
component_description,
nodename_length,
component_type,
lan_hardware_addr,
lan_decnet_addr,
component_id_value )
Table E-4 describes the SYS$LAVC_DEFINE_NET_COMPONENT parameters.
Parameter | Description |
---|---|
component_description | Address of a string descriptor representing network component name buffer. The length of the network component name must be less than or equal to the number of COMP$C_MAX_NAME_LEN characters. |
nodename_length | Address of the length of the node name. This address is located at the beginning of the network component name buffer for COMP$C_NODE types. You should use zero for other component types. |
component_type | Address of the component type. These values are defined by $PEMCOMPDEF, found in SYS$LIBRARY:LIB.MLB. |
lan_hardware_addr | Address of a string descriptor of a buffer containing the component's LAN hardware address (6 bytes). You must specify this value for COMP$C_ADAPTER types. For other component types, this value is optional. |
lan_decnet_addr | String descriptor of a buffer containing the component's LAN DECnet address (6 bytes). This is an optional parameter for all component types. |
component_id_value | Address of a longword that is written with the component ID value. |
If successful, the SYS$LAVC_DEFINE_NET_COMPONENT subroutine creates a COMP data structure and returns its ID value. This subroutine copies user-specified parameters into the data structure and sets the reference count to zero.
The component ID value is a 32-bit value that has a one-to-one
association with a network component. Lists of these component IDs are
passed to SYS$LAVC_DEFINE_NET_PATH to specify the components used when
a packet travels from one node to another.
E.4.2 Error Messages
SYS$LAVC_DEFINE_NET_COMPONENT can return the error condition codes shown in the following table.
Condition Code | Description |
---|---|
SS$_ACCVIO |
This status is returned for the following conditions:
|
SS$_DEVACTIVE | Analysis program already running. You must stop the analysis by calling the SYS$LAVC_DISABLE_ANALYSIS before you define the network components and the network component lists. |
SS$_INSFARG | Not enough arguments supplied. |
SS$_INVCOMPTYPE | The component type is either 0 or greater than or equal to COMP$C_INVALID. |
SS$_IVBUFLEN |
This status value is returned under the following conditions:
|
The SYS$LAVC_DEFINE_NET_PATH subroutine creates a directed list of network components between two network nodes. A directed list is a list of all the components through which a packet passes as it travels from the failure analysis node to other nodes in the cluster network.
Use the following format to specify the parameters:
STATUS = SYS$LAVC_DEFINE_NET_PATH (
network_component_list,
used_for_analysis_status,
bad_component_id )
Table E-5 describes the SYS$LAVC_DEFINE_NET_PATH parameters.
Parameter | Description |
---|---|
network_component_list |
Address of a string descriptor for a buffer containing the component ID
values for each of the components in the path. List the component ID
values in the order in which a network message travels through them.
Specify components in the following order:
You must list two nodes and two LAN adapters in the network path. The buffer length must be greater than 15 bytes and less than 509 bytes. |
used_for_analysis_status | Address of a longword status value that is written. This status indicates whether this network path has any value for the network failure analysis. |
bad_component_id | Address of a longword value that contains the erroneous component ID if an error is detected while processing the component list. |
This subroutine creates a directed list of network components that describe a specific network path. If SYS$LAVC_DEFINE_NET_PATH is successful, it creates a CLST data structure. If one node is the local node, then this data structure is associated with a PEDRIVER channel. In addition, the reference count for each network component in the list is incremented. If neither node is the local node, then the used_for_analysis_status address contains an error status.
The SYS$LAVC_DEFINE_NET_PATH subroutine returns a status value in register R0, as described in Table E-6, indicating whether the network component list has the correct construction.
Status | Result |
---|---|
Success | The used_for_analysis_status value indicates whether the network path is useful for network analysis performed on the local node. |
Failure | If a failure status returned in R0 is SS$_INVCOMPID, the bad_component_id address contains the value of the bad_component_id found in the buffer. |
Previous | Next | Contents | Index |