[php] windows service werkt niet door adodb

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb hierzo een php script dat werkt als windows service op een winxp bak. Het script moet wat gegevens uit een mysql database halen dmv adodb en vervolgens een aantal bewerkingen uitvoeren (waaronder een bestand wegschrijven en deze gebruiken om een extern programma uit te voeren).

Echter wil mijn service niet starten als ik überhaupt een connect uitvoer via adodb.

Het bericht wat ik krijg met 'net start TestService'.
code:
1
2
3
De service reageert niet op de besturingsfunctie.

Typ NET HELPMSG 2186 voor meer hulp.


Nu is er verdraait weinig te vinden over windows services in php, het enigste voorbeeld wat ik gevonden heb (waar mijn service ook op gebaseerd is) is deze.

Ik kan ook bar weinig vinden van eventuele problemen tussen adodb en php. Via mysql_functies kan ik de database gewoon benaderen, da's nog het ergste :'(

Weet iemand of er problemen zijn (met oplossingen) tussen adodb en php services?

Ook weet ik niet zo gauw hoe ik de service moet gaan debuggen, ik heb al wel een error_handler geset, maar ik krijg gewoon geen php melding van een fout of zo.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb het probleem vrijwel opgelost....een foutje in mijn code die de adodb connectie maakte. Krijg nu tenminste een error waar ik iets mee kan.

Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij is php ook niet echt geschikt om een win32 service mee te schrijven.

Een win32 service moet aan behoorlijk wat eisen voldoen volgens mij, bepaalde events af kunnen handelen enzo. Denk missch. toch dat daar je probleem zit, dat je service gewoon niet start. Als het starten van de service niet een bepaalde reactie terug geeft, dan zal windows het gewoon afkappen.

Volgens mij is het lastig om in php al deze events af te handelen.

Uiteraard weet ik het niet zeker, dus misschien kan iemand anders je nog helpen.

Mocht niemand je probleem kunnen oplossen kun je misschien eens kijken naar Lazarus, dit is een pascal based programmeer omgeving (Delphi maar dan gratis zeg maar). Hiermee kun je wel heel goed win32 services bakken. Als je je php code niet wil poorten naar Lazarus kan je altijd alleen de service in Lazarus bakken en deze een php script laten aanroepen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op zich hoeft het ding maar een aantal dingen te kunnen doen, starten, stoppen en z'n werk doen :P

Het starten en stoppen gaat op zich goed. De reden dat windows zo'n melding geeft komt waarschijnlijk omdat het script afgebroken wordt (door exit bijvoorbeeld).

Ik weet ook dat php niet de meest ideale taal is om een windows service te schrijven, maar de situatie zorgde ervoor dat dit makkelijker was. Ik had al een een 50-tal DAO objecten en een aantal grote functies geschreven in php die gebruikt worden om een berekening uit te voeren. Deze berekening duurde echter te lang (10 sec met een kleine berekening, 20 sec met een gemiddelde berekening) om een direct script uit te laten voeren, vandaar dat er gekozen is voor een service. De code is dus al beschikbaar, dit moet alleen nog ff in een service gebakken worden.