ALLOCATE
Il ALLOCATE
verbo viene rilasciato dal programma di transazione (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 usato dal verbo ALLOCATE .
Sintassi
struct 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 conv_type;
unsigned char synclevel;
unsigned char reserv3[2];
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 reserv5[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_B_ALLOCATE.
opext
Parametro fornito. Specifica l'estensione dell'operazione verba, AP_BASIC_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 ALLOCATE include il supporto per il punto di sincronizzazione o il supporto delle funzionalità 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.
conv_type
Parametro fornito. Usato solo da ALLOCATE per specificare il tipo di conversazione da allocare ed è AP_BASIC_CONVERSATION o AP_MAPPED_CONVERSATION.
Se ALLOCATE stabilisce una conversazione mappata, il TP locale deve emettere verbi di conversazione di base e fornire il proprio livello di mapping per convertire i record di dati in record logici e record logici nei record di dati. Il partner TP può emettere verbi di conversazione di base e fornire il livello di mapping oppure può usare verbi di conversazione mappati (se il partner TP usa un'implementazione di APPC che supporta verbi di conversazione mappati). Per altre informazioni, vedere i manuali IBM SNA.
synclevel
Parametro fornito. Specifica il livello di sincronizzazione della conversazione. Determina se i provider di servizi di sicurezza 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.
reserv3
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 Informazioni sui 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_ALLOCATED 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_ALLOCATED specifica che l'lu non restituisce il controllo al TP finché non alloca la sessione specificata da conv_group_ido 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, Host Integration Server tenta di avviarne una. Ciò causa l'attivazione della connessione su richiesta.
reserv4
Campo riservato.
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è impostato su WHEN_CONV_GROUP_ALLOC. Quandortn_ctl specifica un valore diverso e la 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. Per altre informazioni sulle unità LUS predefinite, vedere Guida di Microsoft Host Integration Server.
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 del tipo Set di caratteri EBCDIC:
Lettere maiuscole
Numerali 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. Non è consigliabile usare questo nome in una conversazione di base.
Tp_name
Parametro fornito. Specifica il nome del tp richiamato. Il valore di tp_name specificato da 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.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 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 il server SNA e l'lu peer, il verbo ALLOCATE invierà uno dei tre tipi di messaggi Attach (FMH-5), in questo ordine di precedenza:
Se le unità di archiviazione hanno negoziato la sicurezza "già verificata", il collegamento inviato dal server SNA non includerà il contenuto del campo del parametro pwd specificato in VCB.
Se le unità elaborate hanno negoziato la sicurezza di "verifica permanente", il collegamento inviato dal server SNA includerà il parametro pwd specificato in VCB, ma solo quando il attach è il primo per il parametro user_id specificato dall'inizio della sessione LU-LU e ometterà il parametro pwd in tutti i collegamenti successivi (rilasciati dall'applicazione o da qualsiasi altra applicazione che usa questa tripletta in modalità LU-LU).
Se le unità elaborate non hanno negoziato una delle versioni precedenti, il collegamento inviato dal server SNA ometterà i parametri user_id e 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 ALLOCATE che sta eseguendo è 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.
reserv5
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 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 Informazioni di riferimento su SNA LU6.2: Protocolli peer pubblicati da IBM.
Per 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:
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.
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_BAD_CONV_TYPE (per una conversazione di base)
Codice restituito secondario; il valore specificato per conv_type non è valido.
AP_NO_USE_OF_SNASVCMG (per una conversazione mappata)
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 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 ALLOCATE, può indicare che non è stato trovato 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 ALLOCATE .
Quando ALLOCATE produce questo codice restituito per il sistema configurato con più nodi usando Host Integration Server, 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
ALLOCATE può stabilire una conversazione di base o 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 ALLOCATE sono stringhe EBCDIC o ASCII. Un tp può usare common service verb (CSV) CONVERT per tradurre una stringa da un set di caratteri all'altro.
Per inviare immediatamente la richiesta ALLOCATE , il richiamo di TP può emettere FLUSH o CONFIRM immediatamente dopo ALLOCATE. In caso contrario, la richiesta ALLOCATE si accumula con altri dati nel buffer di invio dell'unità lu locale fino a quando il buffer non è pieno.
Eseguendo CONFIRM dopo ALLOCATE, la chiamata di TP 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 ALLOCATE deve corrispondere al nome di una modalità configurata per il nodo tp richiamato e associato durante la configurazione con l'lu del 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 password. Si tratta di una funzionalità di sicurezza supportata dal sistema operativo IBM i 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 IBM i.
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, il server SNA crittografa automaticamente la password di sicurezza della conversazione LU 6.2 inclusa nel messaggio di collegamento FMH-5. Le applicazioni APPC che usano Host Integration Server sfruttano automaticamente questa funzionalità impostando il campo di sicurezza di VCB su AP_PGM o AP_STRONG nella richiesta 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 ALLOCATE . Questa opzione viene implementata come definito in IBM i V3R1 ed è documentata nel riferimento programmatore IBM i CPI-C come CM_SECURITY_PROGRAM_STRONG, in cui il campo LU 6.2 pwd (password) viene crittografato prima che venga trasmesso attraverso la rete fisica.
Le funzionalità di sostituzione delle password sono attualmente supportate solo da IBM i V3R1 o versioni successive. Se il sistema remoto non supporta questa funzionalità, il server SNA annulla l'associazione della 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 Windows, ma il client può essere in esecuzione in qualsiasi sistema operativo supportato dalle 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 server SNA, il server cerca l'account host e la password corrispondenti all'account di 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, il server SNA 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 Host Integration Server:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\snaservr\parameters\NOPWDSUB: REG_SZ: SÌ
Quando questo parametro viene specificato nel Registro di sistema, il supporto per la sostituzione delle password verrà disabilitato.
Sono stati apportati diversi aggiornamenti a 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 ALLOCATE per richiamare questa funzionalità.
Un'applicazione APPC viene privilegiata tramite l'avvio in un account utente di 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 è in esecuzione 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 di 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'utente di Windows AppcUser al gruppo di APP_PROXY usando il pulsante Utenti nella finestra di dialogo Proprietà dominio di sicurezza host in SNA Manager.
L'amministratore configura quindi un'applicazione APPC nel server di integrazione host per l'esecuzione come servizio windows denominato APPCAPP e tale servizio è stato configurato per funzionare con l'account utente AppcUser. Quando APPCAPP viene eseguito, apre una sessione APPC tramite un verbo ALLOCATE usando il formato VCB esteso e specifica il nome utente di Windows 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 e il nome di dominio di Windows che desidera rappresentare.
L'applicazione APPC deve impostare i parametri seguenti prima di chiamare il verbo ALLOCATE :
Abilitare l'uso della struttura estesa del blocco del controllo verbo 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 in ALLOCATE VCB.
Quando l'applicazione APPC esegue i passaggi precedenti e rilascia il verbo ALLOCATE , il server Host Integration Server eseguirà una ricerca nel dominio di sicurezza host per l'utente windows specificato e imposterà i campi ID utente e password nel messaggio Di collegamento FMH-5 inviato al sistema remoto.