MQCONNX - Gestore code di connessione (esteso)
La chiamata MQCONNX connette un programma applicativo a un gestore code. Fornisce un handle di connessione del gestore code, utilizzato dall'applicazione nelle successive chiamate IBM® MQ .
- Questa chiamata viene supportata su tutti i sistemi IBM MQ e i client IBM MQ connessi a questi sistemi.
- Su IBM i, questa chiamata non è supportata per le applicazioni in esecuzione in modalità di compatibilità.
Sintassi
MQCONNX (QMgrName, ConnectOpts, Hconn, CompCode, Reason )
Parametri
- QMgrName
- Tipo: MQCHAR48 - input
Per i dettagli, consultare il parametro
QMgrNamedescritto in MQCONN - Connetti gestore code . - ConnectOpts
- Tipo: MQCNO - input/output
Consultare MQCNO - Opzioni di connessione per i dettagli.
- Hconn
- Tipo: MQHCONN - output
Questo handle rappresenta la connessione al gestore code. Specificarlo su tutte le chiamate di accodamento messaggi successive emesse dall'applicazione. Cessa di essere valida quando viene emessa la chiamata MQDISC o quando termina l'unità di elaborazione che definisce l'ambito dell'handle.
IBM MQ ora fornisce la libreria mqm con pacchetti client e pacchetti server. Ciò significa che quando viene effettuata una chiamata MQI che si trova nella libreria mqm, il tipo di connessione viene controllato per verificare se si tratta di una connessione client o server e quindi viene effettuata la chiamata sottostante corretta. Pertanto, un'uscita passata a Hconn può ora essere collegata alla libreria mqm, ma utilizzata su un'installazione client.
Ambito handle: l'ambito dell'handle restituito dipende dalla chiamata utilizzata per la connessione al gestore code (MQCONN o MQCONNX). Se la chiamata utilizzata è MQCONNX, l'ambito dell'handle dipende anche dall'opzione MQCNO_HANDLE_SHARE_ * specificata nel campoOptionsdella struttura MQCNO.- Se la chiamata è MQCONN o viene specificata l'opzione MQCNO_HANDLE_SHARE_NONE, l'handle restituito è un handle non condiviso .
L'ambito di un handle non condiviso è l'unità più piccola di elaborazione parallela supportata dalla piattaforma su cui è in esecuzione l'applicazione (consultare Tabella 1 per i dettagli); l'handle non è valido all'esterno dell'unità di elaborazione parallela da cui è stata emessa la chiamata.
- Se si specifica l'opzione MQCNO_HANDLE_SHARE_BLOCK o MQCNO_HANDLE_SHARE_NO_BLOCK, l'handle restituito è un handle condiviso .
L'ambito di un handle condiviso è il processo che possiede il thread da cui è stata emessa la chiamata; l'handle può essere utilizzato da qualsiasi thread che appartiene a tale processo. Non tutte le piattaforme supportano i thread.
- Se la chiamata MQCONN o MQCONNX non riesce con codice di completamento uguale a MQCC_FAILED, il valore Hconn non è definito.
Tabella 1. Ambito degli handle non condivisi su varie piattaforme Piattaforma Ambito dell'handle non condiviso z/OS® - CICS®: l'attività CICS
- IMS: l'attività, fino al punto di sincronizzazione successivo (escludendo le attività secondarie dell'attività)
- z/OS batch e TSO: l'attività (escludendo le attività secondarie dell'attività)
IBM i Lavoro sistemi UNIX Sottoprocesso Applicazioni Windows a 16 bit Processo Applicazioni Windows a 32 bit Sottoprocesso Su z/OS per le applicazioni CICS e su IBM i per le applicazioni in esecuzione in modalità di compatibilità, il valore restituito è:- DEF_MQH_HCONN
- Handle di connessione predefinito.
- Se la chiamata è MQCONN o viene specificata l'opzione MQCNO_HANDLE_SHARE_NONE, l'handle restituito è un handle non condiviso .
- CompCode
- Tipo: MQLONG - output
Per i dettagli, consultare il parametro
CompCodedescritto in MQCONN - Connetti gestore code . - Motivo
- Tipo: MQLONG - output
I seguenti codici possono essere restituiti dalle chiamate MQCONN e MQCONNX. Per un elenco di codici aggiuntivi che possono essere restituiti dalla chiamata MQCONNX, consultare i seguenti codici.
SeCompCodeè MQCC_OK:- MQRC_NONE
- (0, X'000 ') Nessun motivo per segnalare.
SeCompCodeè MQCC_WARNING:- MQRC_GIÀ_COLLEGATO
- (2002, X'7D2') Applicazione già collegata.
- ERRORE DI CARICAMENTO MQRC_CLUSTER_EXIT_LOAD
- (2267, X'8DB') Impossibile caricare il carico di lavoro del cluster.
- MQRC_SSL_ALREADY_INITIALIZED
- (2391, X' 957 ') SSL già inizializzato.
SeCompCodeè MQCC_FAILED:- ERRORE CARICAMENTO MQRC_ADAPTER_CONN_LOAD
- (2129, X'851 ') Impossibile caricare il modulo di collegamento dell'adattatore.
- ERRORE DEFS MQRC_ADAPTER_
- (2131, X'853 ') Modulo definizione sottosistema adattatore non valido.
- ERRORE CARICAMENTO MQRC_ADAPTER_DEFS_
- (2132, X'854 ') Impossibile caricare il modulo di definizione del sottosistema dell'adattatore.
- MQRC_ADAPTER_NON_DISPONIBILE
- (2204, X'89C') Adattatore non disponibile.
- MQRC_ADAPTER_SERV_LOAD_ERROR
- (2130, X'852 ') Impossibile caricare il modulo di servizio adattatore.
- SCARSE_ARCHIVIAZIONE_ADATTATORE_MQRC_
- (2127, X'84F') Memoria insufficiente per l'adattatore.
- MQRC_ANOTHER_Q_MGR_CONNECTED
- (2103, X'837 ') Un altro gestore code è già connesso.
- ERRORE USCITA MQRC_API
- (2374, X' 946 ') Uscita API non riuscita.
- MQRC_API_EXIT_INIT_ERROR
- (2375, X' 947 ') Inizializzazione dell'uscita API non riuscita.
- ERRORE USCITA MQRC_API
- (2376, X' 948 ') Terminazione uscita API non riuscita.
- MQRC_ASID_MISMATCH
- (2157, X'86D') Gli ASID primari e domestici differiscono.
- ERRORE MQRC_BUFFER_LENGTH
- (2005, X'7D5') Il parametro della lunghezza del buffer non è valido.
- MQRC_CALL_IN_PROVERDE
- (2219, X'8AB') Chiamata MQI inserita prima del completamento della chiamata precedente.
- MQRC_CONNID_IN_USE
- (2160, X'870 ') Identificativo di collegamento già in uso.
- MQRC_CONNESSIONE_INTERROTTA
- (2009, X'7D9') Connessione al gestore di code persa.
- ERRORE MQRC_CONNECTION_
- (2273, X'8E1') Errore nell'elaborazione della chiamata MQCONN.
- MQRC_CONNECTION_NON_DISPONIBILE
- (2568, X'A08') Si verifica su una chiamata MQCONN o MQCONNX quando il gestore code non è in grado di fornire una connessione del tipo di connessione richiesto sull'installazione corrente. Non è possibile effettuare una connessione client solo su un'installazione server. Non è possibile stabilire una connessione locale solo su un client.
- MQRC_CONNECTION_QUIESCING
- (2202, X'89A') Connessione in quiescenza.
- MQRC_CONNESSIONE_ARRESTO
- (2203, X'89B') Chiusura della connessione.
- MQRC_CRYPTO_HARDWARE_ERROR
- (2382, X'94E') Errore di configurazione hardware crittografico.
- MQRC_DUPLICA_RECOV_COORD
- (2163, X'873 ') Il coordinatore di recupero esiste.
- ERRORE MQRC_ENVIRONMENT_ERROR
- (2012, X'7DC') Chiamata non valida nell'ambiente.
Inoltre, sulla chiamata MQCONNX, passando il blocco di controllo Parametri MQCSP - Sicurezza da un'applicazione CICS o IMS .
- ERRORE MQRC_HCONN
- (2018, X'7E2') Maniglia di connessione non valida.
- MQRC_HOST_NON_DISPONIBILE
- (2538, X'9EA') Una chiamata MQCONN è stata emessa da un client per connettersi a un gestore di code, ma il tentativo di allocare una conversazione al sistema remoto è fallito.
- MQRC_INSTALLATION_MISMATCH
- (2583, X'A17') Mancata corrispondenza tra l'installazione del gestore code e la libreria selezionata.
- MQRC_KEY_REPOSITORY_ERROR
- (2381, X'94D') Deposito chiavi non valido.
- MQRC_MAX_CONNS_LIMIT_REACHED
- (2025, X'7E9') Numero massimo di connessioni raggiunto.
- MQRC_NON_AUTORIZZATO
- (2035, X'7F3') Accesso non autorizzato.
- MQRC_OPEN_NON RIUSCITO
- (2137, X'859 ') Oggetto non aperto correttamente.
- ERRORE MQRC_Q_MGR_NAME_
- (2058, X'80A') Nome del gestore della coda non valido o non conosciuto.
- MQRC_Q_MGR_NON_DISPONIBILE
- (2059, X'80B') Il gestore della coda non è disponibile per la connessione.
- MQRC_Q_MGR_QUIESCING
- (2161, X'871 ') Gestore code in fase di sospensione.
- MQRC_Q_MGR_STOPPING
- (2162, X'872 ') Chiusura del gestore code.
- PROBLEMA_RISORSA_MQRC_
- (2102, X'836 ') Risorse di sistema insufficienti.
- ERRORE MQRC_SECURITY_ERROR
- (2063, X'80F') Si è verificato un errore di sicurezza.
- ERRORE MQRC_SSL_INITIALIZATION_ERROR
- (2393, X' 959 ') Errore di inizializzazione SSL.
- MQRC_STORAGE_NON_DISPONIBILE
- (2071, X'817 ') Memoria disponibile insufficiente.
- ERRORE MQRC_UNEXPECTED_
- (2195, X'893 ') Si è verificato un errore non previsto.
I seguenti codici motivo aggiuntivi possono essere restituiti dalla chiamata MQCONNX:
SeCompCodeè MQCC_FAILED:- ERRORE MQRC_AIR
- (2385, X' 951 ') Record informazioni di autenticazione non valido.
- ERRORE MQRC_AUTH_INFO_CONN_NAME_ERROR
- (2387, X' 953 ') Nome connessione informazioni di autenticazione non valido.
- ERRORE MQRC_AUTH_INFO_REC_COUNT_
- (2383, X'94F') Il conteggio dei record delle informazioni di autenticazione non è valido.
- ERRORE MQRC_AUTH_INFO_REC_
- (2384, X' 950 ') Campi record informazioni di autenticazione non validi.
- MQRC_AUTH_INFO_TYPE_ERRORE
- (2386, X' 952 ') Tipo di informazioni di autenticazione non valido.
- ERRORE MQRC_CD
- (2277, X'8E5') La definizione del canale non è valida.
- ERRORE MQRC_CLIENT_CONN_
- (2278, X'8E6') I campi della connessione client non sono validi.
- ERRORE_ERRORE_MQRC
- (2139, X'85B') Struttura delle opzioni di connessione non valida.
- MQRC_CONN_TAG_IN_USO
- (2271, X'8DF') Tag di connessione in uso.
- MQRC_CONN_TAG_NO_USABLE
- (2350, X'92E') Tag di connessione non utilizzabile.
- ERRORE MQRC_LDAP_PASSWORD_ERRORE
- (2390, X' 956 ') Password LDAP non valida.
- ERRORE MQRC_LDAP_USER_NAME_ERROR
- (2388, X' 954 ') I campi del nome utente LDAP non sono validi.
- MQRC_LDAP_NOME_UTENTE_LUNGHEZZA_ERR
- (2389, X' 955 ') Lunghezza nome utente LDAP non valida.
- ERRORE MQRC_OPTIONS_
- (2046, X'7FE') Opzioni non valide o non coerenti.
- ERRORE MQRC_SCO
- (2380, X'94C') Struttura delle opzioni di configurazione SSL non valida.
- ERRORE MQRC_SSL_CONFIG
- (2392, X' 958 ') Errore di configurazione SSL.
Per informazioni dettagliate su questi codici, vedere Messaggi e codici di errore.
Note d'utilizzo
- Il parametro
ConnectOptsè dichiarato di tipo MQCNO. Se l'applicazione è in esecuzione come IBM MQ MQI cliente si desidera specificare i parametri del canale di connessione client, dichiarare il parametroConnectOptscome di tipoAny, in modo che l'applicazione possa specificare una struttura MQCNOCD sulla chiamata al posto di una struttura MQCNO. Tuttavia, ciò significa che non è possibile controllare il parametroConnectOptsper assicurarsi che sia il tipo di dati corretto.
Richiamo C
MQCONNX (QMgrName, &ConnectOpts, &Hconn, &CompCode, &Reason);
MQCHAR48 QMgrName; /* Name of queue manager */
MQCNO ConnectOpts; /* Options that control the action of MQCONNX */
MQHCONN Hconn; /* Connection handle */
MQLONG CompCode; /* Completion code */
MQLONG Reason; /* Reason code qualifying CompCode */
Richiamo COBOL
CALL 'MQCONNX' USING QMGRNAME, CONNECTOPTS, HCONN, COMPCODE,
REASON.
** Name of queue manager
01 QMGRNAME PIC X(48).
** Options that control the action of MQCONNX
01 CONNECTOPTS.
COPY CMQCNOV.
** Connection handle
01 HCONN PIC S9(9) BINARY.
** Completion code
01 COMPCODE PIC S9(9) BINARY.
** Reason code qualifying COMPCODE
01 REASON PIC S9(9) BINARY.
PL/I invocazione
call MQCONNX (QMgrName, ConnectOpts, Hconn, CompCode, Reason);
dcl QMgrName char(48); /* Name of queue manager */
dcl ConnectOpts like MQCNO; /* Options that control the action of
MQCONNX */
dcl Hconn fixed bin(31); /* Connection handle */
dcl CompCode fixed bin(31); /* Completion code */
dcl Reason fixed bin(31); /* Reason code qualifying CompCode */
Chiamata High Level Assembler
CALL MQCONNX,(QMGRNAME,CONNECTOPTS,HCONN,COMPCODE,REASON)
QMGRNAME DS CL48 Name of queue manager
CONNECTOPTS CMQCNOA , Options that control the action of MQCONNX
HCONN DS F Connection handle
COMPCODE DS F Completion code
REASON DS F Reason code qualifying COMPCODE
Richiamo Visual Basic
MQCONNX QMgrName, ConnectOpts, Hconn, CompCode, Reason
Dim QMgrName As String*48 'Name of queue manager'
Dim ConnectOpts As MQCNO 'Options that control the action of'
'MQCONNX'
Dim Hconn As Long 'Connection handle'
Dim CompCode As Long 'Completion code'
Dim Reason As Long 'Reason code qualifying CompCode'