今天重新配置了MQ服務器,把MQ服務器移動到繁體的Server上啦.配置OK.用我的客戶端連接去始終報 2539錯誤.
IBM幫助文件給出的解釋.
2539 (09EB) (RC2539): MQRC_CHANNEL_CONFIG_ERROR
Explanation
An MQCONN call was issued from a client to connect to a queue manager but the attempt to establish communication failed. Common causes of this reason code are:
- The server and client cannot agree on the channel attributes to use.
- There are errors in one or both of the QM.INI or MQCLIENT.INI configuration files.
- The server machine does not support the code page used by the client.
我在服務器上重新配置客戶端,使用amqsputc命令連接OK.所以我懷疑是The server machine does not support the code page used by the client. 的原因.查看了一下幫助.
原來需要客戶端的code page設置同服務器一致或可以相互轉換才可以.
選擇客戶機或服務器編碼字符集標識(CCSID)
客戶機代碼假設通過客戶機中 MQI 的字符數據位于機器所配置的 CCSID 中。如果此 CCSID 是一個不支持的 CCSID 或不是必需的 CCSID,可以用 MQCCSID 環境變量覆蓋它,例如,在 Windows? 上:
SET MQCCSID=850或者,在 UNIX? 系統上:
export MQCCSID=850?
我服務器上隊列管理器的CCSID 是950.
所以使用命令,設置客戶端CCSID
???? SET MQCCSID=950
重新使用amqsputc 進行連接,連接成功,問題解決!
?
搜索了一下網絡,轉一下CCSID相關的解釋:
IBM Coded Character Set Identifiers (CCSID)碼表
A CCSID is a Coded Character Set Identifier. The Unicode standard defines a Coded Character Set as "A character set in which each character is assigned a numeric code value." This means that a CCSID is a number that defines a numeric ordering of characters. The IBM ? Character Data Representation Architecture (CDRA) as defined in SC09-1390, defines CCSIDs that are used with IBM to represent character data. This architecture defines Single Byte Character Set (SBCS) CCSIDs, Multiple Byte Character Set (MBCS) CCSIDs, and Mixed CCSIDs which are a combination of SBCS and MBCS data. MBCS CCSIDs are usually used for languages, such as Chinese, Japanese, and Korean, that define a larger number of characters than can be represented in a single byte.
CCSID是一個字符集的標識。作為unicode標準通過定義一個字符集內每個字符要對應那個數字值的方式定義了一個字符集。這說明CCSID就是一個定義字符集順序的標識數碼罷了。IBM的字符標識架構在文檔 SC09-1390( http://www-304.ibm.com/jct03002c/software/globalization/cdra/index.jsp ; http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/FOCREF00/CCONTENTS )中做了定義,CCSID是IBM用來標識字符序列的標識代碼。這個架構定義了SDCS(單字符集)的CCSID值,MBCS(多字符集)的CCSID值和混合單字符多字符集的混合CCSID值。多字符集的CCSID一般用于語言,比如中文,日文,韓文,這些語言的字符量很大,無法用單字節的碼值來代表。All SBCS CCSIDs define a similar basic set of characters, although they might define them in different numeric ordering. For instance all SBCS EBCDIC CCSIDs define the number "1" as x'F0' and all SBCS ASCII CCSIDs define the number 1 as x'30'.
CCSID間的轉換有多種類型。其中一種轉換就是從一種CCSID到另一種CCSID的轉換,舉例來說從ASCII(CCSID 1252)到EBCDIC(CCSID 37)。另一種是從串數據到另一種數據類型的轉換。舉例來說轉換字符串數據到數值。在所有的這種類型的轉換中都必須標識CCSID值來保證轉換的正確進行。
但是轉換是有要求的,第一種轉換的前提是轉到的 CCSID的類型中要包含轉換前的CCSID類型中要轉換的字符,比如,如果從CCSID1381(S-CHGBPC-DATA) 類型的簡體中文的PC編碼中的一個中文字符"中"字到其他CCSID編碼轉換到的編碼起碼要求這個CCSID編碼的字符集中包含同樣的"中"字。
我從IBM找到的對CCSID說明的列表如下:
摘錄自 http://www-304.ibm.com/jct03002c/software/globalization/ccsid/ccsid_registered.jsp ,如果需要詳細信息,請自行查詢。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
