Prozesse verfolgen

08/09/2008 - 15:31 von Michael Monarch | Report spam
Servus Experten

ich habe folgende Prozedure welche von Extern aufgerufen wird.

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[SAP_Import_Einzeln_Starten]

AS
BEGIN
exec xp_cmdshell '"C:\Programme (x86)\Microsoft SQL
Server\90\DTS\Binn\dtexec.exe" /F
D:\SQLServer2005KDE\SSIS\SAP_Import\Import_Einzeln.dtsx'
END

1) Ist der Procedure-Prozesse "SAP_Import_Einzeln_Starten" solange nicht
abgeschlossen bis das DTS-Pakett fertig ausgeführt ist?

2) Wenn Ja, wie kann ich explicit den Status des Processes
"SAP_Import_Einzeln_Starten" abfragen

mfg michael
 

Lesen sie die antworten

#1 Elmar Boye
08/09/2008 - 18:11 | Warnen spam
Hallo Michael,

Michael Monarch schrieb:

exec xp_cmdshell '"C:\Programme (x86)\Microsoft SQL
Server\90\DTS\Binn\dtexec.exe" /F
D:\SQLServer2005KDE\SSIS\SAP_Import\Import_Einzeln.dtsx'
END

1) Ist der Procedure-Prozesse "SAP_Import_Einzeln_Starten" solange nicht
abgeschlossen bis das DTS-Pakett fertig ausgeführt ist?



xp_cmdshell arbeitet synchron, und dtexec ebenfalls,
es wird also gewartet bis der Befehl abgearbeitet ist.

2) Wenn Ja, wie kann ich explicit den Status des Processes
"SAP_Import_Einzeln_Starten" abfragen



Aus der Prozedur gar nicht da weder xp_cmdshell noch
dtexec einen Benachrichtungsmechanismus kennen.

Eine Möglichkeit ist in dem Paket den Fortschritt
in eine Tabelle zu schreiben. Den kannst Du extern
von einem Programm abfragen.
Im gleichen Programm nur, wenn Du die Ausführung
der Prozedur in einen eigenen Thread legst.

Eine weitere Alternative wàre, was Du in einem anderen
Thread als zu kompliziert angesehen hast: Verwende das
Integration Service API.
Ein Ansatz könnte ein eigener LogProvider sein:
<URL:http://msdn.microsoft.com/en-us/library/ms403346(SQL.90).aspx>

Gruß Elmar

Ähnliche fragen