Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Web Services, XML
Condivisione di Oggetti tra Web Services
giovedì 08 maggio 2008 - 17.16
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cesareino
Profilo
| Newbie
13
messaggi | Data Invio:
gio 8 mag 2008 - 17:16
Salve,
sto programmando un'applicazione Web composta da tre Web Service. Ho l'esigenza di condividere e contemporaneamente di tenere in memoria una lista di oggetti.
Ho realizzato questo meccanismo creando una classe statica che uso come contenitore della lista.
Ho purtroppo notato che gli oggetti statici vengono di tanto in tanto (ogni mezz'ora circa) distrutti.
Come faccio ad evitarne la distruzione? O eventualmente esiste qualche altra tecnica (esclusa la memorizzazione persistente) per condividere i dati tra i Web Service?
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
ven 9 mag 2008 - 11:53
I tuoi tre webservice sono all'interno dello stesso progetto vero?
Se i dati vengono distrutti ogni mezz'ora di inattività e ad esempio usi IIS6 è una cosa normale perchè di default dopo 20 min di inattività spegne l'application pool.
Se non vuoi proprio persistere i dati l'unica cosa che puoi fare è modificare le impostazioni dell'application pool in IIS.
Ma come mai non vuoi persistere quelle informazioni? Potresti comunque fare una procedura che persiste le informazioni ogni tot tempo e comunque in lettura continua ad usare i dati che hai in memoria.. Li vai a rileggere da dove li hai salvati solo in caso di necessità.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
cesareino
Profilo
| Newbie
13
messaggi | Data Invio:
ven 9 mag 2008 - 18:34
Grazie mille per la risposta.
Devo realizzare un gioco e la struttura dati da tenere in memoria è una lista di oggetti "Partita". Visto che il ciclo di vita di uno di questi oggetti è inferiore alla mezz'ora ho pensato a memorizzare i dati in modo volatile. Questo perchè rende l'accesso ai dati più semplice e veloce (in termini di righe di codice).
L'idea di fare un gioco con Web Services non è mia, purtroppo sono costretto a farlo per la 'folle' idea di un professore.
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
ven 9 mag 2008 - 21:12
Ho capito. Usi IIS per eseguire il webservice oppure il webserver di visual studio?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
cesareino
Profilo
| Newbie
13
messaggi | Data Invio:
sab 10 mag 2008 - 11:20
Uso IIS
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 14 mag 2008 - 11:00
Usi IIS6? Hai verificato le impostazioni del tuo application pool?
http://msdn.microsoft.com/en-us/library/aa720391.aspx
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
cesareino
Profilo
| Newbie
13
messaggi | Data Invio:
dom 25 mag 2008 - 00:23
Alla fine ho optato per la soluzione di serializzare su file la classe che contiene le risorse condivise tra i web service. Ho implementato un metodo che salva lo stato della classe ad ogni modifica ed un altro metodo che lo ricarica nel caso in cui per qualche motivo lo stato venga 'perso' (es. riavvio del web server).
Adesso mi trovo di fronte ad un nuovo problema, dovrei gestire l'accesso concorrente a tale classe, in modo che, ad esempio, solo un web service alla volta possa salvare/modificare o ripristinare lo stato della classe.
E' corretto usare in questo ambito l'uso del lock?
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
lun 26 mag 2008 - 14:42
Sicuramente il lock è necessario per evitare scritture contemporanee.
La cosa che devi valutare è il numero di volte che ricevi delle chiamate al webservice. Se il numero è troppo alto ci sono forti rischi di scritture contemporanee, e quindi un forte calo di prestazioni
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !