SSIS パッケージを構築し、イベント ハンドラーを実装しようとしています。
完全なプロセスのどこかでエラーが発生するたびに、System::SourceName 、 System::ErrorDescription 、 System::ErrorCode、およびSystem::ExecutionInstanceGUIDを使用してテーブルにログ エントリを作成する必要があります。
このために、以下に示すようなテーブルを作成しました。
CREATE TABLE [dbo].[ErrorLog]([LogID] [int] IDENTITY(1,1) NOT NULL,
[ExecutionID] [nvarchar](255) NULL,[SourceName] [varchar](255) NOT NULL,
[Message] [nvarchar](max) NOT NULL,
[MessageCode] [int] NOT NULL,
[LogDateTime] [datetime] NOT NULL
) ON [PRIMARY]
パッケージ レベルでOnErrorイベント ハンドラを作成しました。使用される SQL クエリは INSERT INTO [ErrorLog]([ExecutionID],[SourceName],[Message],[MessageCode],
[LogDateTime]) VALUES(?,?,?,?,getdate()) です。
私が直面している問題は、パッケージ内のどこかでエラーが発生すると、イベント ハンドラーが呼び出しを示す緑色になりますが、データベースのテーブルにはエントリが表示されません。
ただし、そのテーブルに手動で新しい行を作成するたびに、列 [LogID] の次の ID 値で新しい行が追加されるため、エラーが発生するたびに行が挿入されると確信しています。
たとえば、LogID 列の値が74で、パッケージでエラーが発生した場合、行が追加されず、ErrorLog テーブルにレコードを手動で挿入すると、挿入される ID は76であるとします。
何がうまくいかないのかわからない。
私はこの修正を行っており、何か助けていただければ幸いです。
ありがとうモヒット