IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Service et démarrage


Sujet :

VB.NET

  1. #1
    gph
    gph est déconnecté
    Membre confirmé Avatar de gph
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 99
    Par défaut Service et démarrage
    Bonjour,

    J'ai un soucis avec un service qui utilise SQLServer.

    En effet l'ordre de démarrage des services étant inconnu et SQLServer étant long à démarrer, mon service n'arrive souvent pas à se exécuter des requetes à la mise sous tension du PC.

    Y a t il un moyen soit de rendre dépendant le démarrage de mon service au démarrage de SQLServer ou bien de tester la disponibilité de SQLServer ?

    Sachant que la connexion à SQLServer ce fait bien mais souvent j'ai une erreur du type : Opération impossible pendant le démarrage ou l’arrêt de SQLServer

    Merci de vos avis éclairés.
    Philippe

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    tu peux en effet gérer les dépendances du service (dans les propriétés de l'installeur du service je crois)

    sinon il y a des solutions moins propre mais tout aussi efficaces du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    while true
       try
           using c as new connection
               c.connectionstring = 
               c.open
               c.close
           end using       
           exit while
       catch ex as exception
           system.threading.thread.sleep(50)
       end try
    end while
    tant que l'open ne passe pas ca pasee dans le catch et on attend, quand il passe on sort de la boucle
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    gph
    gph est déconnecté
    Membre confirmé Avatar de gph
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 99
    Par défaut
    C'est un peu brutal en effet

    En plus la connexion s’établit, c'est l’exécution des requêtes qui ne se fait pas.

    J'ai fait un peu mieux en testant le code d'erreur spécifique de la première requête et en faisant plusieurs tentatives avec des petits sleep.

    Mais bon j'aime pas trop faire des attentes dans les services ...
    J'aurais voulu trouver une bonne solution.

    Merci quand même.

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Il te faut utiliser un objet de type ServiceProcess.ServiceController.

    Ca devrait donner qqch du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim svc as new ServiceProcess.ServiceController
     
    'définition de la machine et du service à checker
    svc.MachineName = "LeNomDeLaMachineSurLaquelleTourneLeService"
    svc.ServiceName = "LeNomDuService"
     
    If svc.Status = ServiceProcess.ServiceControllerStatus.Running Then
       '...
    End If
    J'espère que cela t'aidera.

    Griftou.

  5. #5
    gph
    gph est déconnecté
    Membre confirmé Avatar de gph
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 99
    Par défaut
    Pas vraiment, car le service est démarré mais pas opérationnel.

    Le service en question est SQLServer et dès que je lui envoie une requête, il me dit qu'il est en train de démarrer ...

    Je temporise sur cette erreur là mais j'aime pas temporiser les services, j'aurais donc voulu faire ça plus proprement.

    Merci quand même.

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Il y a pas mal de nuance dans la propriété status d'un service. Pas moyen de jouer là dessus ?

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par gph Voir le message
    J'aurais voulu trouver une bonne solution.

    Merci quand même.
    La meilleure solution ici est de ne pas toucher à ton code de service, mais de déclarer ton service comme étant dépendant de Sql Server, directement au niveau du SCM.

    Tu peux faire cette déclaration dans l'installer de ton service si ma mémoire est bonne. (faire une recherche dans le style 'dependant services').

    Ainsi ton service ne commencera à démarrer que lorsque Sql Server sera lui même démarré.

    Une autre possibilité (éventuellement complémentaire à celle là, car en effet Sql Server à de lourdes tâches à faire en démarrage) est de voir si il n'est pas possible d'intérroger l'état de Sql Server via les SSMO (Sql Server Management Object : voir dans le MSDN. C'est un framework d'administration des Server Sql; en théorie tu peux réécrire le SSMS avec )

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    si même en état running ca plante, les dépendances n'iront pas non plus


    après de toute facon sql server peut planter à tout moment (même si n'arrive jamais ) et donc il faut que ton code soit adapté à une non disponibilité de la base de données, auquel cas ca gèrera aussi le démarrage (genre si une requete ne passe pas, tu attend avant de continuer et tu retentes après un laps de temps)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    gph
    gph est déconnecté
    Membre confirmé Avatar de gph
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 99
    Par défaut
    Ca le fait d'attendre, mais dans un service qui démarre, c'est pas très bon d'attendre

    En fait en mettant le service en démarrage différé ça fonctionne.

    Merci a tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lancement service au démarrage
    Par CoeurDeSQL dans le forum SUSE
    Réponses: 8
    Dernier message: 24/09/2010, 11h48
  2. Lancer un service au démarrage sous un autre utilisateur
    Par Bobybx dans le forum Administration système
    Réponses: 7
    Dernier message: 23/11/2009, 15h31
  3. activation d'un service au démarrage du serveur
    Par sparowme dans le forum Administration système
    Réponses: 7
    Dernier message: 16/11/2009, 08h42
  4. Réponses: 3
    Dernier message: 03/04/2006, 12h04
  5. [Windows XP][Service] Pb démarrage automatique
    Par joefou dans le forum Windows XP
    Réponses: 5
    Dernier message: 14/10/2005, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo