ImqObject C++ 类
这个类是抽象的。 当此类对象被销毁时,它会自动关闭,其 ImqQueueManager 连接也会被切断。

此类与 ImqObject 交叉引用中列出的 MQI 调用相关。
类属性
- 行为 (behavior)
- 控制隐式打开的行为。
- imq_impl_open ( 8L )
- 允许隐式打开。 这是缺省值。
对象属性
- 变更日期
- 变更日期。 此属性是只读的。
- 变更时间
- 变更时间。 此属性是只读的。
- 备用用户标识
- 备用用户标识,最多为 MQ_USER_ID_LENGTH 字符。 初始值为空字符串。
- 备用安全标识
- 备用安全标识。 长度为 MQ_SECURITY_ID_LENGTH 的二进制值 (MQBYTE40)。 初始值为 MQSID_NONE。
- 关闭选项
- 关闭对象时应用的选项。 初始值是 MQCO_NONE。 在隐式重新打开操作期间将忽略此属性,其中始终使用值 MQCO_NONE。
- 连接参考
- 指向 ImqQueueManager 对象的引用,该对象提供与(本地)队列管理器的所需连接。 对于 ImqQueueManager 对象,就是对象本身。 初始值为零。注: 请勿将此与用于标识指定队列的队列管理器 (可能是远程队列) 的 队列管理器名称 混淆。
- 描述
- 队列管理器,队列,名称列表或进程的描述性名称 (最多 64 个字符)。 此属性是只读的。
- name
- 队列管理器,队列,名称列表或进程的名称 (最多 48 个字符)。 初始值为空字符串。 在 打开 之后,模型队列的名称将更改为生成的动态队列的名称。注意: ImqQueueManager 可以没有名字,代表默认的队列管理器。 成功 打开后,名称将更改为实际队列管理器。 ImqDistributionList 是动态的,必须为空。
- 下一个受管对象
- 这是此类的下一个对象,没有特殊顺序,具有与此对象相同的 连接引用 。 初始值为零。
- 打开选项
- 打开对象时适用的选项。 初始值为 MQOO_INQUIRE。 有两种方法可以设置相应的值:
- 请勿设置 open options ,也不要使用 open 方法。 IBM® MQ 会自动调整 打开选项 ,并根据需要自动打开,重新打开和关闭对象。 这可能会导致不必要的重新打开操作,因为 IBM MQ 使用 openFor 方法,并且仅以递增方式添加 open options 。
- 在使用导致 MQI 调用的任何方法之前设置 open options (请参阅 C++ 和 MQI 交叉引用 )。 这可确保不会发生不必要的重新打开操作。 如果可能发生任何潜在的重新打开问题,请显式设置打开选项 (请参阅 重新打开 )。
如果使用 open 方法,那么 必须 确保 open options 首先适用。 但是,使用 open 方法不是必需的; IBM MQ 仍然表现出与案例 1 相同的行为,但在这种情况下,行为是有效的。
零不是有效值; 请在尝试打开对象之前设置相应的值。 这可以通过以下两种方式实现 setOpenOptions ( lOpenOptions )后接open ( ),或 openFor ( lRequiredOpenOption )。注:- MQOO_OUTPUT 在分发列表的 open 方法期间替换为 MQOOO_INQUIRE ,因为 MQOO_OUTPUT 是此时唯一有效的 open 选项 。 但是,最好始终在使用 open 方法的应用程序中显式设置 MQOO_OUTPUT。
- 如果要使用类的 已解析队列管理器名称 和 已解析队列名称 属性,请指定 MQOO_RESOLVE_NAMES。
- 打开状态
- 对象是打开 (TRUE) 还是关闭 (FALSE)。 初始值为 FALSE。 此属性是只读的。
- 先前受管对象
- 此类的先前对象 (无特定顺序) 与此对象具有相同的 连接引用 。 初始值为零。
- 队列管理器标识
- 队列管理器标识。 此属性是只读的。
构造函数
- ImqObject( );
- 缺省构造函数。
- ImqObject( const & ImqObject object );
- 复制构造函数。 打开状态 将为 FALSE。
类方法 (public)
- 静态 MQLONG 行为 ();
- 返回 行为。
- void setBehavior( const MQLONG behavior = 0 );
- 设置 行为。
对象方法 (公用)
- void 运算符 = ( const ImqObject & 对象 );
- 必要时执行关闭,并从 对象复制实例数据。 打开状态 将为 FALSE。
- ImqBoolean alterationDate( ImqString & amp;日期 );
- 提供 变更日期的副本。 如果成功,将返回 TRUE。
- ImqString alterationDate( );
- 返回 更改日期 ,而不指示任何可能的错误。
- ImqBoolean alterationTime( ImqString & amp;时间 );
- 提供 更改时间的副本。 如果成功,将返回 TRUE。
- ImqString alterationTime( );
- 返回 更改时间 ,而不指示任何可能的错误。
- ImqString ( ) const ; alternateUserId ( ) const ;
- 返回 备用用户标识的副本。
- ImqBoolean ( const char * id ); setAlternateUserId ( const char * id );
- 设置 备用用户标识。 仅当 打开状态 为 FALSE 时,才能设置 备用用户标识 。 如果成功,此方法将返回 TRUE。
- ImqBinary alternateSecurityId( ) const;
- 返回 备用安全标识 的副本。
- ImqBoolean setAlternateSecurityId( const ImqBinary & token );
- 设置 备用安全标识。 仅当 打开状态 为 FALSE 时,才能设置 备用安全标识 。 token 的数据长度必须为零或 MQ_SECURITY_ID_LENGTH。 如果成功,将返回 TRUE。
- ImqBoolean setAlternateSecurityId( const MQBYTE* token = 0);
- 设置 备用安全标识。 token 可以为零,这与指定 MQSID_NONE 相同。 如果 token 非零,那么它必须寻址二进制数据的 MQ_SECURITY_ID_LENGTH 字节。 使用预定义值 (例如 MQSID_NONE) 时,可能需要进行强制类型转换以确保签名匹配; 例如, (MQBYTE *) MQSID_NONE。
仅当 打开状态 为 TRUE 时,才能设置 备用安全标识 。 如果成功,将返回 TRUE。
- ImqBoolean setAlternateSecurityId( const unsigned char * id = 0);
- 设置 备用安全标识。
- ImqBoolean close ();
- 将 打开状态 设置为 FALSE。 如果成功,将返回 TRUE。
- MQLONG closeOptions () const ;
- 返回 close 选项。
- void setCloseOptions ( const MQLONG options );
- 设置 关闭选项。
- ImqQueueManager * ( ) const ; connectionReference ( ) const ;
- 返回 连接引用。
- 无效 setConnectionReference( ImqQueueManager 和 经理 );
- 设置 连接引用。
- 无效 setConnectionReference ( ImqQueueManager * manager = 0 );
- 设置 连接引用。
- 虚拟 ImqBoolean 描述 ( ImqString & 描述 ) = 0;
- 提供 描述的副本。 如果成功,将返回 TRUE。
- ImqString description ();
- 返回 description 的副本,而不指示任何可能的错误。
- 虚拟 ImqBoolean 名 ( ImqString & 名 );
- 提供 name的副本。 如果成功,将返回 TRUE。
- ImqString name ();
- 返回 name 的副本,而不指示任何可能的错误。
- ImqBoolean setName ( const char * name = 0);
- 设置 名称。 仅当打开状态为 FALSE 时才可以设置名称,并且对于 ImqQueueManager, 仅当连接状态为 FALSE 时才可以设置名称。 如果成功,将返回 TRUE。
- ImqObject * ( ) const ; nextManagedObject ( ) const ;
- 返回 下一个受管对象。
- ImqBoolean open ();
- 通过在其他属性中使用 打开选项 和 名称,根据需要打开对象,将 打开状态 更改为 TRUE。 此方法使用连接引用信息和 ImqQueueManager连接方法(如有必要)来确保 ImqQueueManager连接状态为 TRUE。 它返回 打开状态。
- ImqBoolean openFor ( const MQLONG required-options = 0);
- 尝试确保对象是使用 open options打开的,或者使用 open options 来保证 required-options 参数值隐含的行为。如果 required-options 为零,那么需要输入,并且任何输入选项都足够。 因此,如果 打开选项 已包含下列其中一项:
- MQOO_INPUT_AS_Q_DEF
- MQOO_INPUT_SHARED
- MQOO_INPUT_EXCLUSIVE
打开选项 已令人满意并且未更改; 如果 打开选项 尚未包含任何这些选项,那么将在 打开选项中设置 MQOO_INPUT_AS_Q_DEF。
如果 required-options 非零,那么会将必需选项添加到 open options ; 如果 required-options 是这些选项中的任何一个,那么将重置其他选项。
如果更改了任何 打开选项 并且该对象已打开,那么将临时关闭该对象并重新打开以调整 打开选项。
如果成功,将返回 TRUE。 成功指示对象已使用相应的选项打开。
- MQLONG openOptions () const ;
- 返回 open options。
- ImqBoolean ( const MQLONG options ); setOpenOptions ( const MQLONG options );
- 设置 打开选项。 仅当 打开状态 为 FALSE 时,才能设置 打开选项 。 如果成功,将返回 TRUE。
- ImqBoolean openStatus () const ;
- 返回 打开状态。
- ImqObject * ( ) const ; previousManagedObject ( ) const ;
- 返回 先前受管对象。
- ImqBoolean queueManagerIdentifier( ImqString & id );
- 提供 队列管理器标识的副本。 如果成功,将返回 TRUE。
- ImqString queueManagerIdentifier( );
- 返回 队列管理器标识 ,而不指示任何可能的错误。
对象方法 (protected)
- 虚拟 ImqBoolean closeTemporarily ();
- 在重新打开之前安全地关闭对象。 如果成功,将返回 TRUE。 此方法假定 打开状态 为 TRUE。
- MQHCONN connectionHandle () const ;
- 返回与 连接引用关联的 MQHCONN。 如果没有 连接引用 ,或者如果未连接管理器,那么此值为零。
- ImqBoolean 查询 ( 连接 MQLONG 内部属性, MQLONG & 值 );
- 返回整数值,其索引为 MQIA_ * 值。 如果发生错误,该值将设置为 MQIAV_UNDEFINED。
- ImqBoolean 查询 ( 连接 MQLONG char-属性, char * & 缓冲区, 连接大小 (t) 长度 );
- 返回字符串,其索引为 MQCA_ * 值。注: 这两种方法都仅返回单个属性值。 如果需要具有多个值的 snapshot ,并且这些值在即时情况下彼此一致,那么 IBM MQ C++ 不会提供此工具,并且您必须使用带有相应参数的 MQINQ 调用。
- 虚拟空格 openInformationDisperse ();
- 在 MQOPEN 调用之后,立即从 MQOD 数据结构的变量部分分散信息。
- ImqBooleanopenInformationPrepare ();
- 在 MQOPEN 调用之前,立即为 MQOD 数据结构的变量部分准备信息,如果成功,将返回 TRUE。
- ImqBoolean set ( const MQLONG int-attr, const MQLONG value );
- 设置 IBM MQ 整数属性。
- ImqBoolean set ( const MQLONG char-attr, const char * buffer, const size_t required-length );
- 设置 IBM MQ 字符属性。
- 无效 setNextManagedObject ( const ImqObject * object = 0 );
- 设置 下一个受管对象。
注意: 仅当您确定此函数不会破坏受管对象列表时,才使用此函数。
- 无效 setPreviousManagedObject ( const ImqObject * object = 0 );
- 设置 先前受管对象。
注意: 仅当您确定此函数不会破坏受管对象列表时,才使用此函数。
对象数据 (受保护)
- MQHOBJ ohobj
- IBM MQ 对象句柄 (仅当 打开状态 为 TRUE 时有效)。
- MQOD omqod
- 嵌入式 MQOD 数据结构。 为此数据结构分配的存储量是 MQOD 版本 2 所需的存储量。 检查版本号 (omqod.Version) 并访问其他字段,如下所示:
- MQOD_VERSION_1
- 可以访问 omqod 中的所有其他字段。
- MQOD_VERSION_2
- 可以访问 omqod 中的所有其他字段。
- MQOD_VERSION_3
- omqod.pmqod 是一个指向动态分配的较大 MQOD 的指针。 无法访问 omqod 中的其他字段。 可以访问 omqod.pmqod 所寻址的所有字段。注: omqod.pmqod.Version 可以小于 omqod.Version,指示 IBM MQ MQI client 具有比 IBM MQ 服务器更多的功能。
原因码
- mqrc_attribute_locked
- mqrc_inconsistent_object_state
- mqrc_noo_connection_reference
- MQRC_STORAGE_NOT_AVAILABLE
- mqrc_reopen_saved_context_err
- (来自 MQCLOSE 的原因码)
- (来自 MQCONN 的原因码)
- (来自 MQINQ 的原因码)
- (来自 MQOPEN 的原因码)
- (来自 MQSET 的原因码)