[VB]SQL-server online of niet

Pagina: 1
Acties:

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
ik loop tegen het probleem aan van de windows startup: ik heb een applicatie die serieel informatie binnenkrijgt en deze in een MSDE-database opslaat. Bij spanningsuitval/herstarten van de PC, wordt zowel mijn applicatie als MSDE Servicebeheer opgestart. Het probleem is nu dat als er seriele info binnenkomt en MSDE nog niet is opgestart of startende is.

Ik zou dit probleem netjes willen ondervangen, maar heb eigenlijk niet echt een idee hoe ik dit zou kunnen aanpakken. Ik kan wel kijken of cnn.state<>1 en daar actie op ondernemen, maar als tijdens gebruik de MSDE-service gestopt wordt, veranderd cnn.state nl. niet.

Heeft iemand ervaringen met bovengenoemde probleemstelling ??

Het gaat hier om VB6

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Welke VB gaat het over?
VB.Net -> Try ... Catch ... (Finally)
VB6 -> On Error Goto <errorlabel> :X

[ Voor 7% gewijzigd door RobIII op 19-09-2006 16:59 ]

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


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
hierbij nog even een toevoeging: als er data binnenkomt, sla ik het op in de database. Is deze niet bereikbaar, wordt het een tekstbestand. Als de database weer online is, importeer ik het tekstbestand en sla het alsnog op in de database.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
pkouwer schreef op dinsdag 19 september 2006 @ 18:11:
hierbij nog even een toevoeging: als er data binnenkomt, sla ik het op in de database. Is deze niet bereikbaar, wordt het een tekstbestand. Als de database weer online is, importeer ik het tekstbestand en sla het alsnog op in de database.
Leuk, maar wat heeft dat met de initieele vraag te maken? We weten nog steeds niet over welke versie van VB je het hebt, en los daarvan is het gewoon basic error-handling. Kwestie van je inserts afvangen op het moment dat ze fout gaan.

[ Voor 5% gewijzigd door RobIII op 19-09-2006 18:18 ]

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


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
versie is VB 6 zoals in de startpost is te lezen

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

RobIII schreef op dinsdag 19 september 2006 @ 18:14:
We weten nog steeds niet over welke versie van VB je het hebt, en los daarvan is het gewoon basic error-handling.
VB6 dus... :)

offtopic:
Net een minuutje te laat :/

[ Voor 5% gewijzigd door CH4OS op 19-09-2006 18:30 ]


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
ok, nu even ontopic: hoe kan ik detecteren in VB6 of MSDE weer online is en de data uit de tekstbestanden geimporteerd kunnen worden.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
8)7 Overheen gelezen :D
Anyway, dan geldt nog steeds hetzelfde. Probeer te connecten; werkt het? Fijn -> Inserten. Werkt het niet? -> Error vangen en later nogmaals proberen. Zo moeilijk is error-handling toch niet?

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


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

pkouwer schreef op dinsdag 19 september 2006 @ 18:30:
ok, nu even ontopic: hoe kan ik detecteren in VB6 of MSDE weer online is en de data uit de tekstbestanden geimporteerd kunnen worden.
Ik heb geen VB6 kennis, maar kan je niet gewoon een signal sturen ergens naar toe? Desnoods naar een superklein programma, die reageert op die signals en als er wat veranderd, dat je dan die cnn.state ook veranderd? :?

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
RobIII schreef op dinsdag 19 september 2006 @ 18:31:
8)7 Overheen gelezen :D
Anyway, dan geldt nog steeds hetzelfde. Probeer te connecten; werkt het? Fijn -> Inserten. Werkt het niet? -> Error vangen en later nogmaals proberen. Zo moeilijk is error-handling toch niet?
Dan moet ik bij iedere seriele input een timeout afwachten ? Lijkt me niet een werkbare situatie

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dat hoeft toch niet bij iedere input? Je kunt toch zelf in een var bijhouden of je connected bent of niet, of dat je vorige insert goed ging of niet? Als je eenmaal een timeout hebt gehad hoef je niet "meteen" erna nog een poging te doen maar kun je je poging een x aantal seconden/minuten uitstellen. En als bonus kun je natuurlijk ook gewoon de timeouts een stuk korter zetten. Veel anders zit er simpelweg niet op; als een server uitvalt is dat nou eenmaal een exception (uitzondering) en die dien je te vangen.

En als je dat allemaal niet aanstaat kun je natuurlijk nog een losse thread gebruiken om die inserts te doen, dan hangt je main thread niet. Maar dan wens ik je veel plezier om dat (goed) werkend te krijgen in VB6 ;)

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


  • whoami
  • Registratie: December 2000
  • Laatst online: 13-02 22:55
Waarom sla je niet alles lokaal op in een file oid, en verstuur je, indien de DB beschikbaar is alles naar de DB ? Door bij te houden wat je al verstuurd hebt, voorkom je ook dat je deze nog eens naar de DB stuurt. (De data die je verzonden hebt, kan je ook verwijderen)

https://fgheysels.github.io/


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
Hier zit het probleem ook niet, dat zit hem in het controleren of de MSDE-service online is. Als ik een connectie maak, is cnn.state=1. Stop ik MSDE-service, blijft deze nl. 1 vandaar mijn vraag.
cnn is een ADODB.Connection.

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
Bij het opstarten van je service zal deze geen verbinding kunnen maken met de database. Op dat moment krijg je een exception. Met "On Error Goto ..." kun je deze afvangen en besluiten voortaan in een bestand te schrijven.

Als MSDE tijdens het draaien van het programma wegvalt, dan krijg je een exception wanneer je iets in de database probeert te schrijven. Zelfde idee als hierboven, weer met "On Error Goto ..." werken.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
Ik heb op een ander forum deze
informatie gevonden. Mss dat iemand anders er nog voordeel aan heeft !

Thanx

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Allemaal leuk en aardig, maar ik vind het nogal lomp om te kijken of "de service draait". Voor hetzelfde geld kun je er om een andere reden * niet mee connecten. Je zult toch errorhandling moeten toepassen (wat als je insert om een andere reden faalt?) wil je het goed vangen. Met de methode die je nu gebruikt (behalve dat het nogal overkill is en een lompe methode) weet je nog niks, behalve dat SQL draait.

* Andere poort voor SQL geconfigged, service is gestart maar database bestaat niet, geen rechten om iets te doen, etc.

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


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
zit wat in, was er ondertussen ook al achter dat dit niet 100% naar behoren werkt.
Pagina: 1