Come premessa vi dico che la classe che sto costruendo è da inserire in un contesto di un'applicazione web based ed in particolare all'interno di alcune servlet (in realtà tutte ). Inoltre questa classe è costruita utilizzando un design pattern singleton e quindi tutti i thread che vengono lanciati (i.e. servlet) utilizzarano tutte una singola istanza di questa mia classe.

Arriviamo al problema
Ho dichiarato in questa classe due oggetti jdom.Document che come ben saprete servono per mantenere in memoria un file xml e ho pensato di dichiararli come attributi di classe in modo tale che tutti i metodi che li utilizzano non fossero costretti a rileggere l'intero file prima di poter operare . Per realizzare cio ho messo nel costruttore (che per come è struttaro il singleton si trova già in un blocco sincronizzato) operazioni di questo tipo :
codice:
documentObjectXML = saxBuilder.build(new File(objPathXML));
.
che caricano effettivamente in Document il contenuto xml.

Adesso nella mia classe tutti i metodi utilizzano questi due oggetti document o per fare un lettura di dati o per scriverci su e a me pare tanto che questa sia una situazione in cui cè tanto bisogno di sincronizzare le letture e le scritture

La mia prima idea è stata quella di dichiarare synchronized tutti i metodi della mia classe ma il piccolo problema è che visto che ho 6 metodi che leggono ( che tra le altre cose sono sicuramente le operazioni che vengono piu utilizzate) e solo 2 che scrivono (con una bassa percentuale di utilizzo) allora mi troverei in una situazione che anche in presenza di 100 letture , che potrebbero avvenire in parallelo , queste risulterebberto tutte loccate tra loro.

Poi guardando la documentazione (javadoc) di jdom nn sono riuscito a capire se queste siano classi che in qualche modo sono già sincronizzate , in realtà nenche so come si fa ( qualcuno me lo spiega ) , perche in tal caso nn ci sarebbe neanche bisogno di sincronizzare i miei metodi.

http://www.jdom.org/docs/apidocs/org/jdom/Document.html

Avete qualche consiglio per uscire da questa situazione ?


Bella pe tutti