Jar-Datei in SQL Server 2005 in Trigger

nuely

Grünschnabel
Ziel ist es, dass beim Insert in eine Tabelle ein Trigger ausgelöst wird, der dann ein Java-Programm startet. Dieses Programm bekommt die neu hinzugefügte Zeile übergeben und kopiert sie in eine andere Datenbank. Der Trigger sieht im Moment so aus:

Code:
create trigger tr_EIC00P
on dbo.EIC00P
for insert
as
declare @icbeln varchar(11)
declare @icbepo varchar(3)
declare @befehl varchar(200)
begin
	set @icbeln = (select icbeln from inserted)
	set @icbepo = (select icbepo from inserted)
	set @befehl = 'java -jar verbindung.jar '+@icbeln+' '+@icbepo;
	print @befehl;
	EXEC master.dbo.xp_cmdshell @befehl;
end

Es wird ein java-Prozess beim insert gestartet, aber der kommt nicht zum Ende. Auch das insert wird nicht ausgeführt. Wenn ich den Befehl der ausgegeben wird per Hand in die Konsole eingebe funktioniert es aber. Weiß jemand warum?


Oder geht das ganze vielleicht sogar ohne das Java-Programm, also dass der SQL-Server die Daten selbst in die andere DB schreibt?
 
Mit ein bißchen Nachdenken kommt man auch auf den Grund. Das Java-Programm versucht die Daten zu lesen, während der Trigger das noch nicht ausgeführt hat. Der Trigger scheint in dem Moment selbst Lesezugriffe zu blocken und wartet gleichzeitig darauf, dass das Java-Programm beendet wird, was so natürlich nicht der Fall ist. Jemand ne Idee, wie ich das umgehen kann?
 
Zurück