| Error Logging mit Event Handler |
|
|
|
| Donnerstag, den 15. Juli 2010 um 08:26 Uhr | |||||||||||||||||||||||||||||||
|
Hin und wieder müssen wie SSIS pakte debuggen. Hier wird ein vernünftiger Mechanismus benötigt, Zunächst erststellen wir eine Tabelle die die Fehler Informationen aufnehmen soll:
CREATE DATABASE [ErrorDB] Go USE [ErrorDB] GO CREATE TABLE [dbo].[ErrorLog]( [ErrorLogID] [INT] IDENTITY(1,1) NOT NULL, [PackageLogID] [INT] NULL, [PackageName] [VARCHAR](100) NULL, [TaskName] [VARCHAR](100) NULL, [PrcocedureName] [VARCHAR](100) NULL, [ErrorCode] [BIGINT] NULL, [ErrorMsg] [VARCHAR](5000) NULL, [PackageDuration] [INT] NULL, [ContainerDuration] [INT] NULL, [ErrorDate] [DATETIME] NULL, CONSTRAINT [PK_ErrorLog] PRIMARY KEY CLUSTERED ( [ErrorLogID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[ErrorLog] ADD CONSTRAINT [DF_ErrorLog_ErrorDate] DEFAULT (GETDATE()) FOR [ErrorDate] GO
Öffnen Sie und das entsprechende SSIS-Pakt und markieren Sie den Task, für den das Error-LOG
Markieren Sie das Register Event-Handler und wählen Sie den Event-Handler OnError aus. Benennnen Sie den OnErrorEvent und wechseln sie die Connection zu unserer Datenbank (ggf. müssen Sie mit dem Verbindunsmanager zunächst eine entsprechende Connection zur ErrorDB herstellen)
Im Editor tragen wir nun das passende SQL-Statment ein:
"INSERT INTO [ErrorDB].[dbo].[ErrorLog] ( [PackageName], [PackageLogID], [TaskName], [ErrorCode], [ErrorMsg], [PackageDuration], [ContainerDuration], [ErrorDate] ) VALUES ('" + @[System::PackageName] + "'," + (DT_STR, 15, 1252) @[User::PackageLogID] + ",'" + @[System::SourceName] + "'," + (DT_STR, 15, 1252) @[System::ErrorCode] + ",'" + @[System::ErrorDescription] + "'," + (DT_STR,6, 1252) DATEDIFF("ss", @[System::StartTime] ,GETDATE()) + "," + (DT_STR,6, 1252) DATEDIFF("ss", @[System::ContainerStartTime] ,GETDATE()) + ", GETDATE())"
Lassen Sie die Syntax mit Evaluate Expression überprüfen. Anm: Sie müssen alle numerischen Werte Casten. Ansonsten liefert Ihnen Evaluate Expression eine Fehlermeldung. Klicken Sie abschliessend OK So, nun können wir unser kleines Programm testen: Setzen Sie zum Test für den Dataflow Task eine falsche Connection Eigenschaft, so dass der Task sich nicht mehr verbinden kann.
|
|||||||||||||||||||||||||||||||
| Aktualisiert ( Montag, den 19. Juli 2010 um 13:00 Uhr ) | |||||||||||||||||||||||||||||||
Wer ist online
![]() | Heute | 14 |
![]() | Gestern | 49 |
![]() | Diese Woche | 14 |
![]() | Dieser Monat | 235 |
![]() | Total | 2429 |












