Condividi tramite


MC_ALLOCATE

Il verbo MC_ALLOCATE 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 (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 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.

    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_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, 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è 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.

    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 nella chiamata TP deve corrispondere al valore di tp_name specificato daRECEIVE_ALLOCATE nel TP richiamato.

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

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

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

    Se tp_name è minore di 64 byte, usare spazi EBCDIC (0x40) per riquadrirlo a destra.

    La convenzione SNA è che un nome TP del servizio può avere 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 necessarie all'lu partner per convalidare l'accesso al TP richiamato. Vedere la sezione Valori possibili per il parametro Security in questo argomento.

    Reserv6
    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 ed è distinzione tra maiuscole e minuscole. Può essere costituito dai seguenti caratteri EBCDIC:

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

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

    Se la password è minore di 10 byte, usare spazi EBCDIC (0x40) per tastierarlo 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 partner TP. È necessario 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 ed è distinzione tra maiuscole e minuscole. Deve corrispondere a uno degli identificatori utente configurati per il partner TP.

    Il parametro può essere costituito dai seguenti caratteri EBCDIC:

  • Lettere maiuscole e minuscole

  • Numeri da 0 a 9

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

    Se user_id è minore di 10 byte, usare spazi EBCDIC (0x40) per riquadrirlo 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 sulla configurazione ambientale necessarie da un sistema operativo TP o remoto partner. I dati PIP devono seguire il formato GDS (General Data Stream). 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 adattarsi interamente all'interno di questa area.

    reserv7
    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 partner. I nomi sono separati da un periodo EBCDIC (.).

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

  • 18Uppercase lettere

  • Numeri da 0 a 9

  • Caratteri speciali $, #e @

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

    reserv8
    Campo riservato.

    proxy_user
    Parametro fornito. Specifica una stringa 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 di AP_EXTD_VCB è impostato sul campo opext , che indica un VCB esteso.

    proxy_domain
    Parametro fornito. Specifica una stringa 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 di AP_EXTD_VCB è impostato sul campo opext , che indica un VCB esteso.

    reserv9
    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 di conversazione.

  • AP_PGM per un TP richiamato che usa la sicurezza della conversazione 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 della conversazione e richiede quindi un identificatore utente e una password. I puntatori devono essere configurati per proxy_user e proxy_domain per puntare 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 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 per puntare 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 richiama 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 della conversazione 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à elaborate hanno negoziato la sicurezza di "verifica permanente", il collegamento inviato da Host Integration Server 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 usando questa tripletta in modalità LU-LU).

    3. Se le unità di archiviazione non hanno negoziato una delle versioni precedenti, il collegamento inviato da Host Integration Server 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 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 TP 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 richiamato può emettere MC_FLUSH o MC_CONFIRMimmediatamente dopoMC_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.

Emettendo MC_CONFIRM dopo MC_ALLOCATE, il TP richiamato può determinare immediatamente se l'allocazione è riuscita (se la sincronizzazione è impostata su AP_CONFIRM_SYNC_LEVEL).

In genere, il valore del parametro mode_namedel verbo MC_ALLOCATE deve corrispondere al nome di una modalità configurata per il nodo 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À 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 IBM i (V3R1) che crittografa qualsiasi password che scorre tra due nodi in un messaggio Di collegamento. Un flusso di password in un collegamento ogni volta che un utente richiama un programma di transazione APPC che specifica un identificatore utente e una password. Ad esempio, questo accade ogni volta che chiunque accede a un IBM i.

Il supporto per la sostituzione delle password è indicato impostando bit 5 in byte 23 della richiesta BIND su 1 (che indica che la sostituzione della 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. Le applicazioni APPC host di Integration Server sfruttano automaticamente questa funzionalità impostando il campo di sicurezza del 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 nel VCB nella richiesta di MC_ALLOCATE . Questa opzione viene implementata come definita 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 di scorrere la rete fisica.

La funzionalità di sostituzione delle password è attualmente supportata solo da IBM i V3R1 o versione successiva. Se il sistema remoto non supporta questa funzionalità, Host Integration Server eseguirà UNBIND la sessione con il codice di senso di 10060006. I due nodi negoziano se supportano 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 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 con codice rigido speciale MS$SAME e password MS$SAME. Quando questa allocazione di sessione passa dal client a Host Integration Server, il server Host Integration Server cerca l'account host e la password corrispondenti all'account Windows in cui il client è connesso e sostituisce le informazioni sull'account host nel messaggio di collegamento APPC inviato all'host.

Nota

Non è consentito al nodo remoto impostare il bit che specifica la sostituzione della password e non aggiungere i dati casuali.

Secondo IBM, esistono implementazioni di sostituzione password LU 6.2 che non supportano la sostituzione delle password, ma fanno eco al bit di sostituzione della password in Host Integration Server, senza specificare dati casuali. A tale scopo, Il server di integrazione host verrà unbind la sessione con il codice sense 10060006.Questo codice di senso viene interpretato come:

  • 1006 = Campo o parametro obbligatorio mancante.

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

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

    La soluzione corretta consiste nel correggere l'implementazione non riuscita. Tuttavia, come soluzione alternativa a breve termine, è possibile impostare l'impostazione del Registro di sistema SNA server di integrazione host seguente :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 di Host Integration Server 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. Si tratta di una funzionalità proxy con privilegi. Un'estensione è stata aggiunta al verbo appC MC_ALLOCATE per richiamare questa funzionalità.

    Un'applicazione APPC diventa privilegiata iniziando 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 in 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 come funziona la 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 APP_PROXY usando il pulsante Utenti nella finestra di dialogo Proprietà Dominio 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 operare nell'account utente AppcUser. Quando APPCAPP viene eseguita, 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 visualizza 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 APP_PROXY. Poiché AppcUser è membro di APP_PROXY, il servizio SNA inserisce il comando Username/Password for UserA nel comando APPC Attach (FMH-5) e lo invia al partner TP.

    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 di 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 del blocco di controllo verbo esteso MC_ALLOCATE impostando il flag di 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 per puntare 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 nella MC_ALLOCATE VCB.

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