{"id":405,"date":"2019-07-05T20:45:02","date_gmt":"2019-07-05T19:45:02","guid":{"rendered":"https:\/\/www.csopro.de\/biblog\/?p=405"},"modified":"2019-07-05T20:49:04","modified_gmt":"2019-07-05T19:49:04","slug":"ssis-2016-execute-package-task-mit-outofprocess-true","status":"publish","type":"post","link":"https:\/\/www.csopro.de\/biblog\/2019\/07\/ssis-2016-execute-package-task-mit-outofprocess-true\/","title":{"rendered":"SSIS 2016: &#8222;Access Denied&#8220; bei &#8222;Execute Package&#8220;-Task mit &#8222;OutOfProcess&#8220; = true"},"content":{"rendered":"\n<p>In Integration Services gibt es die M\u00f6glichkeit, aus einem Paket heraus ein Kind-Paket zu starten.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_Vater_Kind.png\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"417\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_Vater_Kind.png\" alt=\"\" class=\"wp-image-406\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_Vater_Kind.png 519w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_Vater_Kind-300x241.png 300w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a><figcaption>Ein Kind-Paket aufrufen<\/figcaption><\/figure>\n\n\n\n<p>Mit Project Deployment und SQL Server 2016 geht das wunderbar.<\/p>\n\n\n\n<p>Bei einem Kunden habe ich dieses Feature dazu genutzt, als Kind-Paket ein Paket aufzurufen, das beliebige SharePoint-Listen in die Datenbank abzieht (gesteuert durch Paketparameter, die man beim Aufruf des Kind-Pakets setzt) oder parallel aus mehreren SAP-Datenbanken Daten zusammenzusammeln.<\/p>\n\n\n\n<p>Das Feature ist an sich selbst erkl\u00e4rend. Ich m\u00f6chte hier aber auf ein Problem eingehen, das man in einer bestimmten Konstellation hat &#8211; wenn man n\u00e4mlich Execute Out Of Process auf true setzt:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_OutOfProcess.png\"><img loading=\"lazy\" decoding=\"async\" width=\"584\" height=\"225\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_OutOfProcess.png\" alt=\"\" class=\"wp-image-407\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_OutOfProcess.png 584w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ExecutePackage_OutOfProcess-300x116.png 300w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><figcaption>Parameter &#8222;ExecuteOutOfProcess&#8220;<\/figcaption><\/figure>\n\n\n\n<p>Dieser Parameter bewirkt, dass f\u00fcr die Paketausf\u00fchrung ein eigener Prozess gestartet wird. Dies hat den Vorteil, dass dann MultiThreading durch das Betriebssystem und nicht mehr durch SSIS gesteuert wird. (Ggf. ist auch das Verhalten bei einem Absturz besser.)<\/p>\n\n\n\n<p>\nBei meinen Tests funktionierte das wunderbar, \n\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>sowohl innerhalb von Visual Studio<\/li><li>als auch nach dem Deployment in die SSISDB \u00fcber den SQL Server Agent<\/li><\/ul>\n\n\n\n<p>Sobald ich aber den User umstellte auf einen User, der kein Administrator war, erhielt ich folgende Fehlermeldung: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Ausschnitt_Bericht_Aufrufe.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"370\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Ausschnitt_Bericht_Aufrufe-1024x370.png\" alt=\"\" class=\"wp-image-408\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Ausschnitt_Bericht_Aufrufe-1024x370.png 1024w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Ausschnitt_Bericht_Aufrufe-300x108.png 300w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Ausschnitt_Bericht_Aufrufe-768x278.png 768w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Ausschnitt_Bericht_Aufrufe.png 1206w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ausschnitt aus dem Ausf\u00fchrungs-Bericht mit allen Meldungen<\/figcaption><\/figure>\n\n\n\n<p>Oder genauer ein Access-Denied:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Fehlermeldung.png\"><img loading=\"lazy\" decoding=\"async\" width=\"287\" height=\"219\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Fehlermeldung.png\" alt=\"\" class=\"wp-image-409\"\/><\/a><figcaption>Fehlermeldungen<\/figcaption><\/figure>\n\n\n\n<p>Da ich im Web dazu nichts gefunden habe, habe ich mich entschlossen, diesen Blog-Eintrag zu schreiben, nachdem ich die L\u00f6sung herausgefunden hatte.<\/p>\n\n\n\n<p>Der erste Hinweis, woher der Fehler kommt, war die Fehlermeldung bzgl. DCOM. Deswegen habe ich versucht, DCOM-Fehlermeldung im Eventlog zu finden. Aber da waren keine &#8211; man muss das erst aktivieren, und das geht so:<\/p>\n\n\n\n<p>Ich habe mich an die Anleitung <a href=\"https:\/\/support.umbrella.com\/hc\/en-us\/articles\/230562267-Where-to-find-WMI-and-DCOM-event-logs-\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"in diesem Artikel (\u00f6ffnet in neuem Tab)\">in diesem Artikel<\/a> gehalten. Ich zitiere hier, falls dieser Eintrag nicht mehr auffindbar ist:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li> Open the Windows Registry (<em>regedit.exe<\/em>)<\/li><li>Browse to this registry key:&nbsp; HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Ole<\/li><li>Create a new DWORD called <em>ActivationFailureLoggingLevel<\/em> with a value of &#8218;1&#8216;<\/li><li>Create a new DWORD called <em>CallFailureLoggingLevel<\/em> with a value of &#8218;1&#8216; <\/li><\/ol>\n\n\n\n<p>Damit war das Logging im Eventlog eingeschaltet und beim n\u00e4chsten Start des SSIS-Pakets fand ich &#8211; zu der passenden Uhrzeit &#8211; im Eventlog (System) folgende Fehlermeldung:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Eventlog-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"224\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Eventlog-1-1024x224.png\" alt=\"\" class=\"wp-image-412\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Eventlog-1-1024x224.png 1024w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Eventlog-1-300x66.png 300w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Eventlog-1-768x168.png 768w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/Eventlog-1.png 1426w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Eventlog<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/FehlermeldungEventlog.png\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"92\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/FehlermeldungEventlog.png\" alt=\"\" class=\"wp-image-410\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/FehlermeldungEventlog.png 707w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/FehlermeldungEventlog-300x39.png 300w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/a><figcaption>Fehlermledung im Eventlog<\/figcaption><\/figure>\n\n\n\n<p>Man sieht also zwei GUIDs, den betroffenen User und &#8222;Local Activation&#8220; fehlt.<\/p>\n\n\n\n<p>Um diesen Fehler zu beheben, m\u00fcssen wir erst einmal  herausfinden, wozu die CLSID geh\u00f6rt. Dazu suchen wir in der Registry (regedit.exe) nach  <br>979F7D05-1E4F-4EE4-AF90-EDDC1098839D und finden:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/RegistrySuche.png\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"79\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/RegistrySuche.png\" alt=\"\" class=\"wp-image-413\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/RegistrySuche.png 598w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/RegistrySuche-300x40.png 300w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/a><figcaption>Ergebnis der Suche nach  <br>979F7D05-1E4F-4EE4-AF90-EDDC1098839D in der Registry<\/figcaption><\/figure>\n\n\n\n<p>Wir sehen also &#8222;Package Remote Class (64-bit)&#8220; &#8211; &#8222;Package&#8220; erinnert einen an SSIS-Paket. Wir sind also auf der richtigen F\u00e4hrte.<\/p>\n\n\n\n<p><em>Nebenbemerkung:<\/em> Falls man das Paket in 32-bit ausf\u00fchrt, w\u00fcrde nat\u00fcrlich hier (32-bit) stehen.<\/p>\n\n\n\n<p>Als n\u00e4chstes startete ich die Component Services und klappte &#8222;DCOM Config&#8220; auf:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ComponentServicesStartenSchwarz.png\"><img loading=\"lazy\" decoding=\"async\" width=\"798\" height=\"267\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ComponentServicesStartenSchwarz.png\" alt=\"\" class=\"wp-image-428\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ComponentServicesStartenSchwarz.png 798w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ComponentServicesStartenSchwarz-300x100.png 300w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/ComponentServicesStartenSchwarz-768x257.png 768w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/a><figcaption> Component Services (aus Administrative Tools heraus) starten <\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DCOM-Config-aufklappen-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"119\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DCOM-Config-aufklappen-1.png\" alt=\"\" class=\"wp-image-425\"\/><\/a><figcaption>DCOM Config aufklappen<\/figcaption><\/figure>\n\n\n\n<p>Dort habe ich dann versucht, &#8222;Package Remote Class&#8220; zu finden. Leider gibt es das aber nicht. Aber ich habe  <br>&#8222;DTS-Package Host (64-bit)&#8220; gefunden &#8211; allerdings 3x auf diesem Server.<\/p>\n\n\n\n<p>Deswegen habe ich \u00fcber rechte Maustaste die Eigenschaften aufgerufen. Durch die Kontrolle der APPId (die sowohl im Eventlog als auch in der Registry steht) war ich mir sicher, die richtige Klasse gefunden zu haben: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit.png\"><img loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"468\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit.png\" alt=\"\" class=\"wp-image-420\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit.png 474w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit-300x296.png 300w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><figcaption>Die Eigenschaften vom DTS Package Host ausw\u00e4hlen &#8230;<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit-Properties.png\"><img loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"232\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit-Properties.png\" alt=\"\" class=\"wp-image-421\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit-Properties.png 390w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/DTS-Package-Host-64-bit-Properties-300x178.png 300w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/a><figcaption>&#8230; und die Application ID mit der APP ID vergleichen.<\/figcaption><\/figure>\n\n\n\n<p>Da es die richtige Komponente ist, wechseln wir auf den Reiter Security und stellen f\u00fcr den gew\u00fcnschten User (der das Paket bzw. den SQL Server Agent Job ausf\u00fchrt) &#8222;Local Activation&#8220; ein:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/LocalActivation.png\"><img loading=\"lazy\" decoding=\"async\" width=\"412\" height=\"630\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/LocalActivation.png\" alt=\"\" class=\"wp-image-432\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/LocalActivation.png 412w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2019\/07\/LocalActivation-196x300.png 196w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/a><figcaption>Local Activation-Rechte vergeben<\/figcaption><\/figure>\n\n\n\n<p>Danach lief der Job bzw. das Paket ohne Fehler durch. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Integration Services gibt es die M\u00f6glichkeit, aus einem Paket heraus ein Kind-Paket zu starten. Mit Project Deployment und SQL Server 2016 geht das wunderbar. Bei einem Kunden habe ich dieses Feature dazu genutzt, als Kind-Paket ein Paket aufzurufen, das beliebige SharePoint-Listen in die Datenbank abzieht (gesteuert durch Paketparameter, die man beim Aufruf des Kind-Pakets &hellip; <a href=\"https:\/\/www.csopro.de\/biblog\/2019\/07\/ssis-2016-execute-package-task-mit-outofprocess-true\/\" class=\"more-link\"><span class=\"screen-reader-text\">SSIS 2016: &#8222;Access Denied&#8220; bei &#8222;Execute Package&#8220;-Task mit &#8222;OutOfProcess&#8220; = true<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,13],"tags":[49,46],"class_list":["post-405","post","type-post","status-publish","format-standard","hentry","category-integrationservices","category-sql-server-agent","tag-executepackage","tag-ssis"],"_links":{"self":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/comments?post=405"}],"version-history":[{"count":14,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/405\/revisions"}],"predecessor-version":[{"id":438,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/405\/revisions\/438"}],"wp:attachment":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/media?parent=405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/categories?post=405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/tags?post=405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}