Domanda

Ho un'applicazione Eclipse RCP con un'istanza di un modello EMF popolata in memoria. Qual è il modo migliore per archiviare quel modello per l'accesso ai sistemi esterni? L'accesso può avvenire durante e dopo il runtime.

Le letture e le scritture del modello sono piuttosto bilanciate e possono verificarsi più volte al secondo.

Penso che un database popolato usando Hibernate + Teneo + EMF funzionerebbe bene, ma voglio sapere quali altre opzioni sono disponibili.

È stato utile?

Soluzione

Sto usando CDO (Connected Data Objects) insieme a EMF per fare qualcosa di simile. Se usi gli esempi nel wiki di Eclipse, non ci vuole troppo tempo per farlo funzionare. Un paio di avvertenze:

  1. Per i dati che cambiano spesso, probabilmente vorrai usare la modalità nonAudit per la tua persistenza. Altrimenti, salverai una nuova versione del tuo EObject con ogni commit, mantenendo anche quelli vecchi.

  2. Puoi scegliere di impegnarti ogni volta che i tuoi dati cambiano, oppure puoi scegliere di impegnarti a intervalli meno frequenti, a seconda della frequenza con cui devi pubblicare i tuoi aggiornamenti.

  3. Hai anche opzioni di blocco abbastanza flessibili se scegli di farlo.

La mia applicazione utilizza Derby per la persistenza, anche se verrà migrata a SQL Server in breve tempo.

C'è un webinar di 1 ora su Eclipse Live ( http://live.eclipse.org/node/ 635 ) che introduce il CDO e fornisce alcuni buoni esempi del suo utilizzo.

Altri suggerimenti

Andrei con Teneo a fare il sollevamento pesante a meno che le prestazioni non siano un vero problema (cosa che non sarà se i tuoi modelli non sono vasti). Anche se è lento puoi sintonizzarlo usando le annotazioni JPA.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top