Condividi tramite


STANZIARE

Il ALLOCATE comando viene emesso dal programma chiamante di transazione (TP). Alloca una sessione tra l'unità logica locale (LU) e l'unità logica del partner e (insieme a RECEIVE_ALLOCATE) stabilisce una conversazione tra il TP richiamato e il TP richiamato. Dopo l'esecuzione di questo 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 utilizzato 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];  
};   

Membri

Opcode
Parametro fornito. Specifica il codice dell'operazione verbale, AP_B_ALLOCATE.

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

reserv2
Campo riservato.

primary_rc
Parametro restituito. Specifica il codice di ritorno primario impostato da APPC al completamento del comando. I codici di ritorno validi variano a seconda del verbo APPC emesso. Vedere Codici di ritorno per i codici di errore validi di questo verbo.

secondary_rc
Parametro restituito. Specifica il codice di ritorno secondario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC rilasciato. Vedere i codici di ritorno per i codici di errore validi per questo verbo.

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 TP.

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 utilizzare verbi di conversazione di base e fornire il proprio layer di mapping per convertire i record di dati in record logici e i record logici in record di dati. Il tp del partner può emettere verbi di conversazione di base e fornire il livello di mapping oppure può usare verbi di conversazione mappati (se il tp del partner 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 TP possono richiedere la conferma della ricezione dei dati e confermare la ricezione dei dati.

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

  • AP_CONFIRM_SYNC_LEVEL specifica che i TP possono utilizzare l'elaborazione della conferma durante questa conversazione.

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

    reserv3
    Campo riservato.

    rtn_ctl
    Parametro fornito. Specifica quando la 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 assegna una sessione di vittoria di contesa, se una è immediatamente disponibile, e restituisce il controllo al TP.

  • AP_WHEN_SESSION_ALLOCATED specifica che la LU non restituisce il controllo al TP finché non alloca una sessione o rileva uno degli errori documentati nei Codici di ritorno in questo argomento. Se il limite di sessione è zero, la LU restituisce immediatamente il controllo. Se una sessione non è disponibile, il TP attende che se ne liberi una.

  • AP_WHEN_SESSION_FREE specifica che la LU alloca una sessione vincente o perdente 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 di ritorno in questo argomento, la chiamata restituirà immediatamente l'errore nei campi primary_rc e secondary_rc.

  • AP_WHEN_CONWINNER_ALLOCATED specifica che il LU non restituisce il controllo fino a quando non alloca una sessione del vincitore della contesa o rileva uno degli errori documentati nei Codici di Ritorno in questo argomento. Se il limite di sessione è zero, la LU restituisce immediatamente il controllo. Se una sessione non è disponibile, il TP attende che se ne liberi una.

  • AP_WHEN_CONV_GROUP_ALLOCATED specifica che il 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 si liberi.

Annotazioni

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ò determina 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 è necessario solo se rtn_ctlè impostato su WHEN_CONV_GROUP_ALLOC. Quandortn_ctl specifica un valore diverso e il primary_rc viene AP_OK, si tratta di un valore restituito.

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

plu_alias
Parametro fornito. Specifica l'alias con cui il LU partner è noto al TP locale.

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

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

  • Lettere maiuscole

  • Numerali 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, aggiungerlo a destra con spazi ASCII (0x20).

    Se si desidera specificare il partner LU con il parametro fqplu_name, inserire questo parametro con zeri binari.

    Per un utente o un gruppo che utilizza TPs, emulatori 5250 e/o applicazioni APPC, l'amministratore di sistema può assegnare LUs locali e remote predefinite. In questo caso, il campo viene lasciato vuoto o nullo e le unità logiche predefinite vengono utilizzate quando l'utente o il membro del gruppo avvia un programma APPC. Per altre informazioni sulle unità di elaborazione predefinite, vedere La 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 set di caratteri di tipo A 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 richiamato 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ò 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 richieste dal partner LU 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 di 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 privilegiato che utilizza la protezione della conversazione e quindi richiede 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 utilizzando un proxy privilegiato 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 invocato con proxy con privilegi che utilizza 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 avanzata delle conversazioni), questa chiamata non riesce.

  • 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 richiama a sua volta 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 quest'ordine di precedenza:

  1. Se le unità organizzative hanno negoziato la sicurezza "già verificata", il collegamento inviato dal server SNA non includerà il contenuto del campo del parametro pwd specificato nel VCB.

  2. Se un'LU ha negoziato la sicurezza di "verifica persistente", l'Attach inviato dal server SNA includerà il parametro pwd specificato nel VCB, ma solo quando l'Attach è il primo per il parametro user_id specificato dall'inizio della sessione di LU-LU e ometterà il parametro pwd in tutti gli Attach successivi (rilasciati dall'applicazione o da qualsiasi altra applicazione che utilizza questo triplo in modalità LU-LU).

  3. Se le LUs non hanno negoziato alcuno dei suddetti, allora l'Attach inviato dal server SNA ometterà sia i parametri user_id che pwd in tutti gli Attach.

    L'applicazione non è in grado di indicare quale modalità di sicurezza è stata negoziata tra le LU, né può indicare se il verbo ALLOCATE che sta eseguendo è il primo per il triplet di modalità LU-LU. Pertanto, l'applicazione deve sempre impostare i campi dei parametri user_id e pwd nel vcb quando la sicurezza è impostata su AP_SAME.

    Per ulteriori informazioni sulla verifica continua e sulla sicurezza già verificata, consultare la Guida ai formati SNA, sezione "Intestazione FM 5: Allegato (LU 6.2)".

  • AP_STRONG per un TP richiamato che usa la sicurezza delle conversazioni e quindi richiede 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 avanzata delle conversazioni), questa chiamata non riesce.

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

    reserv5
    Campo riservato.

    Pwd
    Parametro fornito. Specifica la password associata a 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 riempirla a destra.

    Per utilizzare la funzionalità di accesso automatico APPC, la stringa di caratteri pwd deve essere codificata in modo fisso a MS$SAME. Per informazioni dettagliate, vedere la sezione Osservazioni.

    user_id
    Parametro fornito. Specifica l'identificatore utente necessario per accedere al tp del partner. È 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 e fa distinzione tra maiuscole e minuscole. Deve corrispondere a uno degli identificatori utente configurati per il partner TP.

    Il parametro può essere costituito dai caratteri EBCDIC seguenti:

  • 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 è necessario usare la funzionalità di accesso automatico APPC, la stringa di caratteri user_id deve essere codificata in modo fisso in MS$SAME. Per informazioni dettagliate, vedere la sezione Osservazioni.

    pip_dlen
    Parametro fornito. Specifica la lunghezza dei parametri di inizializzazione del programma (PIP) 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 ambientale richieste da un partner TP o da un sistema operativo remoto. I dati PIP devono seguire il formato generale del flusso di dati (GDS). Per altre informazioni, vedere SNA LU6.2 Reference: Peer Protocols published by IBM (Informazioni di riferimento su SNA LU6.2: Protocolli peer pubblicati da IBM).

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

    reserv7
    Campo riservato.

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

    Questo nome deve essere fornito 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
    Campo riservato.

    proxy_user
    Parametro fornito. Specifica un LPWSTR che punta a una stringa Unicode contenente il nome utente da impersonare utilizzando la funzionalità proxy privilegiata. Questo campo può essere utilizzato solo quando il bit AP_EXTD_VCB è impostato sul 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 impersonare tramite la funzionalità proxy privilegiata. Questo campo può essere utilizzato solo quando il bit AP_EXTD_VCB è impostato sul campo opext , che indica un VCB esteso.

    reserv9
    Campo riservato.

Codici di ritorno

AP_OK
Il codice di ritorno primario; il verbo è stato eseguito correttamente.

AP_NON_RIUSCITO
Codice di restituzione primario; il parametro fornito rtn_ctl ha specificato il ritorno immediato (AP_IMMEDIATE) del controllo al TP e l'unità logica locale non dispone di una sessione vincente di contesa disponibile.

AP_PARAMETER_CHECK
Codice di ritorno primario; il verbo non è stato eseguito a causa di un errore nei parametri.

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 (Modalità Partner Sconosciuta)

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 era corretto.

AP_ALLOCATION_ERROR
Codice di ritorno 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.

Errore di Allocazione AP Senza Tentativi

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 ritentare 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_SOTTOINSIEME_DI_COMUNICAZIONE_TERMINATO_ANOMALO
Codice restituito primario; indica una delle condizioni seguenti:

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

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

  • La SnaBase nel computer del TP ha riscontrato un ABEND.

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

    AP_COMM_SUBSYSTEM_NOT_LOADED
    Codice di ritorno primario; impossibile caricare o concludere un componente necessario 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 possibile trovare alcun sistema di comunicazioni per supportare la 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 di 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 la LU locale (quando è emesso TP_STARTED) non è configurato in alcun nodo attivo. Il problema potrebbe essere uno dei seguenti:

  • Il nodo con l'Unità Logica locale non è avviato.

  • La LU locale non è configurata.

    AP_SEGMENTO_VERBO_NON_VALIDO
    Codice di ritorno primario; il VCB è esteso oltre la fine del segmento dati.

    AP_STACK_TROPPO_PICCOLO
    Codice di ritorno primario; la dimensione dello stack dell'applicazione è troppo piccola per eseguire il verbo. Aumentare le dimensioni dello stack dell'applicazione.

    AP_CONV_BUSY
    Codice di ritorno primario; può esserci 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 di ritorno primario; il thread chiamante è già in una chiamata bloccante.

    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 del sistema operativo viene restituito tramite il secondary_rc. Viene visualizzato nell'ordine dei byte invertito di Intel. Se il problema persiste, rivolgersi all'amministratore di sistema.

Osservazioni:

ALLOCATE può stabilire una conversazione di base o mappata.

Lo stato della conversazione viene azzerato quando il TP emette questo verbo. Al termine dell'esecuzione (primary_rc è AP_OK), lo stato passa a SEND. Se il verbo non viene eseguito, lo stato rimane invariato.

Diversi parametri di ALLOCATE sono stringhe EBCDIC o ASCII. Un TP può usare il verbo CSV (Common Service Verb) CONVERT per convertire una stringa da un set di caratteri all'altro.

Per inviare immediatamente la richiesta ALLOCATE , il tp di richiamo 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, il tp di richiamo 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 associata durante la configurazione con l'lu partner.

Se una delle modalità associate all'lu partner nel nodo tp richiamato è una modalità implicita, la sessione stabilita tra le due unità di elaborazione 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 dal sistema operativo IBM i che crittografa qualsiasi password che scorre tra due nodi in un messaggio Attach. 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, questo 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 Attach 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 passi 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 di senso 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 la 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.

Annotazioni

È illegale per il nodo remoto impostare il bit che specifica la sostituzione delle password e non aggiungere i dati casuali.

Secondo IBM, esistono 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 unBINDrà la sessione con il codice di senso 10060006.Questo codice di senso 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 consiste nel correggere l'implementazione non riuscita. 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 operazione viene definita funzionalità proxy con privilegi. È stata aggiunta un'estensione al verbo ALLOCA APPC per richiamare questa funzionalità.

    Un'applicazione APPC diventa 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 APP_PROXY utilizzando il pulsante Utenti nella finestra di dialogo delle proprietà del dominio di sicurezza dell'host in SNA Manager.

    L'amministratore configura quindi un'applicazione APPC in Host Integration Server per l'esecuzione come servizio di 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 nome utente di Windows dell'utente desiderato, UserA (ad esempio).

    Il servizio SNA vede la richiesta di sessione proveniente da una connessione che è membro del dominio di sicurezza host APP. 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 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 di controllo del verbo ALLOCATE tramite l'impostazione del 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.

Annotazioni

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 imposta i campi ID utente e password nel messaggio di collegamento FMH-5 inviato al sistema remoto.