Opsi yang memungkinkan:
Anda perlu menggunakan Logging
fitur di SSIS. Ini memungkinkan Anda untuk mengonfigurasi acara yang ingin Anda tangkap pesannya. Saya biasanya lebih suka log OnWarning
dan OnError
untuk melacak semua pesan peringatan dan kesalahan yang terjadi dalam paket. Anda memiliki berbagai penyedia untuk menyimpan data logging. Saya lebih suka menggunakan SQL Server sehingga saya dapat menanyakan informasi logging.
Opsi logging ditampilkan dari SSIS 2012:
Untuk mengaktifkan logging dalam sebuah paket, Anda perlu mengklik paket Business Intelligence Development Studio (BIDS)
jika Anda mengembangkan paket di SSIS 2005 - 2008 R2 atau SQL Server Data Tools (SSDT)
jika Anda mengembangkan paket di SSIS 2012.
Klik SSIS
menu lalu klik Logging...
Anda akan melihat dialog Konfigurasikan Log SSIS.
Di sisi kiri, Anda dapat memeriksa paket atau tugas individu untuk mencatat data acara.
Di Penyedia dan Log tab, Anda dapat memilih penyedia yang sesuai untuk menyimpan informasi log. Tangkapan layar di bawah ini menunjukkan bahwa informasi acara ditangkap dalam database SQL Server menggunakan manajer koneksi OLEDB_PracticeDB
.
Di Rincian tab, Anda dapat memilih acara mana yang ingin Anda tangkap. Tangkapan layar di bawah ini menunjukkan bahwa saya merekam peristiwa berikut.
- OnError
- Informasi
- OnTaskFailed
- Peringatan
Terima kasih kepada @William Todd Salzman
untuk merekomendasikan OnTaskFailed
acara
Contoh ilustrasi paket:
Katakanlah kita memiliki sebuah paket bernama SO_15004109.dtsx
dengan Tugas Aliran Data dan Tugas Skrip . Tugas Aliran Data hanyalah boneka tanpa komponen di dalamnya.
Tugas skrip memiliki kode berikut dalam metode Utama untuk mengaktifkan informasi khusus, peringatan, dan pesan kesalahan sehingga kami dapat mengamati bagaimana hal itu ditangkap di sumber data logging. Kode ini ditulis untuk SSIS 2012 sehingga Anda mungkin perlu mengubahnya untuk SSIS 2005. Saya memilih VB.NET
bukannya C#
karena Anda telah menandai pertanyaan ini di bawah sql-server-2005
dan SSIS 2005 hanya mendukung VB.NET.
Kode Tugas Skrip di VB.NET untuk SSIS 2005 dan yang lebih baru.
#Region "Imports"
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
#End Region
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute()> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
Public Sub Main()
Dim fireAgain As Boolean = False
Dts.Events.FireInformation(101, "Custom Script Information", "This is a test information message.", String.Empty, 0, fireAgain)
Dts.Events.FireWarning(201, "Custom Script Warning", "This is a test warning message.", String.Empty, 0)
Dts.Events.FireError(201, "Custom Script Error", "This is a test error message.", String.Empty, 0)
Dts.TaskResult = ScriptResults.Success
End Sub
#Region "ScriptResults declaration"
Enum ScriptResults
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum
#End Region
End Class
Jika kami menjalankan paket, itu akan gagal karena kami memunculkan kesalahan dalam Tugas Skrip .
Jika Anda menavigasi ke sumber data tempat Anda mencatat kesalahan, Anda akan melihat bahwa SSIS membuat tabel untuk mencatat informasi jika Anda memilih penyedia pengelogan SQL Server. Tabel di bawah ini mencantumkan tabel logging yang dibuat SSIS dalam database SQL Server yang dipilih sebagai penyedia log.
SSIS Version Log table name Table type
-------------- ---------------- ----------
SSIS 2005 dbo.sysdtslog90 User
SSIS 2008 dbo.sysdtslog100 User
SSIS 2008 R2 dbo.sysssislog System
SSIS 2012 dbo.sysssislog System
Kueri di bawah ini dieksekusi dalam database untuk melihat peristiwa yang ditangkap oleh paket sampel ini. Anda akan melihat beberapa pesan dua kali karena peristiwa dicatat untuk setiap wadah dan tugas. Tabel tersebut bernama dbo.sysssislog
karena paket dibuat di SSIS 2012.
select id, event, source, message from dbo.sysssislog;
Pengalaman pribadi dengan logging:
Saya telah cukup sukses hanya dengan melihat pesan kesalahan logging untuk memahami apa yang salah. Men-debug paket di lingkungan produksi tidak disarankan, menurut saya. Namun, merekam peristiwa log lebih disukai.
Ketika saya bekerja di SSIS 2005 dan 2008, saya telah membuat laporan berbasis SSRS yang menanyakan tabel log untuk menghasilkan laporan harian dari pelaksanaan pekerjaan dan mengirim lampiran PDF ke orang yang berkepentingan.
Banyak hal telah ditingkatkan di SSIS 2012 karena alat ini dilengkapi dengan kemampuan pelaporan bawaan dengan Katalog Layanan Integrasi
yang membuat database bernama SSIDB
.