Tek bir paketten oluşan 2012 Dağıtım Modelini kullanarak bir SSIS projesi oluşturdum. Bu pakette, bir OLE DB Bağlantı Yöneticisi ekledim, tempdb'ye işaret ettim ve tuval üzerine bir Script Görevi bıraktım. Ayrıca, OLE DB Bağlantı Yöneticisi'ni kullanarak açık günlük kaydını açtım ve OnInformation
olayı yakaladım .
SCR Yangın bilgisi
Ben kepçeye iki parametre benim komut görev yapılandırılmış: System::ExecutionInstanceGUID
ve System::ServerExecutionID
ben bu noktada itiraf edecek, ben vardı değil Marian'ın cevap kadar ikinci değişken fark ettim. Görevin içinde, kaydedilen değerleri alabilmem için 2 Bilgi olayı oluşturuyorum. Bu hem açık tabloya (dbo.sysssislog) hem de "serbest" günlüğe (catalog.operation_messages) kaydedilmelidir.
public void Main()
{
bool fireAgain = true;
string description = string.Empty;
string variable = string.Empty;
string value = string.Empty;
variable = "System::ServerExecutionID";
value = Dts.Variables[variable].Value.ToString();
description = string.Format("{0}: {1}", variable, value);
Dts.Events.FireInformation(0, "Reporting", description, string.Empty, 0, ref fireAgain);
variable = "System::ExecutionInstanceGUID";
value = Dts.Variables[variable].Value.ToString();
description = string.Format("{0}: {1}", variable, value);
Dts.Events.FireInformation(0, "Reporting", description, string.Empty, 0, ref fireAgain);
Dts.TaskResult = (int)ScriptResults.Success;
}
Dağıtma ve yürütme
Daha sonra projemi bir sunucuya dağıttım ve yürüttüm.
İşlemler Raporunu açtım ve SCR Fire info
görev ayrıntılarını tıkladım .
Kırmızı daire içine alınmış öğe, İşlem 8'in ayrıntılarını beklendiği gibi görüntülediğimizi gösteriyor. Vurgulanan çizgiler, OnInformation
bu iki sistem değişkeninin değerlerini arttıran olaylardır. Ayrıca beklendiği gibi System::ServerExecutionID
, rapordaki değerle eşleşti. Değeri System::ExecutionInstanceGUID
her zamanki gibi anlamsızdı ama mevcuttu {3F515780-8062-40AA-B9EC-C320CBAC5EFD}.
Hepsini bir araya getirmek
Şimdi birbirine bağlamak istediğim iki farklı kütük vardı.
sysssislog sorgusu
Bu sorguyu çalıştırmak, eski okul günlüğü tablosundan ilgili satırları geri çekti.
SELECT
L.event
, L.source
, L.message
FROM
dbo.sysssislog AS L
WHERE
L.executionid = '{3F515780-8062-40AA-B9EC-C320CBAC5EFD}'
ORDER BY
L.id ASC;
Sonuçlar şöyle görünüyordu
event source message
PackageStart ParameterTest Beginning of package execution.
OnInformation SCR Fire info System::ServerExecutionID: 8
OnInformation ParameterTest System::ServerExecutionID: 8
OnInformation SCR Fire info System::ExecutionInstanceGUID: {3F515780-8062-40AA-B9EC-C320CBAC5EFD}
OnInformation ParameterTest System::ExecutionInstanceGUID: {3F515780-8062-40AA-B9EC-C320CBAC5EFD}
PackageEnd ParameterTest End of package execution.
catalog.operation_messages sorgusu
Yukarıdaki raporu vardı ve ayrıca ben de değerini tutabilecekleri doğruladı tüm iletileri SSISDB katalog karşı bu sorguyu gösterdi Koşu message
için operation_id
için üzerinde dedbo.sysssislog.executionid
SELECT
OM.*
FROM
catalog.operation_messages AS OM
WHERE
OM.operation_id = 8;
Bu sonuçlar
operation_message_id operation_id message_time message_type message_source_type message extended_info_id
30 8 2013-04-02 21:02:34.1418917 -05:00 10 30 ParameterTest:Validation has started. NULL
31 8 2013-04-02 21:02:34.1738922 -05:00 10 40 SCR Fire info:Validation has started. NULL
32 8 2013-04-02 21:02:34.1768872 -05:00 20 40 SCR Fire info:Validation is complete. NULL
33 8 2013-04-02 21:02:34.1788903 -05:00 20 30 ParameterTest:Validation is complete. NULL
34 8 2013-04-02 21:02:34.3349188 -05:00 30 30 ParameterTest:Start, 9:02:34 PM. NULL
35 8 2013-04-02 21:02:34.4009253 -05:00 30 40 SCR Fire info:Start, 9:02:34 PM. NULL
36 8 2013-04-02 21:02:34.4009253 -05:00 10 40 SCR Fire info:Validation has started. NULL
37 8 2013-04-02 21:02:34.4019251 -05:00 20 40 SCR Fire info:Validation is complete. NULL
38 8 2013-04-02 21:02:34.4219283 -05:00 70 40 SCR Fire info:Information: System::ServerExecutionID: 8 NULL
39 8 2013-04-02 21:02:34.4259295 -05:00 70 40 SCR Fire info:Information: System::ExecutionInstanceGUID: {3F515780-8062-40AA-B9EC-C320CBAC5EFD} NULL
40 8 2013-04-02 21:02:34.4409316 -05:00 40 40 SCR Fire info:Finished, 9:02:34 PM, Elapsed time: 00:00:00.031. NULL
41 8 2013-04-02 21:02:34.4419388 -05:00 40 30 ParameterTest:Finished, 9:02:34 PM, Elapsed time: 00:00:00.125. NULL
Sarmak
Paket SSISDB kataloğunun bağlamı dışında yürütüldüğünde (diğer adıyla SSDT-BI veya bir .ispac komut satırı üzerinden) değeri System::ServerExecutionID
0 olacaktır. paketin tüm yürütmelerini yakalamak istiyorsanız sysssislog'u catalog.operation_messages'e bağlarken .
Şapka ipucu, içten teşekkürlerimi ve cevap kredisi beni doğru yola koymak için Marian gidin. Özetlenmiş kayıt tablomda bir GUID (16 bayt) ve bir bigint (8 bayt) depolamak arasındaki seçim göz önüne alındığında, bu benim için bir beyin değil: monoton olarak artan büyük tamsayı lütfen.