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

JDBC Java Discussion :

Java et (Exclusion mutuelle)


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Java et (Exclusion mutuelle)
    Bonjour à tous,

    Je développe en JAVA une petite application et j'aurai besoin d'un peu d'aide:

    En fait je lance mon application deux fois, donc je crée deux processus différents qui exécutent mon code ( je précise que ce ne sont pas des threads mais bien deux processus).
    A un moment donné j'ai besoin d’accéder à une base oracle, je doit trouver si un enregistrement ayant un id = I existe dans une table T, si l'enregistrement n'existe pas donc je crée dans ma table T un enregistrement ayant l'id I, sinon si il existe alors je met a jour un champ de cet enregistrement.

    Mon problème est que ces deux processus arrivent en même temps sur la fonction qui fait la procédure décrite en haut. Donc les deux processus ne voient pas l'enregistrement en question et chacun d'eux veut créer cet enregistrement. Je voudrait donc savoir si vous avez une solution a me proposer pour faire exécuter cette procédure par un seul processus a la fois. (si ça aurait été des threads j'aurait pu mettre la méthode en synchronized, mais la j'ai deux processus différents) .

    Merci pour votre aide .

    ps : désolé si je ne suis pas dans la bonne section .

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 705
    Points : 4 783
    Points
    4 783
    Par défaut
    Si tes deux applications sont exécutées de façon indépendante,
    il faut que l'une d'entre elle soit la seule à être chargée du travail.

    L'autre devra donc lui communiquer sont besoin de créer un enregistrement.
    Le plus sûr est de les faire communiquer par socket. Ce n'est pas très compliqué à réaliser.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu as bien isolé tes transactions, ça ne devrait pas poser de problème. Lorsque la deuxième tentera un ajout, oracle renverra une erreur qu'il suffira de traiter.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Si tu as bien isolé tes transactions, ça ne devrait pas poser de problème. Lorsque la deuxième tentera un ajout, oracle renverra une erreur qu'il suffira de traiter.
    Bien vu ! je ne y avait pas pensé.

    Pour ceux qui n'aurait pas suivi, j'ai donc récupéré l'exception que renvoi oracle, dans mon cas code erreur #1 ( erreur contrainte clé primaire) puis j'ai fait un update dans le traitement de cette erreur.

    Merci encore tchize_

    Merci aussi Népomucène pour ta proposition c'est une bonne idée aussi, il faudrait que je l’essaye. Comme j'ai jamais fait de sockets en JAVA c'est une bonne occasion pour essayer.

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 705
    Points : 4 783
    Points
    4 783
    Par défaut
    C'est gentil mais ma solution est plus lourde que celle de tchize_

    Les sockets c'est quand plusieurs appli doivent dialoguer entres elles ou se contrôler.
    ça marche aussi d'un poste à l'autre ...
    à la fin tu installes une vraie messagerie !
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. Exclusion mutuelle & Conditions Pthreads
    Par DJ@M's dans le forum C
    Réponses: 3
    Dernier message: 14/01/2006, 19h07
  2. Exclusion mutuelle
    Par Jahjouh dans le forum C++
    Réponses: 4
    Dernier message: 28/11/2005, 22h18
  3. Utiliser un héritage avec exclusion mutuelle correctement
    Par akecoocoo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 20/11/2005, 23h54
  4. Exclusion mutuelle
    Par Jahjouh dans le forum C++
    Réponses: 15
    Dernier message: 24/09/2005, 13h32
  5. [Thread][Synchronisation] Exclusion mutuelle
    Par masto dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 20/01/2005, 17h02

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