Il server non parte senza dare alcuna segnalazione nel log.

Il problema può presentarsi in diverse condizioni.

Se l'uscita del server è tempestiva ed esso viene eseguito come Servizio Windows, viene notificato uni errore 1053 che indica appunto che il modulo non ha risposto nei tempi previsti.
Se pure non viene compilato alcun log di servizio, sempre per la versione Windows, può essere utile consultare l'Event Viewer.

Vediamo di seguito alcune delle condizioni che portano all'errore.

Socket Impegnato

Il problema può presentarsi se la porta del server risulta ancora impegnata.

Questo può avvenire, tra le altre casistiche, quando si sia precedentemente provveduto ad interrompere i server manualmente ed in particolare nel caso in cui il server Master sia stato chiuso prima della naturale chiusura di tutti i suoi server Child.

Si da il caso, infatti, che il server Master funga, se opportunamente configurato, come XReg Server per tutti i suoi Child. Dal momento che l'operazione di registrazione nel registro giornale non ammette fallimenti, il server Child attende ad oltranza che il Master soddisfi la sua richiesta di registrazione e se il Master viene meno prima di aver portato a termine quest'operazione, il Child rimane in un'attesa pressoché eterna.

E' indispensabile, purtroppo, procedere ad una terminazione manuale di tale server Child, con la conseguente possibilità di perdita di informazioni.

Temporanei indisponibili

Il problema può presentarsi anche se la dichiarazione della directory che deve ospitare i files temporanei fa riferimento ad una directory che non esiste. Nel tentare di creare al suo interno la directory hwtemp, il server fallisce nel proprio intento (dal momento che non esiste neppure la directory che dovrebbe contenerla) e quindi da errore ed esce ma non giunge a dare indicazioni nel log.
Sarà sufficiente creare la directory dichiarata per risolvere il problema.

"Pipe" esistente

Windows Only:
Il server eXtraWay adotta un medoto particolare per determinare se esiste un'altra copia del server stesso in esecuzione: controlla la presenza di una particolare pipe che viene creata dal modulo Master.
Di fatto questa pipe, comportamento che viene copiato dal server HighWay, serve esclusivamente per identificare che il server non può essere eseguito perché ne esiste un'altra instanza operante sulla stessa porta socket prima di verificare la disponibilità del socket stesso, diciamo quindi, intervenendo nel compiere questo test durante le fasi di primissima attivazione del modulo e non quando esso è già partito e pronto ad operare.
Se si interrompe un servizio e nel farlo esso trova un moduli child impegnato in qualche attività che ne rallenta la chiusura, il Service Manager di Windows può decidere che il modulo va bloccato arbitrariamente provocandone la morte senza ulteriori attese. In tal caso, non essendo stata chiusa correttamente l'istanza della pipe creata dal server, sembra che tale pipe non venga rimossa correttamente producendo, come effetto, che quello stesso server non riesce più ad essere eseguito.
Osservazioni:
In attesa di identificare una soluzione più elegante, si deve provvedere al reboot del server.
Date
2008/02/05 11:45:50

Torna a Indice delle voci


HighWay/eXtraWay Project - Frequently Asked Questions (Doxygen 1.6.1)