类 MQEnvironment
- java.lang.Object
- com.ibm.mq.jmqi.JmqiObject
- com.ibm.mq.MQEnvironment
公共类 MQEnvironment 扩展 com.ibm.mq.jmqi.JmqiObjectMQEnvironment 包含静态字段,用于控制构造 MQQueueManager 对象 (及其与 IBM MQ的相应连接) 的环境。 由于 MQEnvironment 类中设置的值在调用 MQQueueManager 构造函数时生效,因此在构造 MQQueueManager 对象之前,必须在 MQEnvironment 类中设置值。注意: 该类的所有方法和属性都适用于 Java 客户端连接的 IBM MQ 类,但只有 enableTracing()、disableTracing(), properties, version_notice, userID, connOptions 和 connTag 适用于绑定连接。
-
字段摘要
字段 修饰符和类型 字段和描述 static java.net.URLccdtUrlProperty指定客户端通道定义表 (CCDT) 位置的 URL,用于定义连接属性。static intCCSID客户机使用的 CCSID。static java.lang.Stringchannel要在目标队列管理器上连接的通道的名称。static java.lang.ObjectchannelReceiveExit从队列管理器接收消息时使用的接收出口。static java.lang.StringchannelReceiveExitUserDatastatic java.lang.ObjectchannelSecurityExit连接到队列管理器时使用的安全出口。static java.lang.StringchannelSecurityExitUserDatastatic java.lang.ObjectchannelSendExit将消息发送到队列管理器时使用的发送出口。static java.lang.StringchannelSendExitUserDatastatic intconnOptions队列管理器连接选项。static byte[]connTag允许用户序列化对他们在 z/OS 队列管理器上使用的资源的访问的连接标记。static java.lang.StringexitClasspath定义 Java 安全性时,发送或接收出口作为要由类装入器装入的字符串,具有包含该类的类或 JAR 的路径必须为装入器所知。static java.util.CollectionhdrCompList用于头压缩的受支持压缩器的列表。static java.lang.StringhostnameIBM MQ 服务器所在机器的 TCP/IP 主机名。static java.lang.StringlocalAddressSetting通过防火墙连接到 IBM MQ 队列管理器时使用的本地地址 (包括一系列端口)。static java.util.CollectionmsgCompList用于消息压缩的受支持压缩器的列表。static java.lang.Stringpassword用于验证 IBM MQ 客户机身份的密码。static intport要使用的端口。static java.util.Hashtableproperties用于定义 IBM MQ 环境的 Hashtable。static MQReceiveExitreceiveExit不推荐使用。从队列管理器接收消息时使用的接收出口。 它允许您检查并可能更改数据,并且通常与队列管理器上的相应发送出口结合使用。如果要提供您自己的接收出口,请定义实现 MQReceiveExit 接口的类,并将 receiveExit 分配给该类的实例。
如果将此字段设置为空,那么不会调用接收出口。
static java.lang.StringreceiveExitUserData不推荐使用。static MQSecurityExitsecurityExit不推荐使用。连接到队列管理器时使用的安全出口。 它允许您定制尝试连接到队列管理器时发生的安全流。如果要提供您自己的安全出口,请定义用于实现 MQSecurityExit 接口的类,并将 securityExit 分配给该类的实例。
如果将此字段设置为空,那么不会调用安全出口。
static java.lang.StringsecurityExitUserData不推荐使用。static MQSendExitsendExit不推荐使用。将消息发送到队列管理器时使用的发送出口。 它允许您检查并可能更改数据,并且通常与队列管理器上的相应接收出口结合使用。如果要提供您自己的发送出口,请定义用于实现 MQSendExit 接口的类,并将 sendExit 分配给该类的实例。
如果将此字段设置为空,那么不会调用任何发送出口。
static java.lang.StringsendExitUserData不推荐使用。static intsharingConversations每个连接的对话数。static java.util.CollectionsslCertStoresSSL CertStores的集合。static java.lang.StringsslCipherSuite要由 SSL 使用的密码套件的名称。static booleansslFipsRequired当此属性设置为 true 时,可以在来自此客户机进程的 SSL 连接上使用的唯一密码套件是支持 FIPS 的密码套件。static java.lang.StringsslPeerNameSSL 要使用的队列管理器的专有名称(DN)。static intsslResetCount在重置密钥之前,发起通道 MCA 发送和接收的未加密字节总数。static java.lang.ObjectsslSocketFactory使用 SSL 加密进行连接时要使用的工厂。static java.lang.StringuserID用于标识 IBM MQ 客户机的标识。static java.lang.Stringversion_noticeIBM MQ Java 类的当前版本。
-
构造函数摘要
构造函数 构造函数和描述 MQEnvironment()构造函数
-
方法概要
所有方法 静态方法 具体方法 不推荐的方法 修饰符和类型 方法和描述 static MQPoolTokenaddConnectionPoolToken()构造 MQPoolToken 并将其添加到令牌集。static voidaddConnectionPoolToken(MQPoolToken token)将给定的 MQPoolToken 添加到连接池。static voiddisableTracing()此方法将关闭 IBM MQ Client for Java 跟踪工具。static voidenableTracing(int level)static voidenableTracing(int level, java.io.OutputStream stream)打开对控制台和 (缺省) 文件的跟踪static com.ibm.mq.MQConnectionManagergetDefaultConnectionManager()获取缺省 ConnectionManager。static MQQueueManagergetQueueManagerReference(int scope)不推荐使用。此方法和 MQC.MQ_QMGR_ASSOCIATION_PROPERTY ,因为它们通常不提供特定值。static MQQueueManagergetQueueManagerReference(int scope, java.lang.Object context)不推荐使用。此方法和 MQC.MQ_QMGR_ASSOCIATION_PROPERTY ,因为它们通常不提供特定值。static java.lang.StringgetVersionNotice()获取当前版本的 IBM MQ Java 类。static voidremoveConnectionPoolToken(MQPoolToken token)从连接池中除去令牌。static voidsetDefaultConnectionManager(com.ibm.mq.MQConnectionManager mqCxMan)设置默认的 MQConnectionManager, 并清空 MQPoolTokens 集合。
-
-
字段详细信息
版本通知
公共静态最终 java.lang.String version_notice
IBM MQ Java 类的当前版本。- 另请参阅:
- 常量字段值
securityExit
公共静态 MQSecurityExit securityExit
不推荐使用。 连接到队列管理器时使用的安全出口。 它允许您定制尝试连接到队列管理器时发生的安全流。如果要提供您自己的安全出口,请定义用于实现 MQSecurityExit 接口的类,并将 securityExit 分配给该类的实例。
如果将此字段设置为空,那么不会调用安全出口。
securityExitUserData
public static java.lang.String securityExitUserData
不推荐使用。
channelSecurityExit
public static java.lang.Object channelSecurityExit
连接到队列管理器时使用的安全出口。 它允许您定制尝试连接到队列管理器时发生的安全流。如果您想提供自己的安全退出,请定义一个实现:- MQSecurityExit, WMQSecurityExit 接口或字符串的类,并将 securityExit 赋值给该类的实例或将类定义赋值给字符串。
如果将此字段设置为空,那么不会调用安全出口。
channelSecurityExitUserData
public static java.lang.String channelSecurityExitUserData
sendExit
公共静态 MQSendExit sendExit
不推荐使用。 将消息发送到队列管理器时使用的发送出口。 它允许您检查并可能更改数据,并且通常与队列管理器上的相应接收出口结合使用。如果要提供您自己的发送出口,请定义用于实现 MQSendExit 接口的类,并将 sendExit 分配给该类的实例。
如果将此字段设置为空,那么不会调用任何发送出口。
sendExitUserData
公共静态 java.lang.String sendExitUserData
不推荐使用。
channelSendExit
public static java.lang.Object channelSendExit
将消息发送到队列管理器时使用的发送出口。 它允许您检查并可能更改数据,并且通常与队列管理器上的相应接收出口结合使用。如果您想提供自己的发送退出,请定义一个实现:- MQSendExit, WMQSendExit 接口或 List 或字符串的类,并将 sendExit 赋值给该类的实例或将类定义赋值给字符串。
如果将此字段设置为空,那么不会调用任何发送出口。
channelSendExitUserData
public static java.lang.String channelSendExitUserData
receiveExit
公共静态 MQReceiveExit receiveExit
不推荐使用。 从队列管理器接收消息时使用的接收出口。 它允许您检查并可能更改数据,并且通常与队列管理器上的相应发送出口结合使用。如果要提供您自己的接收出口,请定义实现 MQReceiveExit 接口的类,并将 receiveExit 分配给该类的实例。
如果将此字段设置为空,那么不会调用接收出口。
receiveExitUserData
公共静态 java.lang.String receiveExitUserData
不推荐使用。
channelReceiveExit
public static java.lang.Object channelReceiveExit
从队列管理器接收消息时使用的接收出口。 它允许您检查并可能更改数据,并且通常与队列管理器上的相应发送出口结合使用。如果您想提供自己的发送出口,请定义一个实现:- MQReceiveExit, WMQReceiveExit 接口或 List ro String 的类,并将 receiveExit 赋值给该类的实例或赋值给字符串的类定义。
如果将此字段设置为空,那么不会调用接收出口。
channelReceiveExitUserData
public static java.lang.String channelReceiveExitUserData
exitClasspath
公共静态 java.lang.String exitClasspath
定义 Java 安全性时,发送或接收出口作为要由类装入器装入的字符串,具有包含该类的类或 JAR 的路径必须为装入器所知。 装入程序使用系统属性 com.ibm.mq.exitClasspath 来查找类。 客户机应用程序可以使用此属性来添加将动态装入的类的路径。
主机名
公共静态 java.lang.String 主机名
IBM MQ 服务器所在机器的 TCP/IP 主机名。 如果未设置主机名,并且未设置覆盖属性,那么将使用绑定方式连接到本地队列管理器。
port
公共静态 int 端口
要使用的端口。 这是 IBM MQ 用于侦听连接请求的端口。缺省值为 1414。
通道
公共静态 java.lang.String 通道
要在目标队列管理器上连接的通道的名称。 以绑定方式直接连接到 IBM MQ 时不适用。 在构造 MQQueueManager 实例以用于客户机方式之前, 必须 设置此字段或相应属性。
userID
公共静态 java.lang.String userID
用于标识 IBM MQ 客户机的标识。 它等同于 IBM MQ 环境变量 MQ_USER_ID。
缺省值为空。
如果没有为此客户机定义安全出口,并且 userID 设置为 null 或空字符串 "" ,那么 IBM MQ classes for Java 将查询 Java 系统属性 "user.name" 并将其传输到服务器。
如果没有为此客户机定义安全出口,并且 userID 已设置为除 null 和空字符串 "" 以外的值,那么此值将传输到服务器。
如果为此客户机定义了安全出口,那么该出口负责应用任何特定于应用程序的安全逻辑。 userID 的值不可用于出口,并且不会传输到服务器。
密码
公共静态 java.lang.String 密码
用于验证 IBM MQ 客户机身份的密码。 它等同于 MQ 环境变量 MQ_PASSWORD。如果没有为此客户机定义安全出口,那么会将密码的值传输到服务器,并在调用该值时提供给服务器安全出口。
缺省值为空。
请注意,密码必须在客户机所连接的队列管理器的编码字符集中表示,这可能与客户机的编码字符集不同。 如果无法在两个字符集之间转换密码,那么连接将失败。
ccdtUrlProperty
public static java.net.URL ccdtUrlProperty
指定客户端通道定义表 (CCDT) 位置的 URL,用于定义连接属性。
CCSID
公共静态 int CCSID
客户机使用的 CCSID。 以绑定方式直接连接到 IBM MQ 时不适用。更改此值会影响您连接的队列管理器在 IBM MQ 头中转换信息的方式。 IBM MQ 头中的所有数据都是从 ASCII 代码集的不变量部分中提取的,但
MQMessage.applicationIdData和MQMessage.putApplicationName字段中的数据除外。如果避免将 ASCII 码集的变体部分中的字符用于这两个字段,那么可以将 CCSID 从 819 更改为任何其他 ASCII 码集。
如果将客户机 CCSID 更改为与要连接的队列管理器的客户机 CCSID 相同,那么可以在队列管理器上获得性能优势,因为它不会尝试转换消息头。 由于上述原因,这仅适用于 ASCII 代码集-在使用 EBCDIC 与队列管理器通信时,不得将 CCSID 设置为基于 EBCDIC 的值。
缺省值为 819。
- 另请参阅:
MQMessage
hdrCompList
public static java.util.Collection hdrCompList
用于头压缩的受支持压缩器的列表。 可能的值为:
msgCompList
public static java.util.Collection msgCompList
用于消息压缩的受支持压缩器的列表。 可能的值为:
sslCipherSuite
public static java.lang.String sslCipherSuite
要由 SSL 使用的密码套件的名称。 SSL 仅对客户端连接有效,通过设置 sslCipherSuite 触发。 如果sslCipherSuite未设置,则所有其他值都无关紧要,并使用标准的非 SSL 连接来连接服务器。- 另请参阅:
sslCertStores,sslPeerName
sslPeerName
public static java.lang.String sslPeerName
SSL 要使用的队列管理器的专有名称(DN)。 对等名称设置为指示只有在成功将服务器认证为特定 DN 的情况下,才应允许连接。- 另请参阅:
sslCipherSuite,sslCertStores
sslCertStores
public static java.util.Collection sslCertStores
SSL CertStores的集合。 CertStores (仅限J2SE 1.4 ) 的集合用于使 IBM MQ Java 客户机能够在证书撤销列表 (CRL) 中检查要撤销的证书。- 另请参阅:
sslCipherSuite,sslPeerName
sslSocketFactory
public static java.lang.Object sslSocketFactory
使用 SSL 加密进行连接时要使用的工厂。 如果设置了 sslCipherSuite,该变量可用于自定义 SSL 连接的所有方面。有关构造和定制 SSLSocketFactory 实例的更多信息,请参阅 JSSE 提供程序。
如果设置为 null (缺省值) 并且请求 SSL 加密,那么将使用缺省值 SSLSocketFactory 。
如果
sslCipherSuite为空,那么将忽略此变量。
sslResetCount
public static int sslResetCount
在重置密钥之前,发起通道 MCA 发送和接收的未加密字节总数。 字节数包括消息通道代理程序发出的控制信息。 值 0 将禁用密钥重置。
sslFipsRequired
public static boolean sslFipsRequired
当此属性设置为 true 时,可以在来自此客户机进程的 SSL 连接上使用的唯一密码套件是支持 FIPS 的密码套件。 在这种情况下,如果指定了自定义的 sslSocketFactory ,则不会使用自定义的 sslSocketFactory ,因为无法保证 sslSocketFactory 符合 FIPS 标准。
localAddressSetting
public static java.lang.String localAddressSetting
通过防火墙连接到 IBM MQ 队列管理器时使用的本地地址 (包括一系列端口)。 格式为[ip-addr][(low-port[,high-port])]。以下是一些示例:
- 9.20.4.98
- 通道绑定到本地地址 9.20.4.98
- 9.20.4.98(1000)
- 通道在本地绑定到地址 9.20.4.98 ,并使用端口 1000
- 9.20.4.98(1000,2000)
- 通道绑定到本地地址 9.20.4.98 ,并使用 1000 到 2000 范围内的端口
- (1000)
- 通道在本地绑定到端口 1000
- (1000,2000)
- 通道绑定到本地 1000 到 2000 范围内的端口
您可以指定主机名而不是 IP 地址。 在启动 JVM 时,将从系统属性 com.ibm.mq.localAddress 初始化该变量。 缺省值为空。
connTag
公共静态字节 [] connTag
允许用户序列化对他们在 z/OS 队列管理器上使用的资源的访问的连接标记。 connTag 字符串被截断为 128 个字节。 如果未设置connOptions,那么将忽略 connTag 。
connOptions
公共静态 int connOptions
队列管理器连接选项。 可能的值为:
sharingConversations
公共静态 int sharingConversations
每个连接的对话数。 允许用户开启或关闭多路复用。 值 0 将关闭多路复用。
属性
公共静态 java.util.Hashtable 属性
用于定义 IBM MQ 环境的 Hashtable。此 Hashtable 允许您将环境属性设置为键/值对,而不是设置为单个变量。
这些属性还可以作为
MQQueueManager构造函数上的参数中的 Hashtable 进行传递。 在构造函数上传递的属性优先于使用此属性变量设置的值,但它们可以互换。 查找属性的优先顺序为:- MQQueueManager 构造函数上的属性参数
- MQEnvironment.properties
- 其他 MQEnvironment 变量
- 常量缺省值
属性键名称为:
MQC.CCDT_URL_PROPERTY- 覆盖
ccdtUrlProperty。 MQConstants.CCSID_PROPERTY- 覆盖
CCSID。 MQConstants.CHANNEL_PROPERTY- 覆盖
channel。 MQConstants.CONNECT_OPTIONS_PROPERTY- 覆盖
connOptions。 MQConstants.CONNTAG_PROPERTY- 覆盖
connTag。 MQC.HEADER_COMPRESSION_PROPERTY- 覆盖
hdrCompList。 MQC.MESSAGE_COMPRESSION_PROPERTY- 覆盖
msgCompList。 MQConstants.HOST_NAME_PROPERTY- 覆盖
hostname。 MQConstants.LOCAL_ADDRESS_PROPERTY- 覆盖
localAddressSetting。 MQConstants.PASSWORD_PROPERTY- 覆盖
password。 MQConstants.PORT_PROPERTY- 覆盖
port。 - 不推荐使用的属性 MQConstants.RECEIVE_EXIT_PROPERTY
- 覆盖
receiveExit。 - 不推荐使用的属性 MQConstants.SECURITY_EXIT_PROPERTY
- 覆盖
securityExit。 - 不推荐使用的属性 MQConstants.SEND_EXIT_PROPERTY
- 覆盖
sendExit。 MQConstants.SSL_CERT_STORE_PROPERTY- 覆盖
sslCertStores。 MQConstants.SSL_CIPHER_SUITE_PROPERTY- 覆盖
sslCipherSuite。 MQConstants.SSL_FIPS_REQUIRED- 覆盖
sslFipsRequired。 MQConstants.SSL_RESET_COUNT_PROPERTY.- 覆盖
sslResetCount。 MQConstants.SSL_PEER_NAME_PROPERTY.- 覆盖
sslPeerName。 MQConstants.SSL_SOCKET_FACTORY_PROPERTY- 覆盖
sslSocketFactory。 MQConstants.TRANSPORT_PROPERTY- 强制
MQConstants.TRANSPORT_MQSERIES_BINDINGS或MQConstants.TRANSPORT_MQSERIES_CLIENT。 MQConstants.USER_ID_PROPERTY- 覆盖
userID。 MQC.SHARING_CONVERSATIONS_PROPERTY- 覆盖
sharingConversations。
-
方法详细信息
getVersionNotice
public static final java.lang.String getVersionNotice()
获取当前版本的 IBM MQ Java 类。- 返回:
- 版本。
enableTracing
public static void enableTracing(int level)
- 参数:
level-在此版本中已忽略
enableTracing
public static void enableTracing(int level、 java.io.OutputStream 流)打开对控制台和 (缺省) 文件的跟踪- 参数:
level-在此版本中已忽略stream-当前已忽略 (不幸)
disableTracing
public static void disableTracing()
此方法将关闭 IBM MQ Client for Java 跟踪工具。
setDefaultConnectionManager
public static void setDefaultConnectionManager(com.ibm.mq.MQConnectionManager mqCxMan)
设置默认的 MQConnectionManager, 并清空 MQPoolTokens 集合。 在 MQQueueManager 构造函数上未指定 ConnectionManager 时,将使用缺省 ConnectionManager 。- 参数:
mqCxMan-提供的 MQConnectionManager。
getDefaultConnectionManager
public static com.ibm.mq.MQConnectionManager getDefaultConnectionManager()
获取缺省 ConnectionManager。- 返回:
- 如果默认连接管理器是 MQConnectionManager 而不是 ConnectionManager 则为空。
addConnectionPoolToken
public static void addConnectionPoolToken(MQPoolToken token)
将给定的 MQPoolToken 添加到连接池。 缺省 ConnectionManager 可以将其用作提示; 通常,仅当连接池中至少有一个令牌时才会启用。- 参数:
token-要添加的令牌。
addConnectionPoolToken
public static MQPoolToken addConnectionPoolToken()
构造 MQPoolToken 并将其添加到令牌集。 该令牌将返回到应用程序,以便稍后传递到removeConnectionPoolToken()方法。- 返回:
- 已添加的令牌。
removeConnectionPoolToken
public static void removeConnectionPoolToken(MQPoolToken token)
从连接池中除去令牌。- 参数:
token-要除去的令牌。
getQueueManagerReference
public static MQQueueManager getQueueManagerReference(int scope)
不推荐使用。 此方法和 MQC.MQ_QMGR_ASSOCIATION_PROPERTY ,因为它们通常不提供特定值。如果MQQueueManager对象引用在指定的作用域内可用,那么返回该对象引用。 作用域必须是 MQC.ASSOCIATE_ALL 或 MQC.ASSOCIATE_THREAD} ,并且必须已使用 MQC.MQ_QMGR_ASSOCIATION_PROPERTY 属性设置为所请求的作用域。如果未在指定的作用域内创建队列管理器,或者如果 MQC.ASSOCIATE_NONE ,此方法将返回 null。
对此方法的调用与使用空对象调用
MQEnvironment.getQueueManagerReference(int, Object)相同。- 参数:
scope-关联作用域- 返回:
- MQQueueManager, 如果没有引用,则为空。
- 另请参阅:
getQueueManagerReference(int, Object)
getQueueManagerReference
public static MQQueueManager getQueueManagerReference(int scope、 java.lang.Object context)
不推荐使用。 此方法和 MQC.MQ_QMGR_ASSOCIATION_PROPERTY ,因为它们通常不提供特定值。如果MQQueueManager对象引用在指定的作用域内可用,那么返回该对象引用。 作用域必须是MQC.ASSOCIATE_ALL或MQC.ASSOCIATE_THREAD之一,并且必须已在将MQC.MQ_QMGR_ASSOCIATION_PROPERTY设置为所请求的作用域的情况下创建队列管理器。 提供的对象提供了在作用域内标识 MQQueueManager 所需的信息; 对于 MQC.ASSOCIATE_ALL 和 MQC.ASSOCIATE_THREAD ,此对象必须是包含队列管理器名称的字符串。如果未在指定的作用域内创建由提供的对象标识的队列管理器,或者如果指定了
MQC.ASSOCIATE_NONE,那么此方法将返回空值。此方法返回的 MQQueueManager 对象将引用与使用 MQConstants.MQ_QMGR_ASSOCIATION_PROPERTY 集创建的 MQQueueManager 相同的底层 HConn ,因此两者将共享相同的事务上下文。 如果尝试在另一个队列管理器的同一上下文上创建第二个 MQQueueManager 对象,那么将创建单独的 HConn ,并且第一个和第二个对象将具有独立的事务上下文。 这些上下文将通过在相应队列管理器上使用
MQQueueManager.getJDBCConnection(XADataSource)来扩展至 IBM MQ 协调的 JDBC 事务。- 参数:
scope-关联作用域context-包含上下文的对象。 当前,这必须是指定 IBM MQ 队列管理器名称的字符串- 返回:
- MQQueueManager, 如果没有引用,则为空。
-