संभावित विकल्प:
आपको Logging
. का उपयोग करना होगा एसएसआईएस में सुविधा। यह आपको उन ईवेंट को कॉन्फ़िगर करने की अनुमति देता है जिनके लिए आप संदेशों को कैप्चर करना चाहते हैं। मैं आमतौर पर लॉग पसंद करता हूँ OnWarning
और OnError
पैकेज में होने वाली सभी चेतावनी और त्रुटि संदेशों का ट्रैक रखने के लिए। लॉगिंग डेटा को बचाने के लिए आपके पास विभिन्न प्रदाता हैं। मैं SQL सर्वर का उपयोग करना पसंद करता हूं ताकि मैं लॉगिंग जानकारी को क्वेरी कर सकूं।
एसएसआईएस 2012 से दिखाए गए लॉगिंग विकल्प:
पैकेज में लॉगिंग सक्षम करने के लिए, आपको पैकेज Business Intelligence Development Studio (BIDS)
पर क्लिक करना होगा। यदि आप SSIS 2005 - 2008 R2 या SQL Server Data Tools (SSDT)
में पैकेज विकसित कर रहे हैं यदि आप SSIS 2012 में पैकेज विकसित कर रहे हैं।
SSIS
पर क्लिक करें मेनू पर क्लिक करें और फिर Logging...
. पर क्लिक करें
आप SSIS लॉग कॉन्फ़िगर करें संवाद देखेंगे।
बाईं ओर, आप ईवेंट डेटा लॉग करने के लिए पैकेज या व्यक्तिगत कार्यों की जांच कर सकते हैं।
प्रदाताओं और लॉग्स . पर टैब में, आप एक उपयुक्त प्रदाता का चयन कर सकते हैं जिसमें आप लॉग जानकारी सहेज सकते हैं। नीचे दिए गए स्क्रीनशॉट से पता चलता है कि कनेक्शन प्रबंधक OLEDB_PracticeDB
का उपयोग करके घटना की जानकारी SQL सर्वर डेटाबेस में कैप्चर की गई है। ।
विवरण पर टैब में, आप चुन सकते हैं कि आप किन घटनाओं को कैप्चर करना चाहते हैं। नीचे दिया गया स्क्रीनशॉट दिखाता है कि मैं निम्नलिखित घटनाओं को कैप्चर कर रहा हूं।
- त्रुटि पर
- सूचना पर
- ऑनटास्कविफल
- चेतावनी
@William Todd Salzman
को धन्यवाद OnTaskFailed
. की अनुशंसा करने के लिए घटना
नमूना पैकेज चित्रण:
मान लें कि हमारे पास SO_15004109.dtsx
. नाम का एक पैकेज है डेटा प्रवाह कार्य . के साथ और स्क्रिप्ट कार्य . डेटा प्रवाह कार्य केवल एक डमी है जिसमें कोई घटक नहीं है।
कस्टम जानकारी, चेतावनी और त्रुटि संदेशों को सक्रिय करने के लिए स्क्रिप्ट कार्य में मुख्य विधि में निम्न कोड है ताकि हम देख सकें कि यह लॉगिंग डेटा स्रोत में कैसे कैप्चर किया जाता है। कोड SSIS 2012 के लिए लिखा गया है, इसलिए आपको इसे SSIS 2005 के लिए बदलना पड़ सकता है। मैंने VB.NET
चुना है। C#
. के बजाय क्योंकि आपने इस प्रश्न को एसक्यूएल-सर्वर-2005
और SSIS 2005 केवल VB.NET का समर्थन करता है।
SSIS 2005 और इसके बाद के संस्करण के लिए VB.NET में स्क्रिप्ट टास्क कोड।
#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
यदि हम पैकेज को निष्पादित करते हैं, तो यह विफल हो जाएगा क्योंकि हमने स्क्रिप्ट कार्य . में एक त्रुटि उठाई है ।
यदि आप डेटा स्रोत पर नेविगेट करते हैं जहां आपने त्रुटियां लॉग की हैं, तो आप देखेंगे कि यदि आपने SQL सर्वर लॉगिंग प्रदाता चुना है तो SSIS जानकारी लॉग करने के लिए एक तालिका बनाता है। नीचे दी गई तालिका में लॉग प्रदाता के रूप में चुने गए SQL सर्वर डेटाबेस में SSIS द्वारा बनाई गई लॉगिंग तालिका को सूचीबद्ध किया गया है।
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
इस नमूना पैकेज द्वारा कैप्चर की गई घटनाओं को देखने के लिए डेटाबेस में क्वेरी के नीचे निष्पादित किया गया था। आपको कुछ संदेश दो बार दिखाई देंगे क्योंकि प्रत्येक कंटेनर और कार्यों के लिए ईवेंट लॉग होते हैं। तालिका का नाम है dbo.sysssislog
क्योंकि पैकेज SSIS 2012 में बनाया गया था।
select id, event, source, message from dbo.sysssislog;
लॉगिंग के साथ व्यक्तिगत अनुभव:
क्या गलत हुआ यह समझने के लिए लॉगिंग त्रुटि संदेशों को देखने में मुझे काफी अच्छी सफलता मिली है। मेरी राय में, उत्पादन वातावरण में डिबगिंग पैकेज उचित नहीं है। हालांकि, लॉग इवेंट को कैप्चर करना बेहतर होता है।
जब मैंने एसएसआईएस 2005 और 2008 में काम किया, तो मैंने एसएसआरएस आधारित रिपोर्टें बनाई हैं जो नौकरी के निष्पादन की दैनिक रिपोर्ट तैयार करने के लिए लॉग टेबल पर सवाल उठाती हैं और रुचि के व्यक्तियों को एक पीडीएफ अटैचमेंट भेजती हैं।
SSIS 2012 में स्थिति में सुधार हुआ है कि यह टूल के साथ इन-बिल्ट रिपोर्टिंग क्षमताओं के साथ आता है। एकीकरण सेवा कैटलॉग
जो SSIDB
. नाम का एक डेटाबेस बनाता है ।