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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HP小型機CPU IDEL值過低問題處理IDE
- FTP訪問格式FTP
- 二、Git 問題彙總及處理Git
- GridLayout的使用及問題處理
- mysql常用語句及問題處理MySql
- GoldenGate常見問題及處理Go
- 教你如何處理Nginx禁止ip加埠訪問的問題Nginx
- ASP.NET一般處理程式訪問Session問題ASP.NETSession
- servlet處理下載的問題,要考慮訪問量大時的效率問題Servlet
- mysql5.7安裝及問題處理MySql
- 傳輸表空間及問題處理
- 處理客戶小機問題[一則]
- rman建立catalog過程及問題處理
- BizTalk 2013R2 WCF-LOB Oracle Adapter安裝配置/問題&解決方法OracleAPT
- 處理問題的方法
- perl中文處理問題
- 漢字處理問題?
- xml處理的問題XML
- 貨品問題處理
- win10訪問win7印表機拒絕訪問怎麼辦 win10訪問win7上的印表機拒絕訪問處理方法Win10Win7
- 客戶端(windows)訪問FTP伺服器遇到的問題(總結)客戶端WindowsFTP伺服器
- React TSLint中常見的問題及處理方法React
- Centos7 配置靜態ip及問題處理CentOS
- Docker使用Calico網路模式配置及問題處理Docker模式
- 總結logminer使用及各種問題處理
- ORACLE 11G EM 配置命令及問題處理Oracle
- 我也想問個adapter的問題?APT
- 關於ADAPTER的問題APT
- 通過FTP訪問ASM磁碟組FTPASM
- golang json處理問題GolangJSON
- 併發問題處理方式
- ASMCMD處理問題一則ASM
- mysql的處理能力問題MySql
- RMAN處理split block問題BloC
- mysql問題處理兩則MySql
- Oracle啟動問題處理Oracle
- mysql 問題處理二則MySql
- Oracle壞塊問題處理Oracle