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 .

La chiamata MQCONNX è simile alla chiamata MQCONN, ma MQCONNX consente di specificare opzioni per controllare il funzionamento della chiamata.
  • 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à.
Non è possibile stabilire una connessione client solo su un'installazione server e non è possibile stabilire una connessione locale solo su un'installazione client.

Sintassi

MQCONNX (QMgrName, ConnectOpts, Hconn, CompCode, Reason )

Parametri

QMgrName
Tipo: MQCHAR48 - input

Per i dettagli, consultare il parametro QMgrName descritto 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 campo Options della 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.
CompCode
Tipo: MQLONG - output

Per i dettagli, consultare il parametro CompCode descritto 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.

Se CompCode è MQCC_OK:
MQRC_NONE
(0, X'000 ') Nessun motivo per segnalare.
Se CompCode è 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.
Se CompCode è 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:

Se CompCode è 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

Per il linguaggio di programmazione Visual Basic, si applica il seguente punto:
  • 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 parametro ConnectOpts come di tipo Any, 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 parametro ConnectOpts per assicurarsi che sia il tipo di dati corretto.

Richiamo C

MQCONNX (QMgrName, &ConnectOpts, &Hconn, &CompCode, &Reason);
Dichiarare i parametri come segue:
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.
Dichiarare i parametri come segue:
**   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);
Dichiarare i parametri come segue:
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)
Dichiarare i parametri come segue:
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
Dichiarare i parametri come segue:
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'