|
|
|
|
The RUI_REINIT verb re-establishes the SSCP-LU session after a session failure. It is intended for use by an application that was using an LU from a pool, and needs to ensure that it accesses the same LU in order to continue processing. (Normally, an application recovers from a session failure by issuing RUI_TERM followed by a second RUI_INIT; however, if the application was using an LU from a pool, the second RUI_INIT will not necessarily get the same LU as the original one.)
The application supplies the following parameters:
The length in bytes of the LUA verb record. Set this to sizeof(struct LUA_COMMON).
Optional. A four-byte value that you can use to correlate this verb with other processing within your application. LUA does not use or change this information.
The name in ASCII of the LU that was being used by the failed session. This must match the name returned on the original RUI_INIT verb (not necessarily the same as the name that was supplied to the verb).
This parameter is required only if the lua_sid parameter is 0 (zero). If a session ID is supplied in lua_sid, LUA does not use this parameter.
This parameter must be eight bytes long; pad on the right with spaces, 0x20, if the name is shorter than eight characters.
The session ID of the session. This must match a session ID returned on the previous RUI_INIT verb for the failed session.
This parameter is optional; if you do not specify the session ID, you must specify the LU name for the session in the lua_luname parameter.
A pointer to a callback routine. If the verb completes asynchronously, LUA will call this routine to indicate completion of the verb. For more information, see Designing and Writing LUA Applications.
LUA always returns the following parameter:
This flag is set to 1 if the verb completed asynchronously, or 0 if the verb completed synchronously. (RUI_REINIT will always complete asynchronously, unless it returns an error such as LUA_PARAMETER_CHECK.)
Other returned parameters depend on whether the verb completed successfully; see the following sections.
If the verb executes successfully, LUA returns the following parameter:
LUA_OK
If a verb does not complete successfully, LUA returns a primary return code to indicate the type of error and a secondary return code to provide specific details about the reason for unsuccessful execution.
The following return codes indicate that the verb did not complete successfully because it was canceled by another verb:
LUA_CANCELLED
An RUI_TERM verb was issued before the RUI_REINIT had completed.
The following return codes indicate that the verb did not complete successfully because a supplied parameter was in error:
LUA_PARAMETER_CHECK
Possible values are:
The lua_post_handle parameter was not a valid pointer to a callback routine.
A reserved field in the verb record, or a parameter that is not used by this verb, was set to a nonzero value.
The value of the lua_verb_length parameter was less than the length of the verb record required for this verb.
The following return codes indicate that the verb was issued in a session state in which it was not valid:
LUA_STATE_CHECK
Possible values are:
An RUI_INIT verb has not previously completed successfully for the specified LU name or session ID.
An RUI_REINIT verb is currently being processed for this session.
Session failure has not occurred for this session.
The following return codes indicate that the verb record supplied was valid, but the verb did not complete successfully:
LUA_UNSUCCESSFUL
The original RUI_INIT verb was issued from a different operating system process.
The following return codes indicate that the verb did not complete successfully for other reasons:
This return code indicates one of the following conditions:
The SNAP-IX software has not been started. The SNAP-IX software must be started before you can use LUA verbs. Contact your System Administrator if necessary.
There are no active SNAP-IX nodes. The local node that owns the requested LU, or a local node that owns one or more LUs in the requested LU pool, must be started before you can use LUA verbs. Contact your System Administrator if necessary.
The maximum number of users permitted by the SNAP-IX license are already using SNAP-IX. You cannot use this application at present because it would exceed the user limit; you may be able to start it later when there are fewer users on the system.
A required SNAP-IX software component (such as the node) has terminated or has been stopped. Contact your System Administrator if necessary.
The LUA session has failed.
If the secondary return code is not LUA_RUI_LOGIC_ERROR , then this LU can be reinitialized using an RUI_REINIT. If it is not reinitialized, then an RUI_TERM must be issued before an RUI_INIT can be issued for the same LU.
Possible values are:
The LUA session has failed because of a problem with the communications link or with the host LU.
This return code indicates one of the following:
The host system has violated SNA protocols
An internal error was detected within LUA
Attempt to reproduce the problem with SNA tracing active (contact your System Administrator if necessary), and check that the host is sending correct data. If this does not solve the problem, contact your SNAP-IX support personnel.
Either the lua_verb parameter or the lua_opcode parameter was not valid. The verb did not execute.
This verb can only be issued if a previous LUA verb has returned with primary return code LUA_SESSION_FAILURE , and with a secondary return code other than LUA_RUI_LOGIC_ERROR.
Until this verb has completed successfully, the only other LUA verb that can be issued for this session is RUI_TERM (which will terminate a pending RUI_REINIT).
The RUI_REINIT verb completes after an ACTLU is received from the host. If necessary, the verb waits indefinitely. If an ACTLU has already been received prior to the RUI_REINIT verb, the verb returns immediately with primary return code LUA_OK.
Once the RUI_REINIT verb has completed successfully, this session uses the LU for which the session was started. No other LUA session (from this or any other application) can use the LU until the RUI_TERM verb is issued, or until an LUA_SESSION_FAILURE primary return code is received.
If the secondary return code is not LUA_RUI_LOGIC_ERROR , then this LU can be reinitialized using an RUI_REINIT. If it is not reinitialized, then an RUI_TERM must be issued before an RUI_INIT can be issued for the same LU.
The session ID of the restarted session is the same as the session ID before the failure. Unlike RUI_INIT, RUI_REINIT does not return this session ID; the application should either use the session ID that was returned to the original RUI_INIT verb, or access the session using its LU name.
|
|
|
|
|