Ho uno strumento da riga di comando, scritto in Delphi, il cui compito è inserire un nodo in un file XML e quindi uscire immediatamente. Devo rendere possibile diverse istanze dello strumento da eseguire simultaneamente e inserire i nodi nello stesso XML.Come gestire l'accesso simultaneo Input/Output a un file XML da più istanze di un file EXE, utilizzando Delphi.
Per raggiungere questo scopo, ho introdotto un file "mutex" semplice: lo strumento crea un file temporaneo prima di scrivere nell'XML e quindi elimina il file temporaneo dopo aver finito di witing. Quindi, se viene eseguita un'altra istanza, verifica la presenza di questo file temporaneo e attende fino a quando non viene eliminato. Quindi crea nuovamente il file temporaneo, scrive nell'XML ed elimina il file temporaneo.
Il problema è che questo funziona bene solo quando 2-3 istanze provano a scrivere contemporaneamente nel file XML. Quando ci sono più istanze, alcune di esse attendono per sempre e non aggiungono mai il nodo all'XML.
Esiste un modo migliore per farlo funzionare con un numero elevato di istanze che eseguono e scrivono nell'XML allo stesso tempo?
Grazie a tutti per le risposte finora. Per prima cosa ho avuto un errore logico nel mio codice e l'ho corretto, ma il metodo che uso non è ancora buono. Continuerò la prossima settimana su quel piccolo strumento e poi scriverò l'aggiornamento qui e accetterò la risposta più appropriata –
Sembra che una soluzione client/server sia una buona soluzione qui ... –