Avatar billede groom Nybegynder
12. juni 2008 - 10:56 Der er 2 kommentarer

Fange fejl i eksternt program (SQL-Server Job)

Hej folkens,

Jeg er i tvivl om om jeg skal poste mit problem her i database-kategorien, eller om det hellere skulle være i vb-kategorien. Nu prøver jeg her, og så må vi se om der er nogen der kan hjælpe.

Jeg har overtaget en opgave, hvor der på en SQL-Server kører en kæmpe vareimport hver nat, via nogle DTS-pakker. Det foregår sådan at der i kundens system automatisk generers nogle txt-filer, der uploades via ftp, og som de her dts-pakker så importerer fra.

Ind imellem går der ged i kundends system, så der uploades nogle tomme filer. Derfor vil de gerne have at der bliver lavet et tjek af filstørrelsene, før importen køres.

Dts-pakkerne startes via sql-job-manageren (sql-server-agent). Jeg har så lavet en vbs-fil der kan tjekke filstørrelserne, og sat den ind som første step i mit job. I dette første step, har jeg sat "On failure action" til "Quit job reporting failure", sådan at det næste step (der starter importen) ikke køres.

Problemet er bare at den går videre til step 2, uanset om min vbs-fil returnerer en fejl eller ej. I vbs'en laver jeg en "Call err.raise", hvis filen er for lille, men det bliver åbenbart ikke registreret som en fejl af sql server-agenten.

Håber der er nogen der kan hjælpe.
Avatar billede janus_007 Nybegynder
12. juni 2008 - 11:11 #1
Du skal vistnok returnere enten 0 eller -1 (succes/ error) førend du kan styre det eksternt.

Hvilken værdi returnere call err.raise?
Avatar billede groom Nybegynder
13. juni 2008 - 11:17 #2
Jeg har fået løst problemet, og kan nu se at spørgsmålet nok skulle have været oprettet under programmering/VB i stedet.

Problemet var at cscript.exe åbenbart altid returnerer errorlevel 0 til den kaldende proces, selvoms det script den kører returnerer en fejl. Dette kan dog løses ved at opbygge sin vbs som en klasse, som beskrevet hér: http://my.opera.com/Lee_Harvey/blog/2007/06/03/returning-an-errorlevel-from-wsh-vbscripts

Problemet lå altså i cscript.exe, og ikke i sql-server.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester