The MC_SEND_CONVERSATION verb allocates a session between the local LU and partner LU, sends data on the session, and then deallocates the session.
For the Microsoft® Windows® version 3.x system, it is recommended that you use WinAsyncAPPC rather than the blocking version of this call.
The following structure describes the verb control block used by the MC_SEND_CONVERSATION verb.
struct mc_send_conversation {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char reserv3[8];
unsigned char rtn_ctl;
unsigned char reserv4;
unsigned long conv_group_id;
unsigned long sense_data;
unsigned char plu_alias[8];
unsigned char mode_name[8];
unsigned char tp_name[64];
unsigned char security;
unsigned char reserv6[11];
unsigned char pwd[10];
unsigned char user_id[10];
unsigned short pip_dlen;
unsigned char FAR * pip_dptr;
unsigned char reserv6;
unsigned char fqplu_name[17];
unsigned char reserv7[8];
unsigned short dlen;
unsigned char FAR * dptr;
};
The value of this parameter is returned by MC_ALLOCATE in the invoking TP or by RECEIVE_ALLOCATE in the invoked TP.
If the value of this parameter is fewer than eight bytes, pad it on the right with ASCII spaces (0x20).
The parameter is an 8-byte EBCDIC character string. It can consist of characters from the type A EBCDIC character set, including all EBCDIC spaces. These characters are:
The first character in the string must be an uppercase letter or special character.
In a mapped conversation, the name cannot be SNASVCMG (a reserved mode name used internally by APPC).
The parameter is a 64-byte, case-sensitive, EBCDIC character string. This parameter can consist of characters from the type AE EBCDIC character set. These characters are:
If the TP name is fewer than 64 bytes, use EBCDIC spaces (0x40) to pad it on the right.
The SNA convention is that a service TP name can have up to four characters. The first character is a hexadecimal byte between 0x00 and 0x3F. The other characters are from the EBCDIC AE character set.
For example, assume that TP A invokes TP B with a valid user identifier and password, and TP B in turn invokes TP C. If TP B specifies the value AP_SAME, APPC will send the LU for TP C the user identifier from TP A and an already-verified indicator. This indicator indicates to TP C not to require the password (if TP C is configured to accept an already-verified indicator).
This parameter is a 10-byte, case-sensitive, EBCDIC character string. It can consist of characters from the type AE EBCDIC character set. These characters are:
If the password is fewer than 10 bytes, use EBCDIC spaces (0x40) to pad it on the right.
The parameter can consist of characters from the type AE EBCDIC character set. These characters are:
If the user identifier is fewer than 10 bytes, use EBCDIC spaces (0x40) to pad it on the right.
PIP data can consist of initialization parameters or environmental setup information required by a partner TP or remote operating system. The PIP data must follow the GDS format. For more information, see your IBM SNA manual(s).
For the Microsoft® Windows NT® and Windows 95 operating systems and the Windows graphical environment, the data buffer can reside in a static data area or in a globally allocated area.
For the OS/2 operating system, use a shared, unnamed segment for the data buffer. To allocate the segment, issue the function call DosAllocSeg with the shared indicator equal to 1. The data buffer must be entirely within the data segment.
This name must be provided if no plu_alias is provided.
Type A EBCDIC characters contain:
If the value of this parameter is fewer than 17 bytes, pad it on the right with EBCDIC spaces (0x40).
For the Windows NT and Windows 95 operating systems and the Windows graphical environment, the data buffer can reside in a static data area or in a globally allocated area. The data buffer must fit entirely within this area.
For the OS/2 operating system, use a shared, unnamed segment for the data buffer. To allocate the segment, issue the function call DosAllocSeg with the shared indicator equal to 1. The data buffer must be entirely within the data segment.
This code may be returned through a verb issued after MC_ALLOCATE.
The system administrator should examine the error log to determine the reason for the ABEND.
When this return code is used with MC_ALLOCATE, it may indicate that no communications subsystem could be found to support the local LU. (For example, the local LU alias specified with TP_STARTED is incorrect or has not been configured.) Note that if lu_alias or mode_name is fewer than eight characters, you must ensure that these fields are filled with spaces to the right. This error is returned if these parameters are not filled with spaces, since there is no node available that can satisfy the MC_ALLOCATE request.
When MC_ALLOCATE produces this return code for a Microsoft® SNA Server Client system configured with multiple nodes, there are two secondary return codes as follows:
· The node with the local LU is not started. |
· The local LU is not configured. |
This verb is issued by the invoking TP to conduct an entire conversation with the remote TP. If the remote TP rejects either the conversation initiation or the data, the invoking TP will not receive notification of the rejection.
The conversation state is RESET when the TP issues this verb. There is no state change.
Several parameters of MC_SEND_CONVERSATION are EBCDIC or ASCII strings. A TP can use the CSV CONVERT to translate a string from one character set to the other.
Normally, the value of mode_name must match the name of a mode configured for the invoked TP's node and associated during configuration with the partner LU. If one of the modes associated with the partner LU on the invoked TP's node is an implicit mode, the session established between the two LUs will be of the implicit mode when no mode name associated with the partner LU matches the value of mode_name.