I wanted to know what new features were available in different releases of MQ, but could not find the information documented.
I’ve taken the CMQC C header file from different releases on z/OS and shown the differences!
From MQ V8.0 to V9.0.1
CMQC
MQCNO_CURRENT_VERSION 5MQCNO_VERSION_6 6 MQCNO_CURRENT_VERSION 6MQCNO_CURRENT_LENGTH 188MQCNO_LENGTH_6 208 MQCNO_CURRENT_LENGTH 208 MQAT_MCAST_PUBLISH 36 MQAT_AMQP 37 MQAT_DEFAULT 2 MQOT_PROT_POLICY 1019 MQOT_TT_CHANNEL 1020 MQOT_AMQP_CHANNEL 1021 MQOT_AUTH_REC 1022 MQ_AMQP_CLIENT_ID_LENGTH 256 MQRC_STORAGE_MEDIUM_FULL 2192 MQRC_ADMIN_TOPIC_STRING_ERROR 2598 MQRC_AMQP_NOT_AVAILABLE 2599 MQRC_CCDT_URL_ERROR 2600 MQADOPT_CHECK_CHANNEL_NAME 8MQCMDL_CURRENT_LEVEL 800MQCMDL_LEVEL_801 801 MQCMDL_LEVEL_802 802 MQCMDL_LEVEL_900 900 MQCMDL_LEVEL_901 901 MQCMDL_LEVEL_902 902 MQCMDL_LEVEL_903 903 MQCMDL_LEVEL_904 904 MQCMDL_LEVEL_905 905 MQCMDL_CURRENT_LEVEL 905 MQPL_APPLIANCE 28 MQCAP_EXPIRED 2 /* Media Image Scheduling */ MQMEDIMGSCHED_MANUAL 0 MQMEDIMGSCHED_AUTO 1 /* Automatic Media Image Interval */ MQMEDIMGINTVL_OFF 0 /* Automatic Media Image Log Length */ MQMEDIMGLOGLN_OFF 0 /* Media Image Recoverability */ MQIMGRCOV_NO 0 MQIMGRCOV_YES 1 MQIMGRCOV_AS_Q_MGR 2 MQCA_AMQP_SSL_CIPHER_SUITES 2137 MQCA_AMQP_VERSION 2136MQCA_LAST_USED 2135MQCA_LAST_USED 2137 MQIA_ADVANCED_CAPABILITY 273 MQIA_AMQP_CAPABILITY 265 MQIA_AUTHENTICATION_METHOD 266 MQIA_KEY_REUSE_COUNT 267MQIA_LAST_USED 264MQIA_LAST_USED 273 /* Key reuse count */ MQKEY_REUSE_DISABLED 0 MQKEY_REUSE_UNLIMITED (-1) struct tagMQCNO { ... PMQCHAR CCDTUrlPtr; /* Address of CCDT URL string */ MQLONG CCDTUrlOffset; /* Offset of CCDT URL string */ MQLONG CCDTUrlLength; /* Length of CCDT URL */ MQBYTE8 Reserved; /* Reserved */ /* Ver:6 */ } ... MQCNO_DEFAULT ....
CMQCFC
MQCMD_INQUIRE_AMQP_CAPABILITY 216 MQCMD_AMQP_DIAGNOSTICS 217 MQRCCF_CLWL_EXIT_NAME_ERROR 3374 MQRCCF_SERVICE_NAME_ERROR 3375 MQRCCF_REMOTE_CHL_TYPE_ERROR 3376 MQRCCF_TOPIC_RESTRICTED 3377 MQRCCF_CURRENT_LOG_EXTENT 3378 MQRCCF_LOG_EXTENT_NOT_FOUND 3379 MQRCCF_LOG_NOT_REDUCED 3380 MQRCCF_LOG_EXTENT_ERROR 3381 MQRCCF_ACCESS_BLOCKED 3382MQ_ENTITY_NAME_LENGTH 64MQ_ENTITY_NAME_LENGTH 1024 MQIAMO_MONITOR_CLASS 839 MQIAMO_MONITOR_TYPE 840 MQIAMO_MONITOR_ELEMENT 841 MQIAMO_MONITOR_DATATYPE 842 MQIAMO_MONITOR_FLAGS 843 MQIAMO64_QMGR_OP_DURATION 844 MQIAMO64_MONITOR_INTERVAL 845 MQIAMO_LAST_USED 845 /* Defined values for MQIAMO_MONITOR_FLAGS */ MQIAMO_MONITOR_FLAGS_NONE 0 MQIAMO_MONITOR_FLAGS_OBJNAME 1 /* Defined values for MQIAMO_MONITOR_DATATYPE */ MQIAMO_MONITOR_UNIT 1 MQIAMO_MONITOR_DELTA 2 MQIAMO_MONITOR_HUNDREDTHS 100 MQIAMO_MONITOR_KB 1024 MQIAMO_MONITOR_PERCENT 10000 MQIAMO_MONITOR_MICROSEC 1000000 MQIAMO_MONITOR_MB 1048576 MQIAMO_MONITOR_GB 100000000 MQIACF_AMQP_ATTRS 1401 MQIACF_AMQP_DIAGNOSTICS_TYPE 1406MQIACF_SYSP_MAX_CONC_OFFLOADS 1412 MQIACF_LAST_USED 1412MQIACF_AUTH_REC_TYPE 1412 MQIACF_SYSP_MAX_CONC_OFFLOADS 1413 MQIACF_SYSP_ZHYPERWRITE 1414 MQIACF_Q_MGR_STATUS_LOG 1415 MQIACF_ARCHIVE_LOG_SIZE 1416 MQIACF_MEDIA_LOG_SIZE 1417 MQIACF_RESTART_LOG_SIZE 1418 MQIACF_REUSABLE_LOG_SIZE 1419 MQIACF_LOG_IN_USE 1420 MQIACF_LOG_UTILIZATION 1421 MQIACF_LOG_REDUCTION 1422 MQIACF_LAST_USED 1422MQIACH_LAST_USED 1643MQIACH_AMQP_KEEP_ALIVE 1644 MQIACH_SECURITY_PROTOCOL 1645 MQIACH_LAST_USED 1645MQCAMO_LAST_USED 2712MQCAMO_MONITOR_CLASS 2713 MQCAMO_MONITOR_TYPE 2714 MQCAMO_MONITOR_DESC 2715 MQCAMO_LAST_USED 2715MQCACF_LAST_USED 3206MQCACF_AMQP_CLIENT_ID 3207 MQCACF_ARCHIVE_LOG_EXTENT_NAME 3208 MQCACF_LAST_USED 3208MQCACH_LAST_USED 3570MQCACH_TOPIC_ROOT 3571 MQCACH_LAST_USED 3571MQGACF_LAST_USED 8014MQGACF_MONITOR_CLASS 8015 MQGACF_MONITOR_TYPE 8016 MQGACF_MONITOR_ELEMENT 8017 MQGACF_LAST_USED 8017 - - - - - - - - - - - - - - - MQACT_REDUCE_LOG 10 MQACT_ARCHIVE_LOG 11 MQEVO_REST 8 MQRQ_FAILOVER_PERMITTED 30 MQRQ_FAILOVER_NOT_PERMITTED 31 MQRQ_STANDBY_ACTIVATED 32 MQLDAP_AUTHORMD_SRCHGRPSN 3 /* Authentication Method */ MQAUTHENTICATE_OS 0 MQAUTHENTICATE_PAM 1 /* Reduce Log Options */ MQLR_ONE 1 MQLR_AUTO (-1) MQLR_MAX (-2)
From MQ 9.0.1 to MQ 9.1.1
CMQC
MQCNO_CURRENT_VERSION 6 MQCNO_VERSION_7 7 MQCNO_CURRENT_VERSION 7 MQCNO_CURRENT_LENGTH 208 MQCNO_LENGTH_7 240 MQCNO_CURRENT_LENGTH 240 MQCNO_GENERATE_CONN_TAG 0x00200000 MQAN_NONE MQAN_NONE_ARRAY MQRC_INCOMPLETE_TRANSACTION 2147 MQRC_Q_MGR_RECONNECT_REQUESTED 2601 MQRC_SUB_JOIN_NOT_ALTERABLE 29440 /* Max queue file size values */ MQQFS_DEFAULT (-1)MQCMDL_CURRENT_LEVEL 905MQCMDL_LEVEL_910 910 MQCMDL_LEVEL_911 911 MQCMDL_LEVEL_912 912 MQCMDL_LEVEL_913 913 MQCMDL_LEVEL_914 914 MQCMDL_LEVEL_915 915 MQCMDL_CURRENT_LEVEL 915MQIA_LAST_USED 273MQIA_LAST_USED 274 MQIA_MAX_Q_FILE_SIZE 274 struct tagMQCNO { ... MQCHAR28 ApplName; /* Application name */ MQBYTE4 Reserved2; /* Reserved */ /* Ver:7 */ }; MQCNO_DEFAULT....
CMQCFC
MQCMD_AMQP_DIAGNOSTICS 217 MQCMD_INTER_Q_MGR_STATUS 218 MQCMD_INTER_Q_MGR_BALANCE 219 MQCMD_INQUIRE_APPL_STATUS 220 MQRCCF_PS_REQUIRED_MQUC 3383 MQRCCF_OBJECT_ALREADY_EXISTS 4001 MQRCCF_APPL_STATUS_NOT_FOUND 4097 MQCFT_STATUS 27MQBACF_LAST_USED 7035MQBACF_REQUEST_ID 7036 MQBACF_PROPERTIES_DATA 7037 MQBACF_CONN_TAG 7038 MQBACF_LAST_USED 7038MQIACF_LAST_USED 1422MQIACF_IGNORE_STATE 1423 MQIACF_MOVABLE_APPL_COUNT 1424 MQIACF_APPL_INFO_ATTRS 1425 MQIACF_APPL_MOVABLE 1426 MQIACF_REMOTE_QMGR_ACTIVE 1427 MQIACF_APPL_INFO_TYPE 1428 MQIACF_APPL_INFO_APPL 1429 MQIACF_APPL_INFO_QMGR 1430 MQIACF_APPL_INFO_LOCAL 1431 MQIACF_APPL_IMMOVABLE_COUNT 1432 MQIACF_BALANCED 1433 MQIACF_BALSTATE 1434 MQIACF_APPL_IMMOVABLE_REASON 1435 MQIACF_DS_ENCRYPTED 1436 MQIACF_CUR_Q_FILE_SIZE 1437 MQIACF_CUR_MAX_FILE_SIZE 1438 MQIACF_LAST_USED 1438MQIACH_LAST_USED 1645MQIACH_SPL_PROTECTION 1646 MQIACH_LAST_USED 1646 MQCACF_LAST_USED 3208MQCACF_APPL_IMMOVABLE_DATE 3209 MQCACF_APPL_IMMOVABLE_TIME 3210 MQCACF_LAST_USED 3210MQGACF_LAST_USED 8017MQGACF_APPL_STATUS 8018 MQGACF_CHANGED_APPLS 8019 MQGACF_ALL_APPLS 8020 MQGACF_APPL_BALANCE 8021 MQGACF_LAST_USED 8021 MQIS_NO 0 MQIS_YES 1 /* Movable Options */ MQAPPL_IMMOVABLE 0 MQAPPL_MOVABLE 1 /* Active Options */ MQACTIVE_NO 0 MQACTIVE_YES 1 /* Balance Options */ MQBALANCED_NO 0 MQBALANCED_YES 1 MQBALANCED_NOT_APPLICABLE 2 MQBALANCED_UNKNOWN 3 /* Balance State */ MQBALSTATE_NOT_APPLICABLE 0 MQBALSTATE_LOW 1 MQBALSTATE_OK 2 MQBALSTATE_HIGH 3 MQBALSTATE_UNKNOWN 4 /* Immovable Reasons */ MQIMMREASON_NONE 0 MQIMMREASON_NOT_CLIENT 1 MQIMMREASON_NOT_RECONNECTABLE 2 MQIMMREASON_MOVING 3 MQIMMREASON_APPLNAME_CHANGED 4
From MQ 9.1.1 to MQ 9.2.2
CMQC
MQ_NHA_INSTANCE_NAME_LENGTH 48MQCMDL_CURRENT_LEVEL 915MQCMDL_LEVEL_920 920 MQCMDL_LEVEL_921 921 MQCMDL_LEVEL_922 922 MQCMDL_CURRENT_LEVEL 922
CMQCF
MQCACF_APPL_IMMOVABLE_TIME 3210 MQCACF_LAST_USED 3210MQCACF_NHA_INSTANCE_NAME 3211 MQCACF_LAST_USED 3211 MQRQ_STANDBY_ACTIVATED 32 MQRQ_REPLICA_ACTIVATED 33
From MQ 9.2.2. to 9.2.4
CMQC
MQBNO structure and MQBNO_ constantsMQCNO_CURRENT_VERSION 7MQCNO_VERSION_8 8 MQCNO_CURRENT_VERSION 8 MQCNO_CURRENT_LENGTH 240 MQCNO_LENGTH_8 252 MQCNO_CURRENT_LENGTH 252 MQ_TEMPORARY_Q_PREFIX_LENGTH 32 MQRC_BNO_ERROR 2602 MQRC_OUTBOUND_SNI_NOT_VALID 2603 /* Streaming Queue Quality of Service Values */ MQST_BEST_EFFORT 0 MQST_MUST_DUP 1MQCMDL_CURRENT_LEVEL 922MQCMDL_LEVEL_923 923 MQCMDL_LEVEL_924 924 MQCMDL_CURRENT_LEVEL 924 MQCA_LAST_USED 2137MQCA_LAST_USED 2138MQIA_LAST_USED 274MQIA_LAST_USED 275 MQIA_STREAM_QUEUE_QOS 275 struct tagMQCNO { ... PMQBNO BalanceParmsPtr; /* Balance Parameter Pointer */ MQLONG BalanceParmsOffset; /* Balance Parameter Offset */ MQBYTE4 Reserved3; /* Reserved */ /* Ver:8 */ };
CMQCFC
MQRCCF_STREAMQ_DEST_NOT_SUPP 3384 MQRCCF_STREAMQ_DEST_CONFLICT 3385 MQRCCF_STREAMQ_NOT_SUPPORTED 3386 MQRCCF_STREAMQ_CONFLICT 3387MQBACF_LAST_USED 7038MQBACF_MQBNO_STRUCT 7039 MQBACF_LAST_USED 7039 MQIACF_SYSP_SMF_STAT_TIME_MINS 1199 MQIACF_SYSP_TRACE_CLASS 1200MQIACF_LAST_USED 1438MQIACF_BALANCING_TYPE 1439 MQIACF_BALANCING_OPTIONS 1440 MQIACF_BALANCING_TIMEOUT 1441 MQIACF_SYSP_SMF_STAT_TIME_SECS 1442 MQIACF_SYSP_SMF_ACCT_TIME_MINS 1443 MQIACF_SYSP_SMF_ACCT_TIME_SECS 1444 MQIACF_LAST_USED 1444 MQIACH_AUTH_INFO_TYPES 1622MQCACH_LAST_USED 3571MQCACH_TEMPORARY_MODEL_Q 3572 MQCACH_TEMPORARY_Q_PREFIX 3573 MQCACH_LAST_USED 3573 MQIMMREASON_APPLNAME_CHANGED 4 MQIMMREASON_IN_TRANSACTION 5 MQIMMREASON_AWAITS_REPLY 6
Much of what you have listed is not so much new stuff in the MQI but new stuff in the PCF Admin interface. You might be interested in the following blog post (includes back links to the prior release equivalent ones) https://mqgem.wordpress.com/2020/12/08/whats-in-command-levels-92x/
I tend to also mention MQI changes since I notice them in the research I do to create the Command Level changes.
LikeLike
Morag,
You stuff looks very useful, thank you.
I worked on the differences, so I could tell which version of the MQCNO etc I should use with which version of MQ… I’m doing this in the pymqi Python interface code.
LikeLike