SistriForum - Il social network italiano sui rifiuti
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Ultimi argomenti attivi
» www.rentri.gov.it
Da sviluppo Ven Mag 03, 2024 2:49 pm

» Sul registro di Intermediaizone (modello B) va indicato il progressivo di registrazione?
Da tfrab Mar Apr 16, 2024 1:32 pm

» multimodal - quantità totale
Da tfrab Ven Apr 12, 2024 2:35 pm

» Tubi fluorescenti ADR SI/NO
Da homer Lun Mar 25, 2024 7:14 pm

» grado riempimento cisterna... e dove cavolo trovo le densità
Da lotus1 Ven Mar 22, 2024 3:54 pm

» quiz esame ADR 2023
Da massimilianom Ven Mar 22, 2024 11:45 am

» MUD 2024 quando si farà?
Da fabiodafirenze Mer Mar 13, 2024 5:52 pm

» abbandono rifiuti all'interno di manufatti
Da marcos79 Dom Mar 10, 2024 3:51 pm

» Abbandono rifiuti su suolo pubblico
Da marcos79 Dom Mar 10, 2024 3:24 pm

» Relazione annuale consulente ADR
Da tfrab Lun Mar 04, 2024 3:10 pm


Sincronizzazione delle Movimentazioni via WS

2 partecipanti

Andare in basso

Sincronizzazione delle Movimentazioni via WS Empty Sincronizzazione delle Movimentazioni via WS

Messaggio  riccardock Ven Dic 13, 2013 5:14 pm

Nelle interrogazioni al WS per la sincronizzazione delle schede ho notato una cosa (diciamo così) strana: in presenza di numerose Movimentazioni, quando si interroga la "RecuperaIdMovimentazioni" e si indica la sola data di inizio intervallo ("dataEoraMovimentazioneInizio"), il Web Service risponde con un tempo compreso all'incirca fra i 2 e i 4 secondi, limitatamente ai venti elementi massimi restituiti ad ogni invocazione, e con un tempo crescente man mano che lo "startItemPosition" position approssima gli "itemsIndividuati".

Se invece specifico anche la data di fine intervallo ("dataEoraMovimentazioneFine"), valorizzata con la data di sistema, i tempi di risposta variano tra 18 e 34 secondi, in funzione del numero di "itemsIndividuati", ovviamente ottenendo lo stesso output, quindi senza un'apparente ragione per il maggior tempo impiegato (un'idea ce l'ho, ma preferisco tenerla per me).

La cosa negativa è che indicando solo la data di inizio intervallo, se il numero delle movimentazioni da restituire supera i 200 "itemsIndividuati", il WS genera un errore del tipo:

"Errore nei Dati di Input: La ricerca ha prodotto troppi risultati ([206])! Restringere i criteri di ricerca."

Se l'utente SISTRI da sincronizzare non è un produttore, non si ha garanzia che non diventino visibili movimentazioni precedenti all'ultima data di sincronizzazione, per cui è necessario tenere l'intervallo piuttosto largo, e se l'utente ha molte movimentazioni giornaliere si è praticamente obbligati a specificare la data di fine intervallo, generando così tempi di attesa irragionevoli per il completamente del processo di sincronizzazione in interfaccia utente.

Potrei specificare un valore per "movimentazioniDaMostrare" diverso da "TUTTE" per avere ad esempio solo quelle ancora da compilare, ma se l'utente nel frattempo ha completato schede usando la chiavetta, poi queste non riesco a sincronizzarle.

Faccio inoltre notare che specificare la data di fine intervallo con la data di sistema può anche generare il seguente errore:

"Errore nei Dati di Input: non è possibile specificare nel filtro un valore nel futuro per il campo [dataEoraMovimentazioneFine]! Per poter sottomettere una ricerca occorre passare un filtro valido."

Evidentemente esiste un drift di qualche secondo (o anche solo qualche decimo di secondo) nell'ora di sistema tra il server SISTRI e il client che effettua la richiesta, anche al netto della latenza di rete. Il problema è che sulla macchina su cui girano i miei test sono abbastanza sicuro che l'orologio di sistema sia sincronizzato in NTP, e comunque non sono amministratore e non potrei intervenire, quindi al momento sono costretto a sottrarre due secondi (empiricamente sufficienti) alla data di fine intervallo quando questa è impostata all'ora corrente. Ma la domanda vera è per quale ragione sia stato implementato un simile controllo, tanto più che le date delle movimentazioni sono assegnate da SISTRI e non è certo possibile inserirne di postdatate.
riccardock
riccardock
Membro della community

Messaggi : 33
Data d'iscrizione : 08.11.13

Torna in alto Andare in basso

Sincronizzazione delle Movimentazioni via WS Empty Applicazione con timer

Messaggio  mant62 Ven Dic 13, 2013 9:05 pm

Ciao Riccardo,
il problema, come tanti altri è risolvibile solo con la fantasia e un pò di
adattamento.
Io ho creato un eseguibile che esegue la lettura / sincronizzazione
in backend , a intervalli di 15 minuti , indicando solo la data e l'ora di inizio nel
filtro , cosi chè l'utente neanche si accorge dei tempi di attesa.
Chiaramente le movimentazioni sono 'appese' a una tabella temporanea
sul db. Il Programmino può girare sul server db o su un client , e con una opzione
può essere lanciato ad hoc , chiudendosi dopo aver letto i movimenti ( trucco - solo
quelli dall'ultimo letto a 15 minuti dopo ).

Spero di averti dato una buona idea.
mant62
mant62
Membro della community

Messaggi : 27
Data d'iscrizione : 26.10.10
Età : 61
Località : aprilia (lt)

Torna in alto Andare in basso

Sincronizzazione delle Movimentazioni via WS Empty Re: Sincronizzazione delle Movimentazioni via WS

Messaggio  riccardock Sab Dic 14, 2013 7:39 pm

Ok, ma in questo modo si è sempre sicuri che non ci sia una nuova movimentazione da sincronizzare precedente all'utlima letta, o anche precedente all'ultima volta che si è effettuata la sincronizzazione?

Se non ho capito male il meccanismo implementato da SISTRI, le movimentazioni effettuate dal produttore vengono rese visibili agli altri soggetti (nel mio caso specifico al trasportatore) solo dopo che il produttore stesso ha apposto la firma alla sua scheda, mentre il filtro che si passa alla "RecuperaElencoIdMovimentazioni" si riferisce alla data della movimentazione, non a quella della firma del produttore, quindi se passa del tempo tra la data di creazione della movimentazione e la data della firma ho comunque un problema:

- se sincronizzo a partire dall'ultima movimentazione letta, rischio di saltarne una creata prima ma firmata (e quindi resasi visibile) successivamente;

- se sincronizzo a intervalli regolari senza lasciare scoperta alcuna finestra temporale e becco il momento fra la creazione della movimentazione del produttore e la firma della scheda, finirò per non riuscire a recuperare la movimentazione, la prima volta perché non era firmata e quindi non ancora visibile, la seconda perché chiederò solo le movimentazioni successive alla data dell'ultima richiesta.

Sbaglio?
(spero di sì...)



mant62 ha scritto:Ciao Riccardo,
il problema, come tanti altri è risolvibile solo con la fantasia e un pò di
adattamento.
Io ho creato un eseguibile che esegue la lettura / sincronizzazione
in backend , a intervalli di 15 minuti , indicando solo la data e l'ora di inizio nel
filtro , cosi chè l'utente neanche si accorge dei tempi di attesa.
Chiaramente le movimentazioni sono 'appese' a una tabella temporanea
sul db. Il Programmino può girare sul server db o su un client , e con una opzione
può essere lanciato ad hoc , chiudendosi dopo aver letto i movimenti ( trucco - solo
quelli dall'ultimo letto a 15 minuti dopo ).

Spero di averti dato una buona idea.
riccardock
riccardock
Membro della community

Messaggi : 33
Data d'iscrizione : 08.11.13

Torna in alto Andare in basso

Sincronizzazione delle Movimentazioni via WS Empty purtroppo è cosi...

Messaggio  mant62 Lun Dic 16, 2013 1:11 pm

Capisco il problema ,
io sfrutto il fatto che memorizzo sia le Schede che le Movimentazioni
sul Db , e me ne salvo lo stato, collegandole anche con i formulari cosi che anche se non sono state chiuse o non firmate , faccio prima una scansione di quelle memorizzate ancora da sistemare o chiudere.
Inoltre , per i miei clienti , faccio io le registrazioni cronologiche e quindi per quelle
il problema non mi si presenta.
Purtroppo gli strumenti a disposizione per le ricerche sono proprio 'poverelli' ,
speriamo che ci mettano le mani quanto prima.
Ciao , Riccardo , buon Lavoro.





mant62
mant62
Membro della community

Messaggi : 27
Data d'iscrizione : 26.10.10
Età : 61
Località : aprilia (lt)

Torna in alto Andare in basso

Sincronizzazione delle Movimentazioni via WS Empty Re: Sincronizzazione delle Movimentazioni via WS

Messaggio  riccardock Lun Dic 16, 2013 4:25 pm

Ah ecco, allora proverò ad aggirare il problema anch'io.
Non sono sicuro di poter fare lo stesso per via di come è progetto il mio client, ma proverò qualcosa di simile.
Grazie mille del suggerimento!


mant62 ha scritto:Capisco il problema ,
io sfrutto il fatto che memorizzo sia le Schede che le Movimentazioni
sul Db , e me ne salvo lo stato, collegandole anche con i formulari cosi che anche se non sono state chiuse o non firmate , faccio prima una scansione di quelle memorizzate ancora da sistemare o chiudere.
Inoltre , per i miei clienti , faccio io le registrazioni cronologiche e quindi per quelle
il problema non mi si presenta.
Purtroppo gli strumenti a disposizione per le ricerche sono proprio 'poverelli' ,
speriamo che ci mettano le mani quanto prima.
Ciao , Riccardo , buon Lavoro.





riccardock
riccardock
Membro della community

Messaggi : 33
Data d'iscrizione : 08.11.13

Torna in alto Andare in basso

Sincronizzazione delle Movimentazioni via WS Empty Re: Sincronizzazione delle Movimentazioni via WS

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.