最近收到來自一台測試機寄來的NDR副本,錯誤訊息為530 5.7.1 Client was not authenticated,因為那台測試機上面裝有SMTP服務,所以很直覺的認為是SMTP服務問題,然後測試了一下,發現同樣的程式,一下可以寄信,一下不能寄信,很詭異吧,明明沒收到信,有時收的到NDR,有時候又收不到,超怪的,怪到我都懷疑自己對SMTP是不是完全不懂了,經過幾天的測試研究,終於找到問題了,特此紀錄
首先我看了一下SMTP的設定,沒什特別的啊,我沒動,比對一下另一台專門發信機器的設定,沒什不一樣的,不過那台在DMZ,網路環境不一樣可能不准,這時想到有時出問題,移除重裝一下就會好,於是我又重裝SMTP,結果還是一樣,時好時壞,於是我又再另外一台電腦上裝SMTP與POP3,透過測試機的SMTP發到新裝的這台,再去新裝的這台收信,皆正常,不會有一下收的到,一下收不到的問題
看來不像是SMTP服務的問題,只好去看SMTP的log啦,終於看到奇怪的地方啦,以下是寄不出去信的log,我只擷取需要的部分
2010年4月25日 星期日
2010年3月28日 星期日
SSIS的ErrorCode
SSIS的資料流程工作,若轉換流程中發生錯誤,將會導致轉換失敗,若不想讓轉換失敗,是可以設定錯誤輸出將錯誤的資料列導向另一各目的地,像我是直接導到文字檔,該文字檔除了資料列本身的欄位外,還會有ErrorCode 和 ErrorColumn這兩各欄位資訊,不過這兩個欄位只包含數字碼,一開始根本看不懂是什,之後我發現ErrorColumn是指發生錯誤資料行的識別碼,原來是可以在資料來源的進階編輯器\輸入與輸出屬性\輸出資料行\通用屬性裡的ID即是該錯誤資料行的識別碼,如下圖
2010年2月21日 星期日
無法開啟 bcp 的主資料檔
之前為了讓user能夠用簡單的程式將文字檔載入SQL Server,想到用bcp配合batch檔,然後用Bat_To_Exe_Converter封裝成exe給User執行,一年過後,user反應程式忽然不能正常執行了,出現如下錯誤
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]無法開啟 BCP 的主資料檔
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]無法開啟 BCP 的主資料檔
2010年2月7日 星期日
封裝的Protection Level
以前在Business Intelligence Development Studio 設計SSIS封裝時,不太了解Protection Level的差異,都用預設的,結果明明在BIDS執行成功的,佈署到SQL Server上後執行就失敗,想說SSIS怎麼那麼難用啊,封裝設計的還真複雜,之前的DTS簡單多了,但又不能不用,只好研究了一下各Protection Level的差別囉
我就一一設定不同Protection Level,除了ServerStorage以外,因為這是部署到msdb上才會用的,存檔後看看封裝檔案dtsx的大小,與dtsx內容跟連線密碼有關的部分,還有用Dtexecui執行的狀況,整理如下圖
我就一一設定不同Protection Level,除了ServerStorage以外,因為這是部署到msdb上才會用的,存檔後看看封裝檔案dtsx的大小,與dtsx內容跟連線密碼有關的部分,還有用Dtexecui執行的狀況,整理如下圖
2010年1月23日 星期六
EXCEL讀取特定編碼的CSV會變亂碼
最近剛好用EXCEL打開一個CSV檔時,發現中文字竟變成亂碼,可是用記事本打開是正常的,覺得很怪,於是上網搜尋了一下相關資訊,好像是檔案編碼不同造成的,EXCEL似乎只支援ANSI(BIG5)格式的CSV檔,Unicode的會有問題,於是自己測試了一下各個編碼的差異
整理如下圖
整理如下圖
2010年1月16日 星期六
OLE DB目的地的插入認可大小上限2147483647
若在SQL 2005的SSIS封裝中使用[OLE DB 目的地],在偵錯時有時封裝會一直執行不完,明明資料已經載完了,可是又沒當,可以手動停止偵錯,很怪
找找[OLE DB 目的地]的設定,發現有個[插入認可大小上限](Maximum insert commit size),預設值為0,這個值是用在當單一資料列發生錯誤時,有多少筆會被Redirect(or Rollback)的意思,我嘗試設為別的值好像就比較不會發生封裝停止回應的事
找找[OLE DB 目的地]的設定,發現有個[插入認可大小上限](Maximum insert commit size),預設值為0,這個值是用在當單一資料列發生錯誤時,有多少筆會被Redirect(or Rollback)的意思,我嘗試設為別的值好像就比較不會發生封裝停止回應的事
2010年1月10日 星期日
Error code: 0x80040E00
不知為什,在SSIS中,當我[OLE DB 來源]使用IBMDA400或IBMDASQL的Provider時,在設計階段不會出錯,但執行時卻會出現如下錯誤訊息(我之前用不會耶...@@)
[OLE DB 來源 [1]] 錯誤: SSIS 錯誤碼 DTS_E_OLEDBERROR。發生 OLE DB 錯誤。錯誤碼: 0x80040E00。
錯誤: SSIS 錯誤碼 DTS_E_PRIMEOUTPUTFAILED。在 元件 "OLE DB 來源" (1) 上的 PrimeOutput 方法傳回錯誤碼 0xC0202009。當管線引擎呼叫 PrimeOutput() 時,元件傳回失敗碼。在此之前可能已公佈過錯誤訊息,說明有關此失敗的詳細資訊。
訂閱:
文章 (Atom)