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

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