今天重新配置了MQ服務(wù)器,把MQ服務(wù)器移動(dòng)到繁體的Server上啦.配置OK.用我的客戶端連接去始終報(bào) 2539錯(cuò)誤.
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.
我在服務(wù)器上重新配置客戶端,使用amqsputc命令連接OK.所以我懷疑是The server machine does not support the code page used by the client. 的原因.查看了一下幫助.
原來需要客戶端的code page設(shè)置同服務(wù)器一致或可以相互轉(zhuǎn)換才可以.
選擇客戶機(jī)或服務(wù)器編碼字符集標(biāo)識(CCSID)
客戶機(jī)代碼假設(shè)通過客戶機(jī)中 MQI 的字符數(shù)據(jù)位于機(jī)器所配置的 CCSID 中。如果此 CCSID 是一個(gè)不支持的 CCSID 或不是必需的 CCSID,可以用 MQCCSID 環(huán)境變量覆蓋它,例如,在 Windows? 上:
SET MQCCSID=850或者,在 UNIX? 系統(tǒng)上:
export MQCCSID=850?
我服務(wù)器上隊(duì)列管理器的CCSID 是950.
所以使用命令,設(shè)置客戶端CCSID
???? SET MQCCSID=950
重新使用amqsputc 進(jìn)行連接,連接成功,問題解決!
?
搜索了一下網(wǎng)絡(luò),轉(zhuǎn)一下CCSID相關(guān)的解釋:
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是一個(gè)字符集的標(biāo)識。作為unicode標(biāo)準(zhǔn)通過定義一個(gè)字符集內(nèi)每個(gè)字符要對應(yīng)那個(gè)數(shù)字值的方式定義了一個(gè)字符集。這說明CCSID就是一個(gè)定義字符集順序的標(biāo)識數(shù)碼罷了。IBM的字符標(biāo)識架構(gòu)在文檔 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用來標(biāo)識字符序列的標(biāo)識代碼。這個(gè)架構(gòu)定義了SDCS(單字符集)的CCSID值,MBCS(多字符集)的CCSID值和混合單字符多字符集的混合CCSID值。多字符集的CCSID一般用于語言,比如中文,日文,韓文,這些語言的字符量很大,無法用單字節(jié)的碼值來代表。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間的轉(zhuǎn)換有多種類型。其中一種轉(zhuǎn)換就是從一種CCSID到另一種CCSID的轉(zhuǎn)換,舉例來說從ASCII(CCSID 1252)到EBCDIC(CCSID 37)。另一種是從串?dāng)?shù)據(jù)到另一種數(shù)據(jù)類型的轉(zhuǎn)換。舉例來說轉(zhuǎn)換字符串?dāng)?shù)據(jù)到數(shù)值。在所有的這種類型的轉(zhuǎn)換中都必須標(biāo)識CCSID值來保證轉(zhuǎn)換的正確進(jìn)行。
但是轉(zhuǎn)換是有要求的,第一種轉(zhuǎn)換的前提是轉(zhuǎn)到的 CCSID的類型中要包含轉(zhuǎn)換前的CCSID類型中要轉(zhuǎn)換的字符,比如,如果從CCSID1381(S-CHGBPC-DATA) 類型的簡體中文的PC編碼中的一個(gè)中文字符"中"字到其他CCSID編碼轉(zhuǎn)換到的編碼起碼要求這個(gè)CCSID編碼的字符集中包含同樣的"中"字。
我從IBM找到的對CCSID說明的列表如下:
摘錄自 http://www-304.ibm.com/jct03002c/software/globalization/ccsid/ccsid_registered.jsp ,如果需要詳細(xì)信息,請自行查詢。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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