Bonjour,
J'ai une application qui loggue dans un fichier différentes informations.
J'utilise actuellement la classe java.io.RandomAccessFile.
Mon problème est le suivant : si je lance plusieurs instances de mon application elles écrivent toutes dans le même fichier (jusque là tout va bien) or il arrive évidemment que certaines fois la ligne écrite par l'instance 1 soit écrasée par la ligne de l'instance 2.
Le cheminement :
1. l'instance 1 (i1) ouvre le fichier de log et se positionne à la fin du fichier, on va dire ligne 10 pour l'exemple
2. l'instance 2 (i2) ouvre le fichier de log et se positionne aussi à la fin du fichier, donc toujours à la ligne 10
3. i1 écrit sa ligne par exemple à la ligne 10 : 2010-01-29 08:30:00, Debut synchro
4. i2 écrit lui aussi sa propre ligne à la ligne 10 : 2010-01-29 08:30:00, No activity
5. la ligne écrite par i2 écrase le début de la ligne écrite par i1 et comme elle a un retour à la ligne le reste de la phrase de i1 est passé sur une nouvelle ligne. Donc dans mon exemple ro.
D'où ma question, est-il possible de bloquer l'écriture dans le fichier tant que celui-ci est ouvert par une autre JVM sachant que celà doit fonctionner indifféremment sous unix, windows, linux ?
Cordialement,
J
Partager