MQ短期培訓(xùn)-IBM-中間件_第1頁(yè)
MQ短期培訓(xùn)-IBM-中間件_第2頁(yè)
MQ短期培訓(xùn)-IBM-中間件_第3頁(yè)
MQ短期培訓(xùn)-IBM-中間件_第4頁(yè)
MQ短期培訓(xùn)-IBM-中間件_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

主講人:陳浩單位:時(shí)間:XXXX年XX月XX日IBMWebSphereMQ短期培訓(xùn)MQ本身是一個(gè)比較博大精深的一個(gè)中間件,想要在比較短的時(shí)間內(nèi)完全掌握不太現(xiàn)實(shí),由于培訓(xùn)時(shí)間有限,所以在這里我只是帶著大家走進(jìn)MQ的領(lǐng)域,更多的是要大家在日后的生產(chǎn)實(shí)踐中摸索掌握。介紹一、中間件

中間件什么是中間件 中間件處于應(yīng)用軟件和系統(tǒng)軟件之間,是一種以自己的復(fù)雜來(lái)?yè)Q取企業(yè)應(yīng)用簡(jiǎn)單化的可復(fù)用的根底軟件中間件背景 以前,應(yīng)用軟件直接使用操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議和數(shù)據(jù)庫(kù)等開(kāi)發(fā),所以開(kāi)發(fā)者不得不面臨許多棘手的問(wèn)題,如:操作系統(tǒng)多樣性、復(fù)雜的網(wǎng)絡(luò)程序設(shè)計(jì)和管理,以及數(shù)據(jù)分散處理帶來(lái)的不一致性、性能和效率、平安問(wèn)題等等,而這些問(wèn)題與用戶(hù)的業(yè)務(wù)沒(méi)有直接關(guān)系,但又必須要解決,而且消耗時(shí)間和精力,于是,有人提出將應(yīng)用軟件所要面臨的共性問(wèn)題進(jìn)行提煉、抽象,在操作系統(tǒng)之上形成一個(gè)可復(fù)用的局部,供成千上萬(wàn)的應(yīng)用系統(tǒng)重復(fù)使用。

中間件中間件優(yōu)點(diǎn): 1、應(yīng)用開(kāi)發(fā): 某個(gè)組織分析了100個(gè)關(guān)鍵應(yīng)用系統(tǒng)中的業(yè)務(wù)邏輯程序,應(yīng)用邏輯程序及根底程序所占的比例,發(fā)現(xiàn)一個(gè)有趣的平均百分比。其中,業(yè)務(wù)邏輯程序,應(yīng)用邏輯程序僅占總程序量的30%,而根底程序卻占了70%,假設(shè)是以新一代的中間件系列產(chǎn)品來(lái)組織應(yīng)用,同時(shí)配合復(fù)用的商務(wù)對(duì)象構(gòu)件,那么應(yīng)用開(kāi)發(fā)費(fèi)用可省80% 2、系統(tǒng)運(yùn)行: 沒(méi)有中間件的應(yīng)用系統(tǒng),其初期投入的資金及運(yùn)行費(fèi)用要比同規(guī)模的使用中間件的應(yīng)用系統(tǒng)多一倍 3、開(kāi)發(fā)周期: 由于時(shí)間限制所有應(yīng)用系統(tǒng)開(kāi)發(fā)工程,而根底軟件的開(kāi)發(fā)又是一件耗時(shí)工作,假設(shè)使用標(biāo)準(zhǔn)商業(yè)中間件那么可將開(kāi)發(fā)周期縮短50%~75%

中間件中間件分類(lèi)〔六類(lèi)〕種類(lèi)作用典型產(chǎn)品消息中間件適用于任何需要進(jìn)行網(wǎng)絡(luò)通信的系統(tǒng),負(fù)責(zé)建立網(wǎng)絡(luò)通信的通道,進(jìn)行數(shù)據(jù)或文件發(fā)送,消息中間件的一個(gè)重要作用是可以實(shí)現(xiàn)跨平臺(tái)操作,為不同操作系統(tǒng)上的應(yīng)用軟件集成提供服務(wù)IBMWebSphereMQ交易中間件適用于聯(lián)機(jī)交易處理系統(tǒng),主要功能是管理分不于不同計(jì)算機(jī)上的數(shù)據(jù)的一致性,保障系統(tǒng)處理能力的效率與均衡負(fù)載,交易中間件所遵循的主要標(biāo)準(zhǔn)是X/OpenDTP模型IBMCICS,BeaTuxedo對(duì)象中間件基于CORBA標(biāo)準(zhǔn)的構(gòu)件框架,相當(dāng)于軟總線(xiàn),能使不同廠(chǎng)家的軟件交互訪(fǎng)問(wèn),為軟件用戶(hù)及開(kāi)發(fā)者提供一種即插即用的互操作性,就像現(xiàn)在使用集成塊和擴(kuò)展板裝配計(jì)算機(jī)一樣IBMComponentbroker應(yīng)用服務(wù)器用來(lái)構(gòu)造Internet/Intranet應(yīng)用和其他分布構(gòu)件應(yīng)用,是企業(yè)實(shí)施電子商務(wù)的基礎(chǔ)設(shè)施,應(yīng)用服務(wù)器一般是基于J2EE工業(yè)標(biāo)準(zhǔn)的IBMWebSphere安全中間件以公鑰基礎(chǔ)設(shè)施為核心的、建立在系列相關(guān)國(guó)際安全標(biāo)準(zhǔn)之上,一個(gè)開(kāi)放式開(kāi)發(fā)平臺(tái),向上為應(yīng)用系統(tǒng)提供開(kāi)發(fā)接口,向下提供統(tǒng)一的密碼算法接口及各種IC卡、安全芯片等驅(qū)動(dòng)接口Entrust應(yīng)用集成服務(wù)器把工作流和應(yīng)用開(kāi)發(fā)技術(shù)結(jié)合在一起,使處理能力方便自動(dòng)地和構(gòu)件、工作流行為結(jié)合在一起,同時(shí)集成文檔和電子郵件IBMFlowmark二、MQ相關(guān)技術(shù)MQ相關(guān)技術(shù)1、什么是MQ? WebSphereMQ全稱(chēng)WebSphereMessageQueue(消息隊(duì)列),是平安可靠的消息傳遞中間件,是數(shù)據(jù)傳輸?shù)母自O(shè)施,它解決了通信傳輸?shù)目煽?,保證了系統(tǒng)的可擴(kuò)展性和平安性。 MQ為用戶(hù)和開(kāi)發(fā)人員提出了一種直接、簡(jiǎn)單的手段,以實(shí)現(xiàn)系統(tǒng)在不同操作系統(tǒng)平臺(tái)之間穩(wěn)定可靠地傳遞、交換重要數(shù)據(jù)信息,保證不喪失,不產(chǎn)生數(shù)據(jù)副本。2、MQ業(yè)務(wù)優(yōu)勢(shì) MQ將業(yè)務(wù)和底層分開(kāi),程序員只要專(zhuān)注于業(yè)務(wù)開(kāi)發(fā),另外增加一點(diǎn)有關(guān)MQ的API知識(shí)即可。3、MQ與傳統(tǒng)會(huì)話(huà)通信的比較 傳統(tǒng)的會(huì)話(huà)方式是:Socket MQ采用消息隊(duì)列傳輸方式MQ相關(guān)技術(shù)4、時(shí)間的獨(dú)立性〔異步傳輸〕 以前雙方信息交換需要同時(shí)在線(xiàn)連接。現(xiàn)在那么不一定需要同時(shí)例如:A端B端MQA在線(xiàn)MQ在線(xiàn)B不在線(xiàn)A端B端MQA不在線(xiàn)MQ在線(xiàn)B在線(xiàn)MQ相關(guān)技術(shù)5、MQ業(yè)務(wù)優(yōu)勢(shì)

業(yè)務(wù)系統(tǒng)通訊和故障恢復(fù)網(wǎng)絡(luò)價(jià)值負(fù)擔(dān)商業(yè)應(yīng)用消息及消息隊(duì)列MQI網(wǎng)絡(luò)價(jià)值負(fù)擔(dān)減輕MQ相關(guān)技術(shù)6、MQv6.0特點(diǎn):●支持平臺(tái)多,可以支持80多個(gè)平臺(tái),完全支持64位●確保消息平安可靠傳輸。有且僅能一次成功傳輸,不喪失數(shù)據(jù)●支持同步和異步傳輸模式●應(yīng)用觸發(fā)機(jī)制●事務(wù)處理,與數(shù)據(jù)庫(kù)協(xié)調(diào)工作●支持負(fù)載均衡和故障切換功能●可與WebSphereApplicationServer6.0之間進(jìn)行無(wú)縫互操作。●全面支持事實(shí)標(biāo)準(zhǔn)MQI接口和行業(yè)標(biāo)準(zhǔn)JMSV1.1接口●全面支持采用發(fā)布和訂閱消息分發(fā)模式的消息傳輸簡(jiǎn)單配置●支持行業(yè)標(biāo)準(zhǔn)的SSL平安,●提供基于最新、增強(qiáng)型Eclipse技術(shù)的工具,使企業(yè)能夠遠(yuǎn)程配置WebSphereMQ網(wǎng)絡(luò)。

MQ相關(guān)技術(shù)7、MQ相關(guān)概念:7.1、消息:●消息是WebSphereMQ中最小的概念,本質(zhì)上就是一段數(shù)據(jù),它能被一個(gè)或多個(gè)應(yīng)用程序所理解,是應(yīng)用程序之間傳遞的載體。●消息可以分為:應(yīng)用數(shù)據(jù)體和消息數(shù)據(jù)頭。●消息數(shù)據(jù)頭是對(duì)消息屬性的描述,這段信息往往被隊(duì)列管理器用來(lái)確定對(duì)消息的處理。它可由應(yīng)用程序或系統(tǒng)的消息效勞程序共同產(chǎn)生。如目標(biāo)隊(duì)列管理器名稱(chēng)、目標(biāo)隊(duì)列的名稱(chēng)以及消息的其他一些信息。●應(yīng)用數(shù)據(jù)體是應(yīng)用間傳送的實(shí)質(zhì)的數(shù)據(jù)信息,可以是字串、數(shù)據(jù)結(jié)構(gòu)甚至二進(jìn)制數(shù)據(jù)。 ●消息可以分為持久消息和非持久消息,持久的意思就是MQ隊(duì)列管理器重啟后,消息仍然能保持●消息長(zhǎng)度默認(rèn)是4MB,最大支持100MBMQ相關(guān)技術(shù)7、MQ相關(guān)概念:、隊(duì)列:●隊(duì)列可以看成是一個(gè)容器,用于存放消息,隊(duì)列按定義分為本地隊(duì)列,遠(yuǎn)程隊(duì)列,別名隊(duì)列,模型隊(duì)列?!癖镜仃?duì)列是真正意義上的隊(duì)列實(shí)體,可以存放消息?!襁h(yuǎn)程隊(duì)列是指另一種隊(duì)列實(shí)體,它指向的是其他隊(duì)列管理器中的隊(duì)列●本地隊(duì)列按功能又分為初始化隊(duì)列、傳輸隊(duì)列、目標(biāo)隊(duì)列、死信隊(duì)列。初始化隊(duì)列用作消息觸發(fā),傳輸隊(duì)列只是暫時(shí)存放待傳的消息,在條件許可的情況下,通過(guò)管道將消息傳送其他的隊(duì)列管理器,目標(biāo)隊(duì)列是消息的目的地,可以長(zhǎng)期存放消息。死信隊(duì)列就是普通的本地隊(duì)列。如果消息不能送達(dá)目標(biāo)隊(duì)列,也不能再路由出去,那么被自動(dòng)放入死信隊(duì)列保存●模型隊(duì)列:模型隊(duì)列是您想讓隊(duì)列管理器根據(jù)需要?jiǎng)討B(tài)創(chuàng)立的隊(duì)列的模板。當(dāng)應(yīng)用程序嘗試將消息放入模型隊(duì)列時(shí),隊(duì)列管理器將動(dòng)態(tài)地創(chuàng)立與此模型隊(duì)列同名的本地隊(duì)列。以此方式創(chuàng)立的隊(duì)列既可以是臨時(shí)隊(duì)列也可以是永久隊(duì)列。MQ相關(guān)技術(shù)7、MQ相關(guān)概念:、隊(duì)列:●別名隊(duì)列,別名隊(duì)列實(shí)際上不是隊(duì)列;它們是現(xiàn)有隊(duì)列的附加定義。您創(chuàng)立指向?qū)嶋H本地隊(duì)列的別名隊(duì)列定義,但可以用與本地隊(duì)列不同的名稱(chēng)來(lái)命名別名隊(duì)列定義〔根本隊(duì)列〕。這表示您可更改應(yīng)用程序使用的隊(duì)列而無(wú)需更改此應(yīng)用程序,您只創(chuàng)立指向新的本地隊(duì)列的別名隊(duì)列定義。MQ相關(guān)技術(shù)MQ相關(guān)技術(shù)7、MQ相關(guān)概念:、通道:●通道是兩個(gè)隊(duì)列管理器之間的一種單向的點(diǎn)對(duì)點(diǎn)的通信連接,消息在通道中只能單向流動(dòng)。如果需要雙向交流,可以建立一對(duì)通道,一來(lái)一去。在通道上可以配置不同的通信協(xié)議,這樣就使得編程接口與通信協(xié)議無(wú)關(guān)。通道兩端的配置必須匹配,且名字相同,否那么無(wú)法連通?!裢ǖ李?lèi)型分為:SDR(Sender)握手協(xié)議的主動(dòng)方,消息的發(fā)送方RCVR〔Receiver〕握手協(xié)議的被動(dòng)方,消息的接收方SVR〔Server〕在握手協(xié)議中可以是主動(dòng)方也可以是被動(dòng)方,消息的發(fā)送方RQSTR〔Requester〕在握手協(xié)議中可以是主動(dòng)方也可以是被動(dòng)方,消息的接收方MQ相關(guān)技術(shù)7、MQ相關(guān)概念:、通道:CLNTCONN〔ClientConnection〕在Client-Server連接時(shí),定義客戶(hù)端連接定義表〔ClientChannelDefinitionTable〕時(shí)使用。握手協(xié)議的主動(dòng)方,消息的發(fā)送方SVRCONN〔ServerConnection〕在Client-Server連接時(shí),定義效勞器端連接時(shí)使用。握手協(xié)議的被動(dòng)方,消息的接收方CLUSSDR〔ClusterSender〕在群集中發(fā)送配置信息和應(yīng)用消息。握手協(xié)議的主動(dòng)方,消息的發(fā)送方CLUSRCVR〔ClusterReceiver〕在群集中接收配置信息和應(yīng)用消息。握手協(xié)議的被動(dòng)方,消息的接收方MQ相關(guān)技術(shù)MQ相關(guān)技術(shù)7、MQ相關(guān)概念:、通道:●Sender/Receiver是所有連接中最簡(jiǎn)單、最常用的一種。Sender是通道主動(dòng)方,也是消息發(fā)送方?!馬equester/Server也是常用的一種連接方式。Requester那么是通道主動(dòng)方,但通道連接后,它作為消息接收方,Server是消息發(fā)送方?!馭erver/Receiver與Sender/Receiver類(lèi)似,Server是消息的發(fā)送方,也是連接的主動(dòng)方。與Sender定義類(lèi)似,Server定義中必須指定CONNAME參數(shù)●Sender/Requester的連接過(guò)程稍微復(fù)雜一些,Requester首先與Sender連接,在通知對(duì)方連接參數(shù)后連接斷開(kāi)。Sender進(jìn)行反向連接,消息也是反向傳送的?!馭enderConnection/ReceiverConnection用于Client/Server之間的MQI通道●ClusterSender/ClusterReceiver用于群集中隊(duì)列管理器之間的連接。MQ相關(guān)技術(shù)7、MQ相關(guān)概念:、通道壓縮技術(shù):●SDR發(fā)送通道-RCVR接收通道 --MessageHeader長(zhǎng)度為476字節(jié)減少到65字節(jié) --壓縮比率86%●CLNTCONN客戶(hù)端通道-SVRCONN效勞器通道 --MessageHeader長(zhǎng)度為500字節(jié)減少到89字節(jié) --壓縮比率82%●數(shù)據(jù)消息壓縮--消息壓縮比率依賴(lài)于數(shù)據(jù)格式MQ相關(guān)技術(shù)7、MQ相關(guān)概念:3、其它概念:●監(jiān)聽(tīng)器三、簡(jiǎn)單命令MQ一些簡(jiǎn)單命令1、crtmqm創(chuàng)立隊(duì)列管理器[-cTEXT]描述,最多64個(gè)字符[-d]缺省傳輸隊(duì)列[-h]一個(gè)應(yīng)用程序可以open最大句柄數(shù)[-lfLogFileSize]Log文件大小,4KB倍數(shù)[-lpLogPrimaryFiles]主Log文件數(shù)[-uDeadLetterQueue]死信隊(duì)列QMgrName隊(duì)列管理器名稱(chēng)2、dltmqm刪除隊(duì)列管理器Dltmqm–zQM-z抑制出錯(cuò)信息3、strmqm啟動(dòng)隊(duì)列管理器StrmqmQM4、endmqm停止隊(duì)列管理器Endmqm–cQM5、dspmqm顯示隊(duì)列管理器DspmqmMQ一些簡(jiǎn)單命令6strmqcsv啟動(dòng)命令效勞器7、runmqlsr–ttcp–p1414–mQM8、mqver顯示版本四、WebSphereMQ與其它同類(lèi)產(chǎn)品比較WebSphereMQ與其它同類(lèi)產(chǎn)品比較WebSphereMQ同類(lèi)產(chǎn)品功能和特性功能和特性◆消息中間件市場(chǎng)上,份額占到60%以上,全球客戶(hù)超過(guò)10000家◆支持的平臺(tái)超過(guò)80個(gè),全面支持64位硬件及操作系統(tǒng),即64位應(yīng)用◆能保證消息不丟失,不復(fù)傳,真正做到“傳且傳一次”◆市場(chǎng)份額和客戶(hù)都很少◆支持的平臺(tái)一般不超過(guò)10個(gè),32位應(yīng)用◆重復(fù)傳遞確保消息到達(dá),也不是斷點(diǎn)續(xù)傳WebSphereMQ與其它同類(lèi)產(chǎn)品比較WebSphereMQ同類(lèi)產(chǎn)品功能和特性功能和特性◆能夠與數(shù)據(jù)庫(kù)同步協(xié)調(diào)工作,與應(yīng)用服務(wù)器無(wú)縫連接◆本地事務(wù)處理和全局事務(wù)處理◆具有消息分段功能◆支持大消息的傳輸,并且對(duì)文件的傳輸提供支持◆不具有與數(shù)據(jù)庫(kù)同步協(xié)調(diào)工作,主流應(yīng)用服務(wù)器不支持或支持差◆本地事務(wù)處理◆不具有消息分段功能◆不提供文件傳輸功能WebSphereMQ與其它同類(lèi)產(chǎn)品比較WebSphereMQ同類(lèi)產(chǎn)品功能和特性功能和特性◆采用消息驅(qū)動(dòng)方式,通過(guò)觸發(fā)器機(jī)制來(lái)實(shí)現(xiàn),保證了異步和同步處理功能◆提供多種數(shù)據(jù)壓縮算法,提供客戶(hù)自定義壓縮算法◆支持SSL加密傳輸◆不具有應(yīng)用觸發(fā)機(jī)制◆支持自定義壓縮算法◆不支持SSL加密傳輸WebSphereMQ與其它同類(lèi)產(chǎn)品比較WebSphereMQ同類(lèi)產(chǎn)品功能和特性功能和特性◆能夠在防火墻內(nèi)外傳遞數(shù)據(jù),并且在內(nèi)外網(wǎng)分開(kāi)的情況下通過(guò)消息跳轉(zhuǎn)進(jìn)行數(shù)據(jù)傳輸◆群集中支持消息傳輸?shù)膭?dòng)態(tài)負(fù)載均衡功能,并且負(fù)載均衡算法可自行設(shè)置◆不能穿透防火墻◆支持群集,但不支持動(dòng)態(tài)負(fù)載均衡算法WebSphereMQ與其它同類(lèi)產(chǎn)品比較WebSphereMQ同類(lèi)產(chǎn)品功能和特性功能和特性◆能夠在防火墻內(nèi)外傳遞數(shù)據(jù),并且在內(nèi)外網(wǎng)分開(kāi)的情況下通過(guò)消息跳轉(zhuǎn)進(jìn)行數(shù)據(jù)傳輸◆群集中支持消息傳輸?shù)膭?dòng)態(tài)負(fù)載均衡功能,并且負(fù)載均衡算法可自行設(shè)置◆不能穿透防火墻◆支持群集,但不支持動(dòng)態(tài)負(fù)載均衡算法五、WebSphereMQ日志W(wǎng)ebSphereMQ日志W(wǎng)ebSphereMQ中日志為系統(tǒng)的穩(wěn)定運(yùn)行和消息的可靠傳遞提供了保障,在WebSphereMQ中扮演著不可缺少的角色。根本上,MQ的對(duì)象操作及對(duì)持久消息的操作都會(huì)記入日志中,在系統(tǒng)故障時(shí)日志可以幫助MQ隊(duì)列管理器在重啟動(dòng)后恢復(fù)到原來(lái)的狀態(tài),所有的持久消息仍然保存不喪失。日志也可以用來(lái)將整個(gè)MQ對(duì)象整體記錄,以便日后進(jìn)行對(duì)象整體恢復(fù)。WebSphereMQ日志數(shù)據(jù)日志文件:WebSphereMQ數(shù)據(jù)日志分成兩局部:多個(gè)日志數(shù)據(jù)文件和一個(gè)日志控制文件。MQ的日志數(shù)據(jù)文件在Windows中缺省在<InstallDir>\log\<QMgrName>\active目錄下,每個(gè)文件缺省大小為4MB。在UNIX中,缺省在/var/mqm/log/<QMgrName>/active目錄下,每個(gè)文件缺省大小4MB。數(shù)據(jù)文件有主數(shù)據(jù)文件〔Primary〕和次數(shù)據(jù)文件〔Secondary〕之分,它們?cè)谖募Y(jié)構(gòu)和大小上都是相同的。隊(duì)列管理器初始啟動(dòng)的時(shí)候只會(huì)創(chuàng)立指定數(shù)量的主數(shù)據(jù)文件,當(dāng)需要的時(shí)候〔比方含有眾多消息操作的長(zhǎng)交易〕會(huì)一個(gè)一個(gè)創(chuàng)立出次數(shù)據(jù)文件,參加到日志數(shù)據(jù)文件中。當(dāng)不再需要時(shí),次數(shù)據(jù)文件又被會(huì)動(dòng)態(tài)刪除。如果所有的次數(shù)據(jù)文件也都用完了,仍不能滿(mǎn)足系統(tǒng)記錄日志的需要,那么系統(tǒng)對(duì)任何日志操作都將返回MQRC_RESOURCE_PROBLEM。主次數(shù)據(jù)文件的數(shù)量由創(chuàng)立隊(duì)列管理器時(shí)的LogPrimaryFiles和LogSecondaryFiles指定。WebSphereMQ日志MQ日志控制文件在Windows中為<InstallDir>\log\<QMgrName>\amqhlctl.lfh,在Unix中,為/var/mqm/log/<QMgrName>/amqhlctl.lfh。日志控制文件中記錄了目前數(shù)據(jù)文件的主次分配、活動(dòng)狀態(tài)等信息。日志的空間是有限的,理論上最大占用空間為:(主日志數(shù)量+次日志數(shù)量)*日志文件大小。如果有長(zhǎng)交易占用了太多的日志空間,系統(tǒng)會(huì)將其強(qiáng)行回滾,以釋放日志空間。WebSphereMQ日志W(wǎng)ebSphereMQ中的日志分為兩種:環(huán)形日志和線(xiàn)性日志。環(huán)形日志可以用來(lái)做重啟恢復(fù)。它記錄了當(dāng)前所有的交易狀態(tài)和交易中的持久消息操作,維護(hù)了所有重啟相關(guān)需要的數(shù)據(jù)。線(xiàn)性日志不僅可以用來(lái)做重啟恢復(fù),還可以用來(lái)做介質(zhì)恢復(fù)。它不但記錄了環(huán)形日志的所有內(nèi)容,還因?yàn)槿罩疚募鲜蔷€(xiàn)性增長(zhǎng)而不會(huì)循環(huán)覆蓋,隊(duì)列管理器創(chuàng)立以來(lái)所有持久消息的活動(dòng)都記錄在案。所以,如果隊(duì)列文件壞了,系統(tǒng)可以憑借完整的日志記錄重建對(duì)象和消息。WebSphereMQ日志LogPrimaryFiles=3|2-62主日志數(shù)據(jù)文件數(shù)量。缺省為3,最小為2,最大為62。主次日志文件之和不大于63,不小于3LogSecondaryFiles=2|1-61次日志數(shù)據(jù)文件數(shù)量。缺省為2,最小為1,最大為61。主次日志文件之和不大于63,不小于3LogFilePages=number日志文件大小,以4KB為單位。Windows平臺(tái),缺省為256,即1MB。最小為32,最大為16,384Unix平臺(tái),缺省為1024,即4MB。最小為64,最大為16,384LogType=CIRCULAR|LINEAR日志類(lèi)型。缺省為環(huán)形日志,CIRCULARLogBufferPages=0|0-512日志緩沖區(qū)大小,以4KB為單位。最小為18,最大為512。缺省為0。如果值為0-17,WebSphereMQ實(shí)際使用18,即72KB。LogPath=dir日志文件目錄LogWriteIntegrity=SingleWrite|DoubleWrite|TripleWrite日志完整性●SingleWrite只寫(xiě)一次日志,在高可靠環(huán)境下,需要硬件保證.●DoubleWrite可能需要寫(xiě)兩次●TripleWrite可能需要寫(xiě)三次,缺省值。平安性高,效率較低WebSphereMQ日志這些日志參數(shù)中,有些在隊(duì)列管理器創(chuàng)立后就不能改動(dòng)了。比方LogType,LogPath,LogFilePages等。有些那么可以調(diào)整,在隊(duì)列管理器重啟后生效。比方LogPrimaryFiles,LogSecondaryFiles,LogBufferPages等。WebSphereMQ日志錯(cuò)誤日志:錯(cuò)誤日志的位置:Windows版本:隊(duì)列管理器名稱(chēng),錯(cuò)誤日志位置:<InstallDir>\qmgrs\qmname\errors隊(duì)列管理器名稱(chēng)未知,錯(cuò)誤日志位置:<InstallDir>\qmgrs\@SYSTEM\errorsWindows版中,錯(cuò)誤信息業(yè)被添加到應(yīng)用程序日志中,所以可以通過(guò)查看Windows系統(tǒng)事件查看器來(lái)檢查MQ錯(cuò)誤日志。UNIX版本:隊(duì)列管理器名稱(chēng),錯(cuò)誤日志位置:/var/mqm/qmgrs/qmname/errors隊(duì)列管理器名稱(chēng)未知,錯(cuò)誤日志位置:/var/mqm/qmgrs/@SYSTEM/errorsWebSphereMQ日志在產(chǎn)品安裝時(shí),在qmgrs目錄下創(chuàng)立@SYSTEMerrors子目錄。Errors子目錄最多含有三個(gè)錯(cuò)誤日志文件,分別是:●AMQERR01.LOG●AMQERR02.LOG●AMQERR03.LOG在創(chuàng)立隊(duì)列管理器后,在需要時(shí)將創(chuàng)立三個(gè)錯(cuò)誤日志文件,這些文件名是AMQERR01、AMQERR02、AMQERR03,并且每一個(gè)文件大小都是256KB,這些文件被放置在創(chuàng)立的隊(duì)列管理器的errors目錄中。當(dāng)產(chǎn)生錯(cuò)誤消息時(shí),它們被放置在AMQERR01中,當(dāng)AMQERR01文件比256KB大時(shí),將其復(fù)制成AMQERR02,復(fù)制前,將AMQERR02復(fù)制到AMQERR03.LOG,這樣將刪除AMQERR03以前的內(nèi)容。因此,最新的錯(cuò)誤總是放在AMQERR01中。WebSphereMQ日志首次故障支持技術(shù)〔FFST〕Windows版中的FFST信息存放在<InstallDir>\errors目錄下UNIX版中的FFST信息存放在var/mqm/errors目錄下這些錯(cuò)誤通常都是嚴(yán)重的,不可恢復(fù)的錯(cuò)誤,主要是系統(tǒng)的配置問(wèn)題或者是MQ內(nèi)部錯(cuò)誤。FFST文件命名:其中:nnnn是報(bào)告錯(cuò)誤進(jìn)程的標(biāo)識(shí)。mm是順序號(hào),通常是0當(dāng)產(chǎn)生FFST記錄時(shí),系統(tǒng)管理員根本上不能自己解決問(wèn)題,需要請(qǐng)求IBM支持中心的幫助六、WebSphereMQ群集WebSphereMQ群集什么是群集很多操作系統(tǒng)與平臺(tái)都提供群集(Cluster)功能,雖然不同軟件對(duì)“群集”一詞的理解各不相同,但是大致意思是:由多機(jī)系統(tǒng)共同擔(dān)負(fù)計(jì)算機(jī)任務(wù),如果其中一個(gè)結(jié)點(diǎn)壞了,剩余的局部會(huì)接管其工作。從本質(zhì)上講,群集要解決的是系統(tǒng)容錯(cuò)與負(fù)載均衡這兩個(gè)問(wèn)題。WebSphereMQ群集WebSphereMQ群集好處:1、跨平臺(tái)多結(jié)點(diǎn)計(jì)算由于WebSphereMQ本身是跨平臺(tái)的中間件,它可以將不同操作系統(tǒng)上的隊(duì)列管理器組織在一個(gè)群集中共同計(jì)算,最大限度地利用現(xiàn)有計(jì)算機(jī)資源2、系統(tǒng)容錯(cuò)在WebSphereMQ中如果有一個(gè)結(jié)點(diǎn)壞了,即該隊(duì)列管理器不工作,那么其它隊(duì)列管理器與它的通道可能斷開(kāi)。一旦發(fā)現(xiàn)這種問(wèn)題,就不會(huì)再有新的消息路由去該結(jié)點(diǎn),群集會(huì)自動(dòng)將其隔離,它的任務(wù)由其它結(jié)點(diǎn)分?jǐn)偂?、負(fù)載均衡缺省情況下多結(jié)點(diǎn)以輪循的方式分配消息,也可以編寫(xiě)用戶(hù)出口,植入自己的分配算法。4、大大簡(jiǎn)化復(fù)雜系統(tǒng)中的通道配置WebSphereMQ群集WebSphereMQ群集概念:1、配置庫(kù):配置庫(kù)是群集的配置信息集合,包括群集中的隊(duì)列管理器名,他們之間的拓?fù)浣Y(jié)構(gòu)、通道、隊(duì)列及相關(guān)配置。這些信息存放于群集隊(duì)列管理器的中。配置庫(kù)分為完全配置庫(kù)和局部配置庫(kù)兩種。前者擁有這個(gè)群集的完整配置,后者只有局部配置,需要從前者處獲得最新的更新信息。2、配置庫(kù)隊(duì)列管理器在配置群集的時(shí)候,可以將隊(duì)列管理器配置成配置庫(kù)隊(duì)列管理器。該隊(duì)列管理器擁有整個(gè)群集的完全配置信息庫(kù),在群集中處于中心地位。其他參與群集的隊(duì)列管理器可以與其通過(guò)群集通道保持聯(lián)系,自動(dòng)獲得更新信息。發(fā)送和查詢(xún)這些信息是通過(guò)完成的。WebSphereMQ群集WebSphereMQ群集概念:3、群集通道:群集通道分為群集發(fā)送通道和群集接收通道,用于群集信息及其應(yīng)用消息的發(fā)送,缺省配置可以參考和●群集發(fā)送通道〔Cluster-Sender〕用來(lái)向群集中其他隊(duì)列管理器發(fā)送應(yīng)用消息和有關(guān)群集配置更新的消息●群集接收通道〔Cluster-Receiver〕用來(lái)從群集中其他隊(duì)列管理器接收應(yīng)用消息和有關(guān)群集配置更新的消息群集接收通道在與對(duì)方的群集發(fā)送通道相連后,會(huì)自動(dòng)建立反向的通道,只要對(duì)方也建立了相應(yīng)的群集接收通道即可連上。所以,配置庫(kù)隊(duì)列管理器可以只定義群集接收通道,以備連接。普通隊(duì)列管理器需要定義群集發(fā)送通道連接配置庫(kù),同時(shí)需要定義群集接收通道,以備反向連接。WebSphereMQ群集WebSphereMQ群集概念:4、群集隊(duì)列:群集隊(duì)列有點(diǎn)像Windows中的共享文件夾。隊(duì)列屬于宿主隊(duì)列管理器,一旦變成群集隊(duì)列后,在整個(gè)群集中可見(jiàn),其他群集成員可以向其發(fā)送消息,而無(wú)需遠(yuǎn)程隊(duì)列定義。不同的群集隊(duì)列管理器可以定義同名的群集隊(duì)列,這樣在群集中可以看到多個(gè)同名群集隊(duì)列實(shí)體,這就形成了多實(shí)體環(huán)境。送往這些同名實(shí)體消息可以輪流地落入這些隊(duì)列中,從而到達(dá)負(fù)載均衡的效果。但它的應(yīng)用前提是,消息路徑上沒(méi)有同名的本地隊(duì)列,否那么該本地隊(duì)列有優(yōu)先權(quán),消息都會(huì)落入其中而停止進(jìn)一步路由。5、群集傳輸隊(duì)列群集中的每個(gè)隊(duì)列管理器都有一個(gè)名為的傳輸隊(duì)列,用來(lái)傳送應(yīng)用消息和群集配置信息。WebSphereMQ群集WebSphereMQ群集配置舉例〔1〕:Cluster名為SHINE,其中QM1為配置庫(kù)隊(duì)列管理器。圖中方向箭頭表示群集發(fā)送通道。Cluster中的每一個(gè)隊(duì)列管理器至少有一個(gè)群集接收通道,普通隊(duì)列管理器至少有一個(gè)群集發(fā)送通道指向某個(gè)配置庫(kù)。配置庫(kù)QM1QM2QM3SHINEWebSphereMQ群集配置舉例〔2〕:Cluster名為SHINE,含兩個(gè)配置庫(kù)〔QM1、QM2〕。普通隊(duì)列管理器QM3與QM1相連,QM4與QM2相連。連接后,配置庫(kù)會(huì)首先建立反向通道QM1→QM3,QM2→QM4接著,連個(gè)配置庫(kù)交換信息,QM3和QM4也會(huì)得到更新信息,得知還有其他隊(duì)列管理器存在,會(huì)自動(dòng)進(jìn)一步建立通道QM1←→QM4,QM2←→QM3,最終形成全連通結(jié)構(gòu)。屆時(shí),可以通過(guò)displaychstatus〔*〕命令可以看到。WebSphereMQ群集配置庫(kù)QM1QM2QM3SHINE配置庫(kù)QM2WebSphereMQ群集配置舉例〔3〕:Cluster名為SHINE,含QM1、QM2。其中QM1為配置庫(kù)隊(duì)列管理器。Cluster外的QM3由于平臺(tái)不支持Cluster,只能通過(guò)傳統(tǒng)方式〔Sender/Receiver〕接入,QM2扮演Gateway角色,群集中QM1和QM2可以發(fā)送消息到QM3,反過(guò)來(lái),QM3頁(yè)可以發(fā)送消息給QM1和QM2,作為群集網(wǎng)關(guān)的QM2可以是Cluster中的配置庫(kù)隊(duì)列管理器,也可以使普通隊(duì)列管理器WebSphereMQ群集配置庫(kù)QM1群集網(wǎng)關(guān)QM2QM3SHINEWebSphereMQ群集配置舉例〔4〕:QM1同時(shí)屬于兩個(gè)群集Cluster1和Cluster2,兩個(gè)群集中的隊(duì)列管理器需要互通消息,QM1扮演群集網(wǎng)橋的角色,由于QM1位置特殊,如果在其上定義遠(yuǎn)程隊(duì)列,指向QM2和QM3中的本地隊(duì)列,再將這些遠(yuǎn)程隊(duì)列在各自的群集中共享,那么Cluster1中的QM1和QM2都能發(fā)送消息到QM3,反過(guò)來(lái)也是。。WebSphereMQ群集配置庫(kù)QM2群集網(wǎng)橋QM1SHINE1SHINE2配置庫(kù)QM3WebSphereMQ群集配置舉例〔5〕:群集SHINE中有兩個(gè)同名群集隊(duì)列QL,稱(chēng)為多隊(duì)列實(shí)例。群集中其他隊(duì)列管理器會(huì)看見(jiàn)兩個(gè)QL,連接其上的應(yīng)用程序在MQOPEN時(shí)如果選項(xiàng)為MQOO_BIND_NOT_FIXED或者選項(xiàng)為MQOO_BIND_AS_Q_DEF且QL屬性為DEFBIND(NOTFIXED),那么翻開(kāi)隊(duì)列時(shí)并不會(huì)指定任何一個(gè)QL。在MQPUT的時(shí)候消息會(huì)輪流路由兩個(gè)QL,到達(dá)負(fù)載均衡效果WebSphereMQ群集配置庫(kù)QM1QM2SHINEQM3QLQLWebSphereMQ群集配置舉例〔6〕:例子3和例子5的組合WebSphereMQ群集群集網(wǎng)關(guān)配置庫(kù)QM1QM2SHINEQM3QLQLQM4七、WebSphereMQ死信處理死信消息:持久性消息在無(wú)法送達(dá)目標(biāo)隊(duì)列時(shí)會(huì)放入就近的死信隊(duì)列。在創(chuàng)立隊(duì)列管理器時(shí),系統(tǒng)的缺省對(duì)象中有一個(gè)死信隊(duì)列,但是隊(duì)列管理器的缺省設(shè)置DEADQ為空。缺省情況下這個(gè)死信隊(duì)列并沒(méi)有啟用。所以在應(yīng)用設(shè)計(jì)時(shí)要用MQSC的ALTERQMGR命令為每個(gè)隊(duì)列管理器設(shè)置缺省死信隊(duì)列。死信隊(duì)列本質(zhì)是一個(gè)本地隊(duì)列,可以MQPUT或者M(jìn)QGET操作,由隊(duì)列管理器轉(zhuǎn)發(fā)到死信隊(duì)列上的消息會(huì)自動(dòng)加上一個(gè)死信頭(MQDLH)。MQMD+MQDLH+Data組成WebSphereMQ死信處理死信隊(duì)列處理器:對(duì)死信消息進(jìn)行處理的程序會(huì)管理死信隊(duì)列,稱(chēng)為死信隊(duì)列處理〔DeadLetterQueueHandler),它的本質(zhì)上就是一個(gè)WebSphereMQ應(yīng)用程序??梢宰孕性O(shè)計(jì)并編寫(xiě)死信隊(duì)列處理器,通過(guò)死信頭的Reason域可以知道死信產(chǎn)生原因,為診斷問(wèn)題提供線(xiàn)索。通過(guò)DestQName和DestQMgrName可以知道消息的目的地,可根據(jù)需要重發(fā)或者轉(zhuǎn)發(fā)。WebSphereMQ提供了一個(gè)缺省的死信隊(duì)列處理器,它是一個(gè)應(yīng)用程序,監(jiān)聽(tīng)制定隊(duì)列管理器上的指定隊(duì)列,從標(biāo)準(zhǔn)輸入上讀取處理規(guī)那么,讀到EOF結(jié)束〔UNIX中EOF為Ctrl+D,Windows中EOF為Ctrl+Z〕,結(jié)果輸出到標(biāo)準(zhǔn)輸出上,通過(guò)對(duì)輸入輸出的重定向,它可以接受來(lái)自規(guī)那么文件的輸入。如:runmqdlq[DLQName[QMgrName]]其中:DLQName為死信隊(duì)列名稱(chēng);QmgrName為死信隊(duì)列管理器名稱(chēng)。例:runmqdlqSYSTEM.DEAD.LETTER.QUEUEQM<DLQ.rule其中:DLQ.rule為死信隊(duì)列規(guī)那么文件。WebSphereMQ死信處理死信規(guī)那么文件:死信隊(duì)列處理器的規(guī)那么文件由控制數(shù)據(jù)〔ControlData〕和規(guī)那么〔Rules〕兩局部組成,文件的第一個(gè)非空行〔Entry〕為ControlData,以后的非空行〔Entry〕為Rules,如同MQSC規(guī)那么,每個(gè)非空行可以由多個(gè)輸入行組成,其中,+表示后繼行從第一個(gè)非空字符開(kāi)始,-表示后繼行從行首第一個(gè)字符開(kāi)始,為了保持可移植性,建議每個(gè)輸入行不要超過(guò)72個(gè)字符。WebSphereMQ死信處理控制數(shù)據(jù):控制數(shù)據(jù)由多個(gè)參數(shù)和值組成例:INPUTQ(ABC1.DEAD.LETTER.QUEUE)INPUTQM(ABC1.QUEUE.MANAGER)

WebSphereMQ死信處理參數(shù)缺省值可取值說(shuō)明NPUTQ空

空QueueName

1.如果在runmqdlq中指定了DLQName參數(shù),則覆蓋INPUTQ值2.如果在runmqdlq中未指定了DLQName參數(shù),INPUTQ值非空,則取INPUTQ值3.如果在runmqdlq中未指定了DLQName參數(shù),INPUTQ值為空,且runmqdlq中指定QMgrName,則取QMgrName上的死信隊(duì)列4.如果在runmqdlq中未指定了DLQName參數(shù),INPUTQ值為空,且runmqdlq中未指定QmgrName,則取INPUTQM上的死信隊(duì)列。如果INPUTQM為空,表示缺省隊(duì)列管理器WebSphereMQ死信處理參數(shù)缺省值可取值說(shuō)明INPUTQM空

空QueueName

1.如果在runmqdlq中指定了QMgrName,則覆蓋INPUTQM值2.如果在runmqdlq中未指定了QmgrName,則使用INPUTQM值3.INPUTQM值為空,表示使用缺省隊(duì)列管理器RETRYINT

60

Interval(秒)

隔一段時(shí)間,runmqdlq會(huì)重試一次

WAIT

YES

YES

Runmqdlq會(huì)一直等待新的消息到來(lái),即使死信隊(duì)列為空NO

Runmqdlq在死信對(duì)列為空或沒(méi)有可以處理的消息時(shí)自動(dòng)退出Interval(秒)

Runmqdlq在一段時(shí)間內(nèi)沒(méi)有消息可以處理,則自動(dòng)退出規(guī)那么文件:規(guī)那么由多個(gè)匹配模式〔Pattern〕和處理動(dòng)作〔Action〕組成,其中,Pattern表示匹配條件,Action表示處理。Pattern和Action也都是由參數(shù)和值組成,如:PERSIST(MQPER_PERSISTENT)REASON(MQRC_PUT_INHIBITED)+ACTION(RETRY)RETRY(3)Pattern參數(shù)說(shuō)明WebSphereMQ死信處理參數(shù)缺省值可取值說(shuō)明APPLIDAT**或ApplIdentityData匹配消息的MQMD.ApplIdentityDataAPPLNAME**或PutApplName匹配消息的MQMD.PutApplName,即MQPUT或MQPUT1的應(yīng)用名字APPLTYPE**或PutApplType匹配消息的MQMD.PutApplTypeDESTQ**或QueueName匹配消息中的目標(biāo)隊(duì)列,MQDLH.DestQNameWebSphereMQ死信處理DESTQM**或QmgrName匹配消息中的目標(biāo)隊(duì)列管理器,MQDLH.DestQMgrNameFEEDBACK**或Feedback當(dāng)消息的MQMD.MsgType==MQFB_REPORT時(shí),F(xiàn)eedback指定報(bào)告的方式,如:Feedback==MQFB_COAFORMAT**或Format匹配消息MQMD.Format,即消息發(fā)送時(shí)的消息類(lèi)型MSGTYPE**或MsgType指定消息類(lèi)型,如MsgType==MQMT_REQUESTPERSIST**或Persistence指定消息的Persistence屬性,如Persistence==MQPERT_PERSISTENTREASON**或ReasonCode指定消息放入DLQ的原因,如ReasonCode==MQRC_Q_FULLREPLYQ**或QueueName匹配消息的MQMD.ReplyToQREPLYQM**或QmgrName匹配消息的MQMD.ReplyToQMgrUSERID**或UserIdentifier匹配消息的MQMD.UserIdentifierAction參數(shù)說(shuō)明WebSphereMQ死信處理參數(shù)缺省值可取值說(shuō)明ACTION無(wú)DISCARD將消息從DLQ中直接刪除IGNORE將消息留在DLQ中RETRY如果對(duì)消息的處理不成功,重試。后繼RETRY指定次數(shù),DataControl中的RETRYINT指定時(shí)間間隔FWD將消息移到其他隊(duì)列上,隊(duì)列名由FWDQ指定FWDQ無(wú)QueueName指定轉(zhuǎn)移的隊(duì)列名&DESTQMQDLH.DestQName&REPLYQMQMD.ReplyToQ為了防止匹配到MQMD.ReplyToQ為空的消息(這樣的消息無(wú)法做轉(zhuǎn)送處理),可以在Pattern中指定REPLYQ(?*),則至少可以匹配到一個(gè)非空字符Action參數(shù)說(shuō)明WebSphereMQ死信處理參數(shù)缺省值可取值說(shuō)明FWDQM空空指定DLQ所屬的隊(duì)列管理器QMgrName指定轉(zhuǎn)移的隊(duì)列管理器名&DESTQMMQDLH.DestQMgName&REPLYQMMQMD.ReplyToQMgrHEADERYESYES針對(duì)ACTION(FWD),轉(zhuǎn)移后的消息帶著MQDLHNO針對(duì)ACTION(FWD),轉(zhuǎn)移后的消息不帶著MQDLHAction參數(shù)說(shuō)明WebSphereMQ死信處理參數(shù)缺省值可取值說(shuō)明PUTAUTDEFDEFMQPUT時(shí)用DLQHandler做身份驗(yàn)證CTXMQPUT時(shí)用消息上下文中的UserId做身份驗(yàn)證RETRY1RetryCount可以取值

1~999999999,重試的最大次數(shù),與ControlData中的RETRYINT配合使用,如果在重試期間DLQHandler重啟,則重試計(jì)數(shù)歸零規(guī)那么文件例子:*runmqdlq監(jiān)視隊(duì)列管理器QM中的隊(duì)列Q,即Q為死信隊(duì)列INPUTQ(Q)INPUTQM〔QM〕*但凡因?yàn)槟繕?biāo)隊(duì)列滿(mǎn)被放入死信隊(duì)列的消息,可以隔一段時(shí)間重試〔RETRYINT參數(shù)。缺省為60秒〕,共重試5秒REASON〔MQRC_Q_FULL〕ACTION(RETRY)RETRY(5)*但凡因?yàn)槟繕?biāo)隊(duì)列不允許PUT而被放入死信隊(duì)列的消息,可以隔一段時(shí)間重試〔RETRYINT參數(shù)。缺省為60秒〕,共重試5次REASON〔MQRC_PUT_INHIBITED〕ACTION〔RETRY〕RETRY(5)*但凡因?yàn)闊o(wú)法投遞到隊(duì)列管理器QM而被放入死信隊(duì)列的消息都被自動(dòng)送往隊(duì)列管理器QM2,隊(duì)列名與原來(lái)相同DESTQM(QM1)ACTION(FWD)FWDQ(&DESTQ)FWDQM(QM2)*最后,無(wú)法匹配的消息都送往ACTION(FWD)FWDQ(REALLY.DEAD.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論