regelmatig foutmelding bij een vbs script

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • janus_freggel
  • Registratie: Januari 2007
  • Laatst online: 09:52
Ik hoop dat iemand hier me de goede kant op kan sturen.
Zelf ben ik geen programmeur, door een derde is het volgende opgezet en ben zoekende waar de fout zit.

Klant heeft een aantal sensoren, welke een puls geven aan een chip, welke vervolgens uitgelezen word. data wordt weggeschreven naar een database en op de chip word elke poort op 0 gezet.

Dit draait op een windows 7 machine en word doormiddel van een .vbs file steeds opnieuw gestart. Dit gaat enige tijd (ene keer een uur andere keer 3 uur en dna weer 10 minuten) goed, maar vervolgens komt er een foutmelding.
Het probleem hiermee is dat de database geen input meer krijgt terwijl de counters op de chip oplopen. aangezien het hier een oplossing betreft om batches te meten is het de bedoeling dat het door blijft lopen.

Windows Script Host
Script: c:\application\restartcounter.vbs
Regel: 20
Teken: 2
Fout: Niet gevonden
Code: 80041002
Bron: SWbemObjectEx



De code waar het om gaat:
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Do While True

Dim oShell : Set oShell = CreateObject("WScript.Shell")
Dim objShell

'Wait a sec
WScript.Sleep 3000

' Kill Counter'
oShell.Run "taskkill /im Counter.exe", , True

'Kill Counter 2

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
 ("SELECT * FROM Win32_Process WHERE Name = 'Counter.exe' OR Name = 'Counter.application'")
For Each objProcess in colProcessList
 objProcess.Terminate()
Next

'Wait a sec
WScript.Sleep 2000


Set objShell = CreateObject("Shell.Application")
'objShell.ShellExecute "C:\Users\Administrator\Desktop\Final_Counter\Counter.application", "", "", "", 1
objShell.ShellExecute "C:\application\Final_Counter\Counter.application", "", "", "", 1


 Wscript.Sleep 15000
Loop

[ Voor 0% gewijzigd door RobIII op 22-09-2015 13:59 . Reden: Code tags toegevoegd ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Lijkt mij dat 't process dat je probeert te terminaten verdwenen is in de tijd tussen het uitvoeren van regel 17/19 en 20. Je zou er eens een try/catch omheen kunnen zetten (oh wacht, VBS: on error resume next en on error goto 0). Wat overigens niet zo gek is; waarom taskkill je op regel 10 alle counter.exe's en ga je 't vervolgens nog eens op de WMI manier doen? Of zie ik 't verkeerd?

Los van dat alles vind ik 't sowieso een rare constructie om zomaar allerlei exe's onderuit te trappen; waarom sluiten die dingen niet uitzichzelf of waarom kun je ze niet signallen te stoppen?

[ Voor 45% gewijzigd door RobIII op 22-09-2015 14:11 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij