アプリケーションイベントログからSSISエラーを表示するためにサーバーイベントログを正常に読み取っています。その目的は、管理者としてサーバーにログインすることなく、最初の行のトラブルシューティングを行うことができるようにすることです。ASP.NETのSSISエラーのイベントログからパッケージ名(ソース名)を取得する方法
私はソースがSQLISPackage110である場合のエラーを表示するためにvb.netのEventLogEntryを使用しています。しかし、私が困惑しているのは、イベントログのエラーを見るときに、パッケージ名を表示する「ソース名」プロパティがあるということです。しかし、EventLogEntryはこのプロパティを持っていないようで、どのパッケージがエラーを返したかを知ることができません。
誰もがこの問題に遭遇し、それを回避する方法を見つけることができましたか?あなたが気づいてきたよう エラーのスクリーンショットと私vb.netのコードの一部が
Dim myEventLogEntryCollection As EventLogEntryCollection = myEventLog1.Entries
myEventLog1.Close()
Dim x As Integer
Dim entry As EventLogEntry
If myEventLogEntryCollection.Count > 0 Then
strTable += "<table class='table table-bordered'><tr><th>Time Written</th><th>Source</th><th>Event type</th><th>Message</th></tr>"
For Each entry In myEventLogEntryCollection.Cast(Of EventLogEntry).Reverse 'cast and reverse to show newest first
If entry.Source = strEventSource And (entry.EntryType.ToString = "Error" Or entry.EntryType.ToString = "Warning") Then
strTable += "<tr>"
strTable += "<td>" + entry.TimeWritten.ToShortDateString + " " + entry.TimeWritten.ToShortTimeString + "</td>"
strTable += "<td>" + entry.Source.ToString + "</td>"
strTable += "<td>" + entry.EntryType.ToString + "</td>"
strTable += "<td>" + entry.Message + "</td>"
strTable += "</tr>"
x += 1
End If
If x > 100 Then Exit For 'could be 1000s in the log
Next
strTable += "</table>"
End If
感謝。 Windowsのイベントログはデフォルトのようですが、私は今あなたが提案したようにSQLログを追加しました - – Webbo
でうまくいっています。あなたのSQLバージョンに応じて、Microsoftは 'sysssislog'テーブルを解析するためのいくつかの事前構築されたSSRSレポートを持っています。恥知らずのプラグインですが、私は 'sysssislog'テーブルから役に立つ情報を収集するのに役立つように[この記事(http://troywitthoeft.com/simple-ssis-package-monitoring-for-sql-server-2008/)]と書いています。 –