MQDISC (Disconnect queue manager) on IBM i
The MQDISC call breaks the connection between the queue manager and the application program, and is the inverse of the MQCONN or MQCONNX call.
Syntax
MQDISC (HCONN, CMPCOD, REASON)
Usage notes
- If an MQDISC call is issued when the application still has objects open, those objects are closed by the queue manager, with the close options set to CONONE.
- If the application ends with uncommitted changes in a unit of work, the disposition of those changes depends on how the application ends:
- If the application issues the MQDISC call before ending:
- For a queue manager coordinated unit of work, the queue manager issues the MQCMIT call on behalf of the application. The unit of work is committed if possible, and backed out if not.
- For an externally coordinated unit of work, there is no change in the status of the unit of work; however, the queue manager will indicate that the unit of work should be committed, when asked by the unit-of-work coordinator.
- If the application ends normally but without issuing the MQDISC call, the unit of work is backed out.
- If the application ends abnormally without issuing the MQDISC call, the unit of work is backed out.
- If the application issues the MQDISC call before ending:
Parameters
The MQDISC call has the following parameters:
- HCONN (10-digit signed integer) - input/output
-
Connection handle.
This handle represents the connection to the queue manager. The value of HCONN was returned by a previous MQCONN or MQCONNX call.
On successful completion of the call, the queue manager sets HCONN to a value that is not a valid handle for the environment. This value is:- HCUNUH
- Unusable connection handle.
- CMPCOD (10-digit signed integer) - output
-
Completion code.
It is one of the following:- CCOK
- Successful completion.
- CCWARN
- Warning (partial completion).
- CCFAIL
- Call failed.
- REASON (10-digit signed integer) - output
-
Reason code qualifying CMPCOD.
If CMPCOD is CCOK:- RCNONE
- (0, X'000') No reason to report.
If CMPCOD is CCFAIL:
- RC2219
- (2219, X'8AB') MQI call reentered before previous call complete.
- RC2009
- (2009, X'7D9') Connection to queue manager lost.
- RC2018
- (2018, X'7E2') Connection handle not valid.
- RC2058
- (2058, X'80A') Queue manager name not valid or not known.
- RC2059
- (2059, X'80B') Queue manager not available for connection.
- RC2162
- (2162, X'872') Queue manager shutting down.
- RC2102
- (2102, X'836') Insufficient system resources available.
- RC2071
- (2071, X'817') Insufficient storage available.
- RC2195
- (2195, X'893') Unexpected error occurred.
RPG Declaration
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQDISC(HCONN : CMPCOD : REASON)The prototype definition for the call is:
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQDISC PR EXTPROC('MQDISC') D* Connection handle D HCONN 10I 0 D* Completion code D CMPCOD 10I 0 D* Reason code qualifying CMPCOD D REASON 10I 0Parent topic: Function calls on IBM i