MC_ALLOCATE

Il verbo MC_ALLOCATE viene emesso dal programma di transazione richiamato (TP). Alloca una sessione tra l'unità logica locale (LU) e l'LU del partner e (insieme a RECEIVE_ALLOCATE) stabilisce una conversazione tra il TP richiamato e il TP richiamato. Dopo l'esecuzione del verbo, APPC genera un identificatore di conversazione (conv_id). Il conv_id è un parametro obbligatorio per tutti gli altri verbi di conversazione APPC.

La struttura seguente descrive il blocco di controllo verbo (VCB) usato dal verbo MC_ALLOCATE verbo.

Sintassi

  
struct mc_allocate {  
    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;  
    unsigned char    synclevel;  
    unsigned char    reserv4[2];  
    unsigned char    rtn_ctl;  
    unsigned char    reserv5;  
    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    reserv7;  
    unsigned char    fqplu_name[17];  
    unsigned char    reserv8[8];  
    unsigned long    proxy_user;  
    unsigned long    proxy_domain;  
    unsigned char    reserv9[16];  
};   

Members

Opcode
Parametro fornito. Specifica il codice dell'operazione verbo; AP_M_ALLOCATE.

opext
Parametro fornito. Specifica l'estensione dell'operazione verbo, AP_MAPPED_CONVERSATION. Se il bit di AP_EXTD_VCB è impostato, questo indica che viene usata una versione estesa del blocco di controllo verbo. In questo caso, la struttura MC_ALLOCATE include il supporto delle funzionalità del punto di sincronizzazione o proxy con privilegi.

reserv2
Campo riservato.

Primary_rc
Parametro restituito. Specifica il codice restituito primario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC rilasciato. Per questo verbo, vedere Codici restituiti per i codici di errore validi.

Secondary_rc
Parametro restituito. Specifica il codice restituito secondario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC rilasciato. Per questo verbo, vedere Codici restituiti per i codici di errore validi.

Tp_id
Parametro fornito. Identifica il TP locale. Il valore di questo parametro è stato restituito da TP_STARTED.

Conv_id
Parametro restituito. Identifica la conversazione stabilita tra i due provider di servizi.

reserv3
Campo riservato.

synclevel
Parametro fornito. Specifica il livello di sincronizzazione della conversazione. Determina se i provider di servizi possono richiedere la conferma della ricezione dei dati e confermare la ricezione dei dati.

  • AP_NONE specifica che l'elaborazione di conferma non verrà usata in questa conversazione.

  • AP_CONFIRM_SYNC_LEVEL specifica che i provider di servizi di configurazione possono usare l'elaborazione di conferma in questa conversazione.

  • AP_SYNCPT specifica che i provider di servizi di sicurezza possono usare l'elaborazione di conferma del livello 2 del punto di sincronizzazione in questa conversazione.

    reserv4
    Campo riservato.

    reserv5
    Campo riservato.

    rtn_ctl
    Parametro fornito. Specifica quando l'lu locale, che agisce su una richiesta di sessione dal TP locale, deve restituire il controllo al TP locale. Per informazioni sulle sessioni, vedere Panoramica dei programmi di transazione.

  • AP_IMMEDIATE specifica che l'LU alloca una sessione di contesa- vincitore, se ne è immediatamente disponibile e restituisce il controllo al TP.

  • AP_WHEN_SESSION_ALLOCATED specifica che l'lu non restituisce il controllo al TP finché non alloca una sessione o rileva uno degli errori documentati in Codici restituiti in questo argomento. Se il limite di sessione è zero, l'lu restituisce immediatamente il controllo. Se una sessione non è disponibile, il TP attende uno.

  • AP_WHEN_SESSION_FREE specifica che l'LU alloca una sessione di contesa o di contesa, se disponibile o in grado di essere attivata e restituisce il controllo al TP. Se si verifica un errore, come documentato in Codici restituiti in questo argomento, la chiamata restituirà immediatamente con l'errore nei campi primary_rc e secondary_rc .

  • AP_WHEN_CONWINNER_ALLOC specifica che l'lu non restituisce il controllo fino a quando non alloca una sessione vincitore di contesa o rileva uno degli errori documentati in Codici restituiti in questo argomento. Se il limite di sessione è zero, l'lu restituisce immediatamente il controllo. Se una sessione non è disponibile, il TP attende uno.

  • AP_WHEN_CONV_GROUP_ALLOC specifica che l'lu non restituisce il controllo al TP finché non alloca la sessione specificata da conv_group_id or rileva uno degli errori documentati in Codici restituiti in questo argomento. Se una sessione non è disponibile, il TP attende che diventi gratuito.

Nota

AP_IMMEDIATE è l'unico valore per rtn_ctl che non causa mai l'avvio di una nuova sessione. Per i valori diversi da AP_IMMEDIATE, se una sessione appropriata non è immediatamente disponibile, Microsoft® Host Integration Server tenta di avviarne una. Ciò causa l'attivazione della connessione su richiesta.

conv_group_id
Parametro fornito/restituito. Specifica l'identificatore del gruppo di conversazioni da cui deve essere allocata la sessione. Il conv_group_id è obbligatorio solo se rtn_ctl is impostato su WHEN_CONV_GROUP_ALLOC. Quando rtn_ctl specifica un valore diverso e il primary_rc è AP_OK, si tratta di un valore restituito.

sense_data
Parametro restituito. Indica un errore di allocazione (riprova o nessun tentativo) e contiene dati di senso.

plu_alias
Parametro fornito. Specifica l'alias in base al quale il lu partner è noto al TP locale.

Il plu_alias deve corrispondere al nome di un lu partner stabilito durante la configurazione.

Il parametro è una stringa di caratteri ASCII a 8 byte. Può essere costituito dai seguenti caratteri ASCII:

  • Lettere maiuscole

  • Numeri da 0 a 9

  • Spazi

  • Caratteri speciali $, #, %e @

    Il primo carattere di questa stringa non può essere uno spazio.

    Se il valore di questo parametro è inferiore a otto byte, riquadri a destra con spazi ASCII (0x20).

    Se si vuole specificare l'lu partner con il parametro fqplu_name , compilare questo parametro con zero binari.

    Per un utente o un gruppo che utilizzano ip, emulatori 5250 e/o applicazioni APPC, l'amministratore di sistema può assegnare unità LUS locali e remote predefinite. In questo caso, il campo viene lasciato vuoto o null e le UNITÀ predefinite vengono accessibili quando l'utente o il membro del gruppo avvia un programma APPC.

    mode_name
    Parametro fornito. Specifica il nome di un set di caratteristiche di rete definite durante la configurazione.

    Il valore di mode_name deve corrispondere al nome di una modalità associata all'LU partner durante la configurazione.

    Il parametro è una stringa di caratteri EBCDIC a 8 byte. Può essere costituito da caratteri dal tipo Set di caratteri EBCDIC:

  • Lettere maiuscole

  • Numeri da 0 a 9

  • Caratteri speciali $, #e @

    Il primo carattere nella stringa deve essere una lettera maiuscola o un carattere speciale.

    Non usare SNASVCMG in una conversazione mappata. SNASVCMG è un mode_name riservato usato internamente da APPC.

    Tp_name
    Parametro fornito. Specifica il nome del tp richiamato. Il valore di tp_name specificato da MC_ALLOCATE nel tp di chiamata deve corrispondere al valore di tp_name specificato da RECEIVE_ALLOCATE nel tp richiamato.

    Il parametro è una stringa di caratteri EBCDIC a 64 byte e fa distinzione tra maiuscole e minuscole. Il parametro tp_name può essere costituito dai caratteri EBCDIC seguenti:

  • Lettere maiuscole e minuscole

  • Numerali da 0 a 9

  • Caratteri speciali $, #, @e punto (.)

    Se tp_name è inferiore a 64 byte, usare spazi EBCDIC (0x40) per riempirlo a destra.

    La convenzione SNA è che un nome tp del servizio può contenere fino a quattro caratteri. Il primo carattere è un byte esadecimale tra 0x00 e 0x3F. Gli altri caratteri provengono dal set di caratteri EBCDIC di tipo AE.

    Sicurezza
    Parametro fornito. Fornisce le informazioni richieste dall'lu del partner per convalidare l'accesso al tp richiamato. Vedere la sezione Valori possibili per il parametro Security in questo argomento.

    Reserv6
    Un campo riservato.

    pwd
    Parametro fornito. Specifica la password associata alla user_id.

    Il parametro pwd è obbligatorio solo se la sicurezza è impostata su AP_PGM o AP_SAME. Deve corrispondere alla password per user_id stabilita durante la configurazione.

    Il parametro pwd è una stringa di caratteri EBCDIC a 10 byte e fa distinzione tra maiuscole e minuscole. Può essere costituito dai seguenti caratteri EBCDIC:

  • Lettere maiuscole e minuscole

  • Numerali da 0 a 9

  • Caratteri speciali $, #, @e punto (.)

    Se la password è inferiore a 10 byte, usare spazi EBCDIC (0x40) per riempirlo a destra.

    Se la funzionalità di accesso automatico APPC deve essere usata, la stringa di caratteri pwd deve essere hardcoded in MS$SAME. Vedere la sezione Osservazioni per informazioni dettagliate.

    User_id
    Parametro fornito. Specifica l'identificatore utente necessario per accedere al tp del partner. È obbligatorio solo se il parametro di sicurezza è impostato su AP_PGM o AP_SAME.

    Il parametro user_id è una stringa di caratteri EBCDIC a 10 byte e fa distinzione tra maiuscole e minuscole. Deve corrispondere a uno degli identificatori utente configurati per il tp del partner.

    Il parametro può essere costituito dai seguenti caratteri EBCDIC:

  • Lettere maiuscole e minuscole

  • Numerali da 0 a 9

  • Caratteri speciali $, #, @e punto (.)

    Se user_id è inferiore a 10 byte, usare spazi EBCDIC (0x40) per riempirlo a destra.

    Se la funzionalità di accesso automatico APPC deve essere usata, la stringa di caratteri user_id deve essere hardcoded in MS$SAME. Vedere la sezione Osservazioni per informazioni dettagliate.

    pip_dlen
    Parametro fornito. Specifica la lunghezza dei parametri di inizializzazione del programma da passare al tp del partner. L'intervallo è compreso tra 0 e 32767.

    pip_dptr
    Parametro fornito. Specifica l'indirizzo del buffer contenente i dati PIP. Usare questo parametro solo se pip_dlen è maggiore di zero.

    I dati PIP possono essere costituiti da parametri di inizializzazione o informazioni di configurazione ambientali richieste da un tp partner o da un sistema operativo remoto. I dati PIP devono seguire il formato generale del flusso di dati (GDS). Per altre informazioni, vedere i manuali IBM SNA.

    Per Microsoft Windows, il buffer dei dati può risiedere in un'area dati statica o in un'area allocata a livello globale. Il buffer dei dati deve rientrare interamente all'interno di questa area.

    reserv7
    Un campo riservato.

    fqplu_name
    Parametro fornito. Specifica il nome completo dell'lu partner. Deve corrispondere al nome completo dell'lu locale definito nel nodo remoto. Il parametro è costituito da due stringhe di caratteri EBCDIC di tipo per NETID e il nome LU del lu partner. I nomi sono separati da un punto EBCDIC (.).

    Questo nome deve essere specificato se non viene specificato alcun plu_alias . Può essere costituito dai seguenti caratteri EBCDIC:

  • 18 Lettere maiuscole

  • Numerali da 0 a 9

  • Caratteri speciali $, #e @

    Se il valore di questo parametro è inferiore a 17 byte, aggiungerlo a destra con spazi EBCDIC (0x40).

    reserv8
    Un campo riservato.

    proxy_user
    Parametro fornito. Specifica un LPWSTR che punta a una stringa Unicode contenente il nome utente da rappresentare usando la funzionalità proxy con privilegi. Questo campo può essere usato solo quando il bit AP_EXTD_VCB è impostato nel campo opext , che indica un vcb esteso.

    proxy_domain
    Parametro fornito. Specifica un LPWSTR che punta a una stringa Unicode contenente il nome di dominio dell'utente da rappresentare usando la funzionalità proxy con privilegi. Questo campo può essere usato solo quando il bit AP_EXTD_VCB è impostato nel campo opext , che indica un vcb esteso.

    reserv9
    Un campo riservato.

Valori possibili per il parametro di sicurezza

In base alla sicurezza della conversazione stabilita per il tp richiamato durante la configurazione, usare uno dei valori seguenti:

  • AP_NONE per un tp richiamato che non usa alcuna sicurezza della conversazione.

  • AP_PGM per un tp richiamato che usa la sicurezza delle conversazioni e richiede quindi un identificatore utente e una password. Fornire queste informazioni tramite i parametri user_id e pwd .

  • AP_PROXY_PGM per un tp richiamato con proxy con privilegi che usa la sicurezza delle conversazioni e richiede quindi un identificatore utente e una password. I puntatori devono essere configurati per proxy_user e proxy_domain in modo che puntino a stringhe Unicode contenenti il nome utente e il nome di dominio dell'utente da rappresentare. L'applicazione non deve impostare i campi user_id e pwd .

  • AP_PROXY_SAME per un tp che è stato richiamato usando un proxy con privilegi con un identificatore utente e una password validi forniti dal proxy, che a sua volta richiama un altro TP. I puntatori devono essere configurati per proxy_user e proxy_domain in modo che puntino a stringhe Unicode contenenti il nome utente e il nome di dominio dell'utente da rappresentare. L'applicazione non deve impostare i campi user_id e pwd .

    Si supponga, ad esempio, che TP A richiami TP B con un identificatore utente e una password validi forniti dal proxy con privilegi e TP B a sua volta richiama TP C. Se TP B specifica il valore AP_PROXY_SAME, APPC invierà l'lu per TP C l'identificatore utente da TP A e un indicatore già verificato. Questo indicatore indica a TP C di non richiedere la password (se TP C è configurato per accettare un indicatore già verificato).

  • AP_PROXY_STRONG per un tp richiamato con proxy con privilegi che usa la sicurezza delle conversazioni e richiede quindi un identificatore utente e una password forniti dal meccanismo proxy con privilegi. I puntatori devono essere configurati per proxy_user e proxy_domain in modo che puntino a stringhe Unicode contenenti il nome utente e il nome di dominio dell'utente da rappresentare. L'applicazione non deve impostare i campi user_id e pwd . AP_PROXY_STRONG differisce da AP_PROXY_PGM in quanto AP_PROXY_STRONG non consente password non crittografate. Se il sistema remoto non supporta le password crittografate (sicurezza della conversazione complessa), questa chiamata ha esito negativo.

  • AP_SAME per un tp richiamato con un identificatore utente e una password validi, che a sua volta richiama un altro TP.

    Si supponga, ad esempio, che TP A richiami TP B con un identificatore utente e una password validi e TP B a sua volta richiami TP C. Se TP B specifica il valore AP_SAME, APPC invierà l'lu per TP C l'identificatore utente da TP A e un indicatore già verificato. Questo indicatore indica a TP C di non richiedere la password (se TP C è configurato per accettare un indicatore già verificato).

    Quando AP_SAME viene usato in un verbo MC_ALLOCATE , l'applicazione deve sempre fornire valori per i parametri user_id e pwd nel blocco di controllo verbo. A seconda delle proprietà negoziate tra Host Integration Server e lu peer, il verbo MC_ALLOCATE invierà uno dei tre tipi di messaggi Attach (FMH-5), in questo ordine di precedenza:

    1. Se le unità elaborate hanno negoziato la sicurezza "già verificata", il collegamento inviato da Host Integration Server non includerà il contenuto del campo del parametro pwd specificato in VCB.

    2. Se le unità di archiviazione hanno negoziato la sicurezza "verifica permanente", il collegamento inviato da Host Integration Server includerà il parametro pwd specificato in VCB, ma solo quando attach è il primo per il parametro user_id specificato dall'inizio della sessione LU-LU e ometterà pwd parametro in tutti i collegamenti successivi (rilasciati dall'applicazione o da qualsiasi altra applicazione che usa questo tripletto in modalità LU-LU).

    3. Se le unità elaborate non hanno negoziato una delle versioni precedenti, il collegamento inviato da Host Integration Server ometterà sia i parametri user_id che pwd in tutti i collegamenti.

      L'applicazione non è in grado di indicare quale modalità di sicurezza è stata negoziata tra le unità di calcolo, né può indicare se il verbo MC_ALLOCATE viene emesso è il primo per il triplo in modalità LU-LU. Pertanto, l'applicazione deve sempre impostare i campi dei parametri user_id e pwd in VCB quando la sicurezza è impostata su AP_SAME.

      Per altre informazioni sulla verifica permanente e sulla sicurezza già verificata, vedere la Guida ai formati SNA, sezione "Intestazione FM 5: Attach (LU 6.2)".

  • AP_STRONG per un tp richiamato che usa la sicurezza delle conversazioni e richiede quindi un identificatore utente e una password. Fornire queste informazioni tramite i parametri user_id e pwd . AP_STRONG differisce da AP_PGM in quanto AP_STRONG non consente password non crittografate. Se il sistema remoto non supporta le password crittografate (sicurezza della conversazione complessa), questa chiamata ha esito negativo.

    Se la funzionalità di accesso automatico APPC deve essere usata, la sicurezza deve essere impostata su AP_PGM. Vedere la sezione Osservazioni per informazioni dettagliate.

Codici restituiti

AP_OK
Codice restituito primario; il verbo eseguito correttamente.

AP_UNSUCCESSFUL
Codice restituito primario; il parametro fornito rtn_ctl restituito immediato (AP_IMMEDIATE) di controllo al tp e l'lu locale non dispone di una sessione con contesa disponibile.

AP_PARAMETER_CHECK
Codice restituito primario; il verbo non è stato eseguito a causa di un errore di parametro.

AP_BAD_RETURN_CONTROL

Codice restituito secondario; il valore specificato per rtn_ctl non è valido.

AP_BAD_SECURITY

Codice restituito secondario; il valore specificato per la sicurezza non è valido.

AP_BAD_SYNC_LEVEL

Codice restituito secondario; il valore specificato per sync_level non è valido.

AP_BAD_TP_ID

Codice restituito secondario; il valore specificato per tp_id non è valido.

AP_PIP_LEN_INCORRECT

Codice restituito secondario; il valore di pip_dlen è maggiore di 32767.

AP_UNKNOWN_PARTNER_MODE

Codice restituito secondario; il valore specificato per mode_name non è valido.

AP_BAD_PARTNER_LU_ALIAS

Codice restituito secondario; APPC non riconosce il partner_lu_alias fornito.

AP_NO_USE_OF_SNASVCMG

Codice restituito secondario; SNASVCMG non è un valore valido per mode_name.

AP_INVALID_DATA_SEGMENT

Codice restituito secondario; i dati PIP erano più lunghi del segmento di dati allocato o l'indirizzo del buffer di dati PIP non è corretto.

AP_ALLOCATION_ERROR
Codice restituito primario; APPC non è riuscito ad allocare una conversazione. Lo stato della conversazione è impostato su RESET.

Questo codice può essere restituito tramite un verbo emesso dopo MC_ALLOCATE.

AP_ALLOCATION_FAILURE_NO_RETRY

Codice restituito secondario; La conversazione non può essere allocata a causa di una condizione permanente, ad esempio un errore di configurazione o un errore del protocollo di sessione. Per determinare l'errore, l'amministratore di sistema deve esaminare il file di log degli errori. Non ripetere l'allocazione fino a quando l'errore non è stato corretto.

AP_ALLOCATION_FAILURE_RETRY

Codice restituito secondario; Impossibile allocare la conversazione a causa di una condizione temporanea, ad esempio un errore di collegamento. Il motivo dell'errore viene registrato nel log degli errori di sistema. Ripetere l'allocazione.

AP_COMM_SUBSYSTEM_ABENDED
Codice restituito primario; indica una delle condizioni seguenti:

  • Il nodo usato da questa conversazione ha rilevato un ABEND.

  • La connessione tra il tp e il nodo pu 2.1 è stata interrotta (errore LAN).

  • SnaBase nel computer tp ha rilevato un ABEND.

    L'amministratore di sistema deve esaminare il log degli errori per determinare il motivo di ABEND.

    AP_COMM_SUBSYSTEM_NOT_LOADED
    Codice restituito primario; Impossibile caricare o terminare un componente richiesto durante l'elaborazione del verbo. Pertanto, la comunicazione non poteva avvenire. Contattare l'amministratore di sistema per un'azione correttiva.

    Quando questo codice restituito viene usato con MC_ALLOCATE, può indicare che non è stato possibile trovare alcun sistema di comunicazione per supportare l'lu locale. Ad esempio, l'alias LU locale specificato con TP_STARTED non è corretto o non è stato configurato. Si noti che se lu_alias o mode_name è inferiore a otto caratteri, è necessario assicurarsi che questi campi siano riempiti con spazi a destra. Questo errore viene restituito se questi parametri non vengono riempiti con spazi, poiché non è disponibile alcun nodo in grado di soddisfare la richiesta di MC_ALLOCATE .

    Quando MC_ALLOCATE produce questo codice restituito per un sistema Host Integration Server configurato con più nodi, esistono due codici restituiti secondari come indicato di seguito:

    0xF0000001

    Codice restituito secondario; nessun nodo è stato avviato.

    0xF0000002

    Codice restituito secondario; almeno un nodo è stato avviato, ma l'lu locale (quando viene emesso TP_STARTED ) non è configurato in alcun nodo attivo. Il problema potrebbe essere uno dei seguenti:

  • Il nodo con l'lu locale non viene avviato.

  • L'lu locale non è configurato.

    AP_INVALID_VERB_SEGMENT
    Codice restituito primario; VCB si estende oltre la fine del segmento di dati.

    AP_STACK_TOO_SMALL
    Codice restituito primario; le dimensioni dello stack dell'applicazione sono troppo piccole per eseguire il verbo. Aumentare le dimensioni dello stack dell'applicazione.

    AP_CONV_BUSY
    Codice restituito primario; può essere presente un solo verbo di conversazione in sospeso alla volta in qualsiasi conversazione. Ciò può verificarsi se il tp locale ha più thread e più thread eseguono chiamate APPC usando lo stesso conv_id.

    AP_THREAD_BLOCKING
    Codice restituito primario; il thread chiamante è già in una chiamata di blocco.

    AP_UNEXPECTED_DOS_ERROR
    Codice restituito primario; il sistema operativo ha restituito un errore ad APPC durante l'elaborazione di una chiamata APPC dal tp locale. Il codice restituito dal sistema operativo viene restituito tramite il secondary_rc. Viene visualizzato nell'ordine di scambio dei byte Intel. Se il problema persiste, consultare l'amministratore di sistema.

Commenti

MC_ALLOCATE stabilisce una conversazione mappata.

Lo stato della conversazione è RESET quando il tp emette questo verbo. Al termine dell'esecuzione (primary_rc viene AP_OK), lo stato cambia in SEND. Se il verbo non viene eseguito, lo stato rimane invariato.

Diversi parametri di MC_ALLOCATE sono stringhe EBCDIC o ASCII. Un tps può usare CSV CONVERT per tradurre una stringa da un set di caratteri all'altro.

Per inviare immediatamente la richiesta di MC_ALLOCATE , il tp di chiamata può emettere MC_FLUSH o MC_CONFIRM immediatamente dopo MC_ALLOCATE. In caso contrario, la richiesta di MC_ALLOCATE si accumula con altri dati nel buffer di invio dell'lu locale fino a quando il buffer non è pieno.

Eseguendo MC_CONFIRM dopo MC_ALLOCATE, il tp di chiamata può determinare immediatamente se l'allocazione è riuscita (se synclevel è impostata su AP_CONFIRM_SYNC_LEVEL).

In genere, il valore del parametro mode_name del verbo MC_ALLOCATE deve corrispondere al nome di una modalità configurata per il nodo del tp richiamato e associato durante la configurazione con l'lu partner.

Se una delle modalità associate all'lu del partner nel nodo tp richiamato è una modalità implicita, la sessione stabilita tra le due unità di sviluppo sarà della modalità implicita quando nessun nome di modalità associato all'lu partner corrisponde al valore di mode_name.

Host Integration Server supporta una funzionalità denominata sostituzione delle password. Si tratta di una funzionalità di sicurezza supportata dalla versione più recente del sistema operativo OS/400 (V3R1) che crittografa qualsiasi password che passa tra due nodi in un messaggio Di collegamento. Una password passa a un oggetto Attach ogni volta che un utente richiama un programma di transazione APPC che specifica un identificatore utente e una password. Ad esempio, ciò si verifica ogni volta che chiunque accede a un as/400.

Il supporto per la sostituzione delle password è indicato impostando il bit 5 in byte 23 della richiesta BIND su 1 (che indica che la sostituzione delle password è supportata). Se il sistema remoto imposta questo bit nella risposta BIND, Host Integration Server crittografa automaticamente la password di sicurezza della conversazione LU 6.2 inclusa nel messaggio di collegamento FMH-5. Host Integration Server applicazioni APPC sfruttano automaticamente questa funzionalità impostando il campo di sicurezza di VCB su AP_PGM o AP_STRONG nella richiesta di MC_ALLOCATE.

Se un'applicazione APPC vuole forzare il flusso di una password crittografata, l'applicazione può specificare AP_STRONG per il campo di sicurezza in VCB nella richiesta di MC_ALLOCATE . Questa opzione viene implementata come definito in OS/400 V3R1 ed è documentata nel riferimento programmatore CPI-C OS/400 come CM_SECURITY_PROGRAM_STRONG, in cui il campo LU 6.2 pwd (password) viene crittografato prima che venga trasmesso attraverso la rete fisica.

La funzionalità di sostituzione delle password è attualmente supportata solo da OS/400 V3R1 o versione successiva. Se il sistema remoto non supporta questa funzionalità, Host Integration Server unBIND la sessione con il codice sense di 10060006. I due nodi negoziano se supportano o meno questa funzionalità nello scambio BIND. Host Integration Server imposta un bit in BIND e aggiunge anche alcuni dati casuali in BIND per la crittografia. Se il nodo remoto supporta la sostituzione delle password, imposta lo stesso bit nella risposta BIND e aggiunge alcuni dati casuali (diversi) per la decrittografia.

Host Integration Server supporta l'accesso automatico per le applicazioni APPC. Questa funzionalità richiede una configurazione specifica da parte dell'amministratore di rete: l'applicazione APPC deve essere richiamata sul lato LAN da un client di Host Integration Server. Il client deve essere connesso a un dominio di Windows, ma può essere qualsiasi piattaforma che supporti le API APPC Host Integration Server.

L'applicazione client viene codificata per usare la sicurezza a livello di "programma", con un nome utente APPC hardcoded speciale MS$SAME e password MS$SAME. Quando questa allocazione di sessione passa dal client al Host Integration Server, il server Host Integration Server cerca l'account host e la password corrispondenti all'account Windows con cui il client è connesso e sostituisce le informazioni sull'account host nel messaggio di collegamento APPC inviato all'host.

Nota

Non è consentito che il nodo remoto imposti il bit specificando la sostituzione delle password e non aggiunga i dati casuali.

Secondo IBM, sono disponibili implementazioni di sostituzione delle password LU 6.2 che non supportano la sostituzione delle password, ma eseguono l'eco del bit di sostituzione delle password in Host Integration Server, senza specificare dati casuali. In questo caso, Host Integration Server UNBIND la sessione con il codice sense 10060006.Questo codice sense viene interpretato come:

  • 1006 = Campo obbligatorio o parametro mancante.

  • 0006 = È stato omesso un sottocampo obbligatorio di un vettore di controllo.

    Host Integration Server deve anche registrare un evento 17 (errore di attivazione della sessione APPC: risposta negativa BIND inviata).

    La soluzione corretta è che l'implementazione non riuscita venga risolta. Tuttavia, come soluzione alternativa a breve termine, è possibile impostare l'impostazione seguente del Registro di sistema del servizio SNA Host Integration Server: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\snaservr\parameters\NOPWDSUB: REG_SZ: SÌ

    Quando questo parametro viene specificato nel Registro di sistema, Host Integration Server supporto per la sostituzione delle password verrà disabilitato.

    Sono stati apportati diversi aggiornamenti per Host Integration Server per consentire a un'applicazione APPC con privilegi di aprire una conversazione APPC usando la funzionalità Single Sign-On per conto di qualsiasi utente Windows definito. Questa funzionalità viene definita funzionalità proxy con privilegi. È stata aggiunta un'estensione al verbo APPC MC_ALLOCATE per richiamare questa funzionalità.

    Un'applicazione APPC viene privilegiata tramite l'avvio in un account utente Windows membro di un gruppo di Windows speciale. Quando viene configurato un dominio di sicurezza host, SNA Manager definirà un secondo gruppo di Windows da usare con le funzionalità di sicurezza host di Host Integration Server. Se l'account utente con cui viene eseguito il client effettivo è membro di questo secondo gruppo di Windows, il client ha il privilegio di avviare una conversazione APPC per conto di qualsiasi account utente definito nella cache dell'account host.

    Di seguito viene illustrato il funzionamento della funzionalità proxy con privilegi:

    L'amministratore Host Integration Server crea un dominio di sicurezza host denominato APP. SNA Manager crea ora due gruppi di Windows. Il primo gruppo viene chiamato APP e il secondo viene chiamato APP_PROXY per questo esempio. Gli utenti assegnati al gruppo APP sono abilitati per Single Sign-On. Gli utenti assegnati al gruppo di APP_PROXY sono proxy con privilegi. L'amministratore aggiunge l'Windows'utente AppcUser al gruppo APP_PROXY usando il pulsante Utenti nella finestra di dialogo Proprietà dominio di sicurezza host in Gestione SNA.

    L'amministratore configura quindi un'applicazione APPC nel server Host Integration Server per l'esecuzione come servizio Windows denominato APPCAPP e tale servizio è stato configurato per funzionare con l'account utente AppcUser. Quando appcapp viene eseguita, apre una sessione APPC tramite un verbo ALLOCATE usando il formato VCB esteso e specifica il Windows nome utente dell'utente desiderato, UserA (ad esempio).

    Il servizio SNA vede la richiesta di sessione proveniente da una connessione membro dell'app dominio di sicurezza host. L'interfaccia Client/Server indica al servizio SNA che il client effettivo è AppcUser.

    Il servizio SNA verifica se AppcUser è membro del gruppo di APP_PROXY. Poiché AppcUser è membro di APP_PROXY, il servizio SNA inserisce il nome utente/password per UserA nel comando APPC Attach (FMH-5) e lo invia al tp del partner.

    Per supportare la funzionalità proxy con privilegi, l'applicazione APPC deve implementare la logica di programma seguente:

    L'applicazione APPC deve determinare l'ID utente Windows e il nome di dominio che desidera rappresentare.

    L'applicazione APPC deve impostare i parametri seguenti prima di chiamare il verbo MC_ALLOCATE :

    Abilitare l'uso della struttura estesa del blocco di controlli verbi MC_ALLOCATE impostando il flag AP_EXTD_VCB nel campo opext .

    Impostare la sicurezza su AP_PROXY_SAME, AP_PROXY_PGM o AP_PROXY_STRONG.

    Configurare i puntatori per proxy_user e proxy_domain in modo che puntino a stringhe Unicode contenenti il nome utente e il nome di dominio dell'utente da rappresentare.

Nota

L'applicazione non deve configurare i campi user_id e pwd nel MC_ALLOCATE VCB.

Quando l'applicazione APPC esegue i passaggi precedenti e rilascia il verbo MC_ALLOCATE, il server Host Integration Server eseguirà una ricerca nel dominio di sicurezza host per l'utente specificato Windows e impostare i campi ID utente e password nel messaggio di collegamento FMH-5 inviato al sistema remoto.