Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1235 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Gestion d'un verrou pour des opérations Runtime

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Gestion d'un verrou pour des opérations Runtime

n°1540211
Jubijub
Parce que je le VD bien
Posté le 08-04-2007 à 14:52:21  profilanswer
 

Contexte :  
Pour mon boulot, j'ai besoin d'accéder à un tas de répertoire partagés dans le monde (chemin UNC classique) qui représentent des configs d'un programme.
A un moment donné je veux pouvoir monter la config d'un user.
Il est exclu de mapper tous les disques à la fois car :  
- 2 sites peuvent mapper leur config sur la même lettre
- mapper en permanence des disques réseaux avec des perfs de merde ralentit windows à mort
 
A l'heure actuelle, je passe par des petits scripts CMD pour monter un disque, mais c'est pas satisfaisant, je voudrais me faire un petit programme qui gère ça plus finement.
 
Problème :
Pour mapper les disques j'utilise les commandes CMD subst ou net use, selon que je dois mapper un disque user, ou un de mes répertoires de test en tant que disque.
J'arrive sans problème à le faire sous java, mais j'ai le soucis suivant : ces commandes mettent 1-2 sec à s'executer, ce qui suffit à créer des race conditions (genre demander à démapper un disque non fini de mapper, ou chercher à mapper successivement 2 chemins sur la même lettre)
 
A mon avis je dois synchroniser mon objet Share afin qu'il ne puisse y avoir qu'une seule opération en cours en même temps sur une share...mais visiblement, je dois synchroniser le pool de lettres disponibles, sachant que les lettres dispos dépendent un peu des opérations en cours...
 
comment vous feriez ça ?


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le 08-04-2007 à 14:52:21  profilanswer
 

n°1540229
sircam
I Like Trains
Posté le 08-04-2007 à 16:09:31  profilanswer
 

Beh, et si tu attends que ta commande de mapping se termine et te rende la main avant de passer à la suivante?
 
Tu veux/dois vraiment faire du multi-threading? Ca m'a l'air overkilling, ton explication. Sans doute pas bien compris. :heink:
 
Java n'est peut-être pas ce qui se fait de plus souple pour scripter, aussi... [:cupra]

n°1540232
Jubijub
Parce que je le VD bien
Posté le 08-04-2007 à 16:17:53  profilanswer
 

le problème c'est que le user lui même peut lancer rapidement plusieurs opérations...
 
En fait je veux faire une petit appli qui me permette de mapper/démapper des disques facilement....
Les problèmes commencent quand :  
- par exemple tu t'es gouré, tu voulais pas mapper le serveur US, et donc tu lance une commande pour démapper ce server juste après (si t pas parkinsonien, en 2 sec t'as largement le temps de lancer la commande inverse, et si la précédente commande de mapping était pas finie, ca va te péter à la gueule)
- certains répertoires sont mappés sur la même lettre (par ex le serveur américain et le serveur français sont mappés sur la même lettre) ...je dois donc pouvoir controler, qd je veux mapper un disque, que la lettre n'est pas déjà utilisée (auquel cas je veux proposer soit de démapper le disque qui utilise déjà cette lettre, soit mapper le nouveau disque sur une lettre différente), ce qui sous-entend que je dois gérer un pool de lettres disponibles, et que donc ce pool doit être synchronisé...
 
ceci dit, après 2-3 tests, ce que fournit "synchronized" semble suffisant...je n'ai pas besoin que les opérations s'effectuent en //, mais qu'elles se fassent à la suite les unes des autres, avec un statut propre après l'execution de la commande précédente
 
et puis je voudrais un truc un peu sympa, que je puisse appeler du system tray, qui propose des fonctions un peu plus évoluées que mes scripts CMD :  
- par exemple, quand je mappe un disque "user", c'est pour 2 choses : lancer l'outil CAO dont je m'occupe avec SA config (auquel cas il faut impérativement que le disque soit mappé sur la même lettre que le user), soit pour des opérations de maintenance (copier des fichiers, etc...) auquel cas le disque peut être mappé sur n'importe quel lettre je m'en fou...
 
je voudrais donc faire qu'en cas de conflit (si je veux mapper A sur le meme lettre que B)
- on me propose de démapper A
- on me propose de remapper A sur une autre lettre
- on me propose de mapper B sur une autre lettre
 
c'est l'aspect clé de mon programme, j'ai à peu près 15 sites dans le monde, plus les disques réservé au support, ce qui fait que je passe ma vie à mapper/Démapper des disques, et manuellement ou avec des scripts pourris c'est très lourd...


Message édité par Jubijub le 08-04-2007 à 16:28:11

---------------
Jubi Photos : Flickr - 500px

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Gestion d'un verrou pour des opérations Runtime

 

Sujets relatifs
[Java] Récupération contenu textField avec un getCorrespondance ObectUI java en python?
Gestion d'erreurs mysqlFront-end java pour forum web. Comment faire ?
Compilateur et interpréteur java sur clé usbMéthode pour contribuer a un projet Java
Gestion de la navigation par jour avec nombre d'affichage limité svppointeur et JAVA
Script Gestion de commentaires[C++ et Java] Communication par socket
Plus de sujets relatifs à : [Java] Gestion d'un verrou pour des opérations Runtime


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR