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

Langage Java Discussion :

besoin de conseil.


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut besoin de conseil.
    Salut a tous
    Je suis engager a developper un automate java, en vue d'automatiser des taches cotidiénne dans mon entreprise.
    l'automate doit communiquer avec deux base de donner (Oracle 10g base locale) et (MSSQLSERVER 2005 base distante) en vue de selectionner des info de la base distante, les enregistrer dans la base locale (pour realiser des statistiques) et selon ces info executer des commande sur un DSLAM (equipement ADSL) via telnet.
    Ceci dit, je me suis basée sur des thread et jusqu'a maintenant j'en ait 2 thread :
    - Commander: thread qui jou le role d'une console donc accepte des commande et execute des taches.(commande "checker" pour verifier l'etat du système, "star" pour lancer le deusiémme thread)
    - Controller : ce thread est le plus important car c'est luis qui orchestre et realise les taches principales et il est concue comme suit :
    * Controller contien un vecteur "Vector" dont la taille est parametrable (utilisation de fichier properties), ce vecteur va contenir des instance du futur thread "WorkThread" qui s'occupe de l'execution de commande sur les DSLAM et vue que nous avons jusqu'a 600 DSLAM c'est pour ca que j'ais utiliser un vecteur le thread controller verifie si une case et vide et si il ya des commande a executer il instansie un thread "WorkThread" dans cette case pour les executer.

    c'est la qu'intervien mes amis de "DEVELOPPEZ.COM" , vue que j'ais à extraire des donnees de la base distante, normalement il me faut un listner sur cette base, non? alors avez vous une suggestion a me faire?

    MERCI

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Houla un listener en java sur une base de données SQl server, je ne vois pas du tout comment tu peux faire ça
    Personnellement, je serais plus aller chercher du coté de sql server pour voir s'il ne propose pas des outils pour réaliser des stats ou des rapports, et éventuellement utiliser un prog java pour intégrer les resultats dans oracle.

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut
    salut et merci pour la reponse
    enfait ce que je nomme listner revient a faire des requette select bien structurer periodiquement sur la bd est selon le résultat on fait un truck.
    le but ici c'est pas les statistique mais l'automatisation des taches j'explique :

    ETAT ACTUEL :
    - il ya des rembourcement qui s'effectut par nos clients et qui son enregistrer dans notre workflow (ici la bd MSSQLSERVER). nos agents recupére les rembourcement pour reactiver les ports des DSLAM (manuellement). au lancement de notre entreprise on avait quelque centaine de clients mais maintenant nous avant plus de 300000 client danc pas de possibiliter d'executer des taches manuelle, NON

    NOTRE PROJET
    - listner sur la bd source (MSSQLSERVER) detetion des payment ainsi execution des commandes sur les DSLAM.

    mon probleme est que le listner vas faire des requetes SQL sur la bd source periodiquement et passer le resultat au thread controller mais immaginer que le thread controller est occuper a traiter une ancienne requette donc pas de possibilter de communication avec le listner ainsi normalement je doit ajouter une variable bloquant la communication avec le listner (ie: si ControllerState=0 je communique avec le listner si non pas de communication)

    mais est ce que c'est realisable (probablement oui) mais est ce sage?

    merci

  4. #4
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Ah ok, je comprends mieux
    Alors pour communiquer avec ton thread "controller" , tu peux regarder la magnifique api de concurrence introduite avec java 5 et plus particulièrement tu peux regarder les classes implementant l'interface BlokingQueue
    ou mieux utiliser les executor.

    Quelques liens qui pourraient t'intéresser :


    Voilà, j'espère t'avoir aider


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut
    Merci afrikha
    OuaW il y a quoi lire dans vos liens
    apres une reflection ne pense tu pas que proceder comme suit est plus logique:

    THREAD CONTROLLER :

    START
    TANTQUE TRUE FAIRE <---ici pour bloquer le thread
    EXECUTER SELECT
    SI RESULTAT = VIDE
    ATTENDRE XTEMP
    SINON
    EXECUTER LE PROCESS
    FIN TANTQUE

    ici on elimine le thread listner mais on oblige le controller a executer le process meme pour 1 enregistrement de la base source non?
    votre avis svp
    merci

  6. #6
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Je pense que c'est une solution envisageable mais tout dépend des données de ton problème : par exemple, si process est un traitement lourd, il serait peut-être alors préférable de stocker les resultats des select et de lancer le process la nuit par exemple (Voir l'api quartz dans les liens plus haut), il faut aussi tenir compte de la complexité des requêtes SQL pour ne pas surmener la base, la taille des resultats pour ne pas saturer le réseau, la fréquence (la valeur de X temp) ,.........
    Bref tout ça pour dire qu'il n'y a pas de solution passe partout et que ça dépend fortement du problème à résoudre.

    Voilà, j'espère que c'est pas trop obscur


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    Membre éclairé Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Par défaut
    Citation Envoyé par kanzarih Voir le message
    salut et merci pour la reponse
    enfait ce que je nomme listner revient a faire des requette select bien structurer periodiquement sur la bd est selon le résultat on fait un truck.
    le but ici c'est pas les statistique mais l'automatisation des taches j'explique :

    ETAT ACTUEL :
    - il ya des rembourcement qui s'effectut par nos clients et qui son enregistrer dans notre workflow (ici la bd MSSQLSERVER). nos agents recupére les rembourcement pour reactiver les ports des DSLAM (manuellement). au lancement de notre entreprise on avait quelque centaine de clients mais maintenant nous avant plus de 300000 client danc pas de possibiliter d'executer des taches manuelle, NON

    NOTRE PROJET
    - listner sur la bd source (MSSQLSERVER) detetion des payment ainsi execution des commandes sur les DSLAM.

    mon probleme est que le listner vas faire des requetes SQL sur la bd source periodiquement et passer le resultat au thread controller mais immaginer que le thread controller est occuper a traiter une ancienne requette donc pas de possibilter de communication avec le listner ainsi normalement je doit ajouter une variable bloquant la communication avec le listner (ie: si ControllerState=0 je communique avec le listner si non pas de communication)

    mais est ce que c'est realisable (probablement oui) mais est ce sage?

    merci
    Salut, pourquoi ne pas associer à chaque envois de données depuis le listener BD au tthread controller, un thread. Ainsi, si le controller est occupé met le thread qui lui arrive en file d'attente...
    Pour l'accés à la base ne trouve tu pas que les données ne seront pas correctes entres les 600 threads?par exemple: si thread1 a un donnée sur deux payments P1 et P2 et thread2 sur P2 et P3 et juste après l'exécution de thread1 il y'avait un changement pour P2 (par n'importe quel moyen)...

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/05/2005, 14h30
  2. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 21h18
  3. [C#] [ADO.NET] Besoin de conseil
    Par djsbens dans le forum Accès aux données
    Réponses: 8
    Dernier message: 01/04/2005, 16h04
  4. Réponses: 3
    Dernier message: 24/12/2004, 13h21
  5. Réponses: 1
    Dernier message: 06/01/2003, 08h55

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