Client IBM MQ supportato: comportamento predefinito dei canali di connessione client e server
Il valore predefinito per le connessioni client e server è condividere un canale MQI. Si utilizza il parametro SHARECNV (condividi conversazioni) per specificare il numero massimo di conversazioni che possono essere condivise su una determinata istanza del canale client TCP/IP.
I valori possibili sono i seguenti:
- SHARECNV (2) a SHARECNV (999999999)
- Ciascuno di questi valori specifica il numero di conversazioni condivise. Se il valore della connessione client SHARECNV non corrisponde a quello della connessione server SHARECNV , viene utilizzato il valore più basso. Il valore predefinito è
SHARECNV(10), che specifica 10 thread per eseguire fino a 10 conversazioni client per istanza di canale. Tuttavia, sui server distribuiti ci sono problemi di prestazioni con i canali SHARECNV che possono essere alleviati utilizzandoSHARECNV(1). Consultare Ottimizzazione dei canali di connessione client e server. - SHARECNV (1)
- Questo valore specifica che non viene condivisa alcuna conversazione su un socket TCP/IP. Le prestazioni sui server distribuiti sono simili a quelle per un valore di
0. L'heartbeat client (in una chiamata MQGET o meno) e la lettura anticipata sono disponibili e la sospensione del canale è più controllabile. - SHARECNV (0)
- Questo valore specifica che non viene condivisa alcuna conversazione su un socket TCP/IP. Utilizzare il valore
0solo se si dispone di applicazioni client esistenti che non vengono eseguite correttamente quando si imposta SHARECNV su1o su un valore superiore.
Per tutti i valori SHARECNV di
1 o superiori, il canale supporta le seguenti funzioni:- Heartbeat bidirezionali
- Arresto o inattività amministratore
- Lettura anticipata
- Asincrono - utilizza dalle applicazioni client
Segnali di stato
Gli heartbeat possono fluire attraverso il canale in qualsiasi momento in entrambe le direzioni. Se si utilizza SHARECNV(0), gli heartbeat fluiscono solo quando una chiamata MQGET è in attesa.
Uscite canale
Il comportamento di un'uscita del canale di connessione client o server cambia quando il canale condivide le conversazioni (ossia, quando si imposta SHARECNV su un valore maggiore di
1). È improbabile, ma possibile, che la modifica influisca sul comportamento delle uscite esistenti. La modifica è la seguente:- Le uscite di invio o ricezione possono modificare la struttura
MQCDsu una chiamata MQXR_INIT . L'effetto di queste uscite differisce, a seconda che la conversazione sia condivisa con altre conversazioni sullo stesso canale:- Se il campo
MQCXPSharingConversationspassato all'istanza di uscita è impostato suFALSE, questa istanza di uscita è la prima o unica conversazione sull'istanza del canale. Nessun' altra uscita può modificareMQCDcontemporaneamente e le modifiche apportate aMQCDpossono influire sul modo in cui viene eseguito il canale. - Se il campo
MQCXPSharingConversationsinoltrato all'istanza di uscita è impostato suTRUE, questa istanza di uscita è una conversazione successiva. Sta condividendo l'istanza del canale con altre conversazioni. Le modifiche apportate aMQCDnell'istanza di uscita vengono conservate inMQCDma non influiscono sul modo in cui viene eseguito il canale.
- Se il campo
- Le istanze di invio, ricezione e uscita di sicurezza possono modificare
MQCD, quando il campoMQCXPSharingConversationsè impostato suTRUE. Le istanze di uscita su altre conversazioni potrebbero modificareMQCDcontemporaneamente. Gli aggiornamenti scritti da un'istanza di uscita possono essere sovrascritti da un'altra istanza. Potrebbe essere necessario serializzare l'accesso aMQCDtra queste diverse istanze di uscita per mantenere la coerenza dei campi inMQCD.
L'aggiornamento di MQCD quando il campo SharingConversations è impostato su TRUE non influenza il modo in cui viene eseguito il canale. Solo le modifiche apportate quando il campo MQCXP SharingConversations è impostato su FALSE, in una chiamata MQXR_INIT , modificano il comportamento del canale.