BizTalk Adapter for FTP訪問小型機問題及處理
【轉】
作者:鄭佐
日期:2008-1-13
摘要
前段時間,筆者在實施一個BizTalk Server 2006 解決方案的時候,部分功能模組需要訪問IBM小型機,結果在使用BizTalk Adapter for FTP時碰到問題,查詢原因發現是FTP 接收介面卡存在一些問題,不得不區域性調整資料傳輸方式。由於問題特殊,因此筆者記下相關資訊並提供解決方案以供碰到類似情況的技術人員參考。
異常現象
FTP 接收介面卡在讀取了小型機上的報文後無法刪除小型機FTP伺服器上的報文,但是已讀取未刪除的報文在傳送埠上有傳輸,而且那些未刪除的報文會不停的通過傳送埠傳輸。如果對FTP介面卡設定了本地臨時目錄,檢視臨時目錄,會看到目錄中有報文不被處理,而且數量同無法刪除的報文數量相同。
分析原因
檢視BizTalk執行情況和異常現象,一開始想到的是IBM小型機上的FTP授權存在問題,經過確認,不是該原因,因為通過FTP命令能夠刪除BizTalk FTP接收介面卡無法刪除的報文。順便提一下有一個奇怪的現象,通過3.5版本的FLASHFXP連線到IBM小型機上的FTP伺服器無法看到報文檔案。IBM小型機採用OpenVMS V6.2作業系統。
看來可以縮小查詢問題的範圍了,開啟BizTalk中對應的接收位置,開啟FTP介面卡的傳輸屬性對話方塊。設定“日誌”屬性,指定值來儲存FTP接收介面卡的FTP操作命令日誌。不出所料,檢視生成的FTP日誌找到了問題所在。
以下是部分日誌內容:
> PWD
< 257 "EDI_MESSAGE:[MSG.EDI.XML]" is current directory.
> TYPE A
< 200 TYPE set to ASCII.
> PORT 10,90,1,23,13,47
< 200 PORT command successful.
> LIST *.LOG;*
< 150 Opening data connection for EDI_MESSAGE:[MSG.EDI.XML]*.LOG;* (10.90.1.23,3375)
<
< Directory EDI_MESSAGE:[MSG.EDI.XML]
<
< EDI_20071227140214.LOG;2
< EDI_20071227140214.LOG;1
< EDI_20071227152250.LOG;1
<
< Total of 3 files, 442/486 blocks
< 226 LIST Directory transfer complete.
> TYPE I
< 200 TYPE set to IMAGE.
> PORT 10,90,1,23,13,48
< 200 PORT command successful.
> RETR EDI_20071227140214.LOG
< 150 Opening data connection for EDI_MESSAGE:[MSG.EDI.XML]EDI_20071227140214.LOG;2 (10.90.1.23,3376)
< 226 Transfer complete.
> DELE EDI_20071227140214.LOG
< 550-Failed to delete file EDI_MESSAGE:[MSG.EDI.XML]EDI_20071227140214.LOG;
< 550 The file specification must contain a version number (even if wildcarded).
> TYPE I
< 200 TYPE set to IMAGE.
> PORT 10,90,1,23,13,58
< 200 PORT command successful.
> RETR EDI_20071227140214.LOG
< 150 Opening data connection for EDI_MESSAGE:[MSG.EDI.XML]EDI_20071227140214.LOG;2 (10.90.1.23,3386)
< 226 Transfer complete.
> DELE EDI_20071227140214.LOG
< 550-Failed to delete file EDI_MESSAGE:[MSG.EDI.XML]EDI_20071227140214.LOG;
< 550 The file specification must contain a version number (even if wildcarded).
> TYPE I
< 200 TYPE set to IMAGE.
> PORT 10,90,1,23,13,59
< 200 PORT command successful.
> RETR EDI_20071227152250.LOG
< 150 Opening data connection for EDI_MESSAGE:[MSG.EDI.XML]EDI_20071227152250.LOG;1 (10.90.1.23,3387)
< 226 Transfer complete.
> DELE EDI_20071227152250.LOG
< 550-Failed to delete file EDI_MESSAGE:[MSG.EDI.XML]EDI_20071227152250.LOG;
< 550 The file specification must contain a version number (even if wildcarded).
> QUIT
< 221 Goodbye. |
根據執行的FTP命令:
> DELE EDI_20071227140214.LOG
< 550-Failed to delete file EDI_MESSAGE:[MSG.EDI.XML]EDI_20071227140214.LOG;
< 550 The file specification must contain a version number (even if wildcarded).
可以看出在執行刪除操作的時候,沒有新增檔案的版本號,導致小型機上的檔案刪除操作失敗。如果FTP Adapter本身沒有提供好的解決途徑的話,那這個算不算是FTP Adapter的Bug?目前筆者也沒查到有資料說介面卡本身就不支援這種方式。
解決方式
根據以上分析無論怎麼樣,解決方式有許多,這裡只介紹幾種。
1.一開始想到使用FTP介面卡屬性上提供的Get 後和Get前設定。對其設定要執行的FTP命名(使用分號“;”分割命名)。但是由於是正式環境,不敢在小型機上測試,沒有深入研究。
2.想到最簡單的實現就是把報文從小型機傳輸到微機伺服器。在IBM小型機上執行應用程式,通過該應用程式訪問基於Windows 的FTP伺服器,從而把傳輸報文到Windows平臺由BizTalk進一步處理。
2.比較理想的實現還是使用IBM WebSphere MQ,通過中間一臺Window伺服器安裝IBM WebSphere MQ 和 BizTalk MQSeries Agent,由Windows平臺的WebSphere MQ同小型機上的WebSphere MQ進行訊息交換。BizTalk Server可以通過MQSeries介面卡訪問Windows上的MQSeries間接同小型機互動,全過程實現事務支援。
其他說明
在使用BizTalk FTP介面卡訪問IBM小型機的時候,需要設定FTP介面卡傳輸屬性的“表示”項為“ASCII”,如果設定為“二進位制”,筆者發現OpenVMS系統和Windows系統之間的報文交換會出現一些問題,不過設定成“ASCII”後,FTP介面卡的臨時資料夾功能就不會被支援,如果設定了臨時資料夾你會收到“僅在傳送或接收二進位制表示型別的檔案時才可使用臨時資料夾”的錯誤提示。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-159329/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 寶塔 ftp訪問不了的問題 filezilla訪問不了Purefpt服務FTP
- 教你如何處理Nginx禁止ip加埠訪問的問題Nginx
- 二、Git 問題彙總及處理Git
- SVN異常處理——禁止訪問
- React TSLint中常見的問題及處理方法React
- [git] git問題處理Git
- golang json處理問題GolangJSON
- win10訪問win7印表機拒絕訪問怎麼辦 win10訪問win7上的印表機拒絕訪問處理方法Win10Win7
- 客戶端(windows)訪問FTP伺服器遇到的問題(總結)客戶端WindowsFTP伺服器
- Docker使用Calico網路模式配置及問題處理Docker模式
- Centos7 配置靜態ip及問題處理CentOS
- Ubuntu處理依賴問題Ubuntu
- 資料處理--pandas問題
- 處理SQLServer errorlog滿問題SQLServerError
- 併發問題處理方式
- Linux 問題處理集錦Linux
- Kafka叢集訊息積壓問題及處理策略Kafka
- 網站高併發大流量訪問的處理及解決方法網站
- 快速搭建和訪問 FTP 伺服器FTP伺服器
- oracle SP2-問題處理Oracle
- 記憶體分配問題處理記憶體
- gc buffer busy acquire問題處理GCUI
- 如何處理HTTP 503故障問題?HTTP
- 如何處理 No DMARC Record Found 問題
- 【問題處理】IPC Send timeout detected
- MySQL:亂碼問題處理流程MySql
- PHP 開發版本問題處理PHP
- 【故障處理】TNS-04610問題
- JVM問題分析處理手冊JVM
- 轉載:Java處理高併發量訪問的處理總結Java
- Oceanbase忘記OCP訪問密碼處理方案密碼
- 印表機拒絕訪問是什麼問題 win10共享印表機拒絕訪問Win10
- 資料庫主機重啟卡住問題處理分享資料庫
- 檢測ftp連線問題FTP
- idea 訪問 jsp 404問題IdeaJS
- 2.0 Elasticsearch7.1 ES在Linux下安裝問題處理(外網訪問良心優化版)ElasticsearchLinux優化
- 無法訪問GitHub網站及無法正常操作倉庫的處理方法Github網站
- RAC磁碟頭損壞問題處理
- Redis 快取常見問題處理Redis快取