GFC (IS/IT--Management) |
5 Jan 04 5:03 |
The AMQCLCHL.TAB file is created/amended when properties of a CLNTCONN are defined/altered. This file is required for the client to connect to the QMgr. The SVRCONN entries are held on the corresponding (target) QMgr. When the client application issues MQCONN, the QMgrName in the connect request is compared with the QMgrName property in each CLNTCONN definition in AMQCLCHL.TAB until a match is found. If no match is found MQRC_QMGR_NOT_AVAILABLE (2059) is returned.
If a match is found a connection attempt is made. If the QMgr is not available, the search of AMQCLCHL.TAB resumes.
During the connection attempt MQ checks that the executing QMgrName matches the QMgrname requested. If not, MQRC_QMGR_NOT_AVAILABLE (2059) is returned. This check by MQ can be avoided by prefixing the QMgrname in the MQCONN with an asterisk ('*'). This enables the application to connect to the first available of multiple QMgrs.
Example:
AMQCLCHL.TAB has two CLNTCONN entries, one executing on QMGR1, the second on QMGR2...
MAIN.CLIENT.CONN QMGRNAME(QMGR1) CONNAME('100.200.300.400')
BACKUP.CLIENT.CONN QMGRNAME(QMGR1) CONNAME('100.200.300.401')
Application executes MQCONN to QMGR1 - this can only connect to the QMgr @ 100.200.300.400 using MAIN.CLIENT.CONN . An attemnpt to connect to 100.200.300.401 may be made but will fail since the QMgr executing on 100.200.300.401 is QMGR2.
Application executes MQCONN to *QMGR1 - this will connect to QMGR1 using MAIN.CLIENT.CONN, if available, otherwise will proceed to try BACKUP.CLIENT.CONN which is on 100.200.300.401 (QMGR2) because it has the QMgrName property QMGR1.
An application can be coded to re-issue MQCONN where an MQRC_QMGR_NOT_AVAILABLE is returned, making the connectivity transparent to the user.
I hope this helps,
Garry.
|
|