Questa è una vecchia versione del documento!
Indice
Versioni eXtraWay Server
Nell'ambito della lavorazione del Server eXtraWay, sono disponibili
le seguenti versioni e, per ciascuna, le varianti principali che la
caratterizzano e le istruzioni per farne uso.
E' importante sottolineare che la numerazione dei moduli della piattaforma eXtraWay è parlante ma ha seguito, nel corso del tempo, due diverse metodiche.
Vediamo come si deve interpretare il contenuto delle diverse numerazioni.
Major Version | Minor Version | Base Number | Internal Number | |
---|---|---|---|---|
Versioni sino alla 21.2.0.0 ovvero versioni dei moduli emesse sino al 4 novembre 2008 | Al variare della Major Version il modulo si considera incompatibile col passato. Può utilizzare altri moduli e gli archivi sino ad ora realizzati1) ma gli archivi prodotti da questi moduli non possono più essere utilizzati con server precedenti | Al variare della Minor Version il modulo richiede allineamento con altri moduli. Questo comporta che per garantire un corretto comportamento, indipendentemente dalla compatibilità degli archivi, sarà necessario aggiornare anche un altro modulo della piattaforma | Il Base Number varia ogni qual volte al modulo vengono apportate correzioni o aggiunte che non rientrino nei casi previsti dalla Major o Minor Version | Indica una cifra ad uso intero della 3D senza alcun particolare significato. Le eventuali Patches applicate al modulo vengono segnalate diversamente |
Versioni dalla 21.2.1.0 in poi ovvero versioni dei moduli emesse dal 5 novembre 2008 sino a tutto il 2011 | Comportamento invariato rispetto alle precedenti emissioni. Indica incompatibilità col passato | Comportamento invariato rispetto alle precedenti emissioni. Indica necessità di allineamento con altri moduli | Il Base Number varia ogni qual volte al modulo vengono apportate correzioni o aggiunte che non rientrino nei casi previsti dalla Major o Minor Version Le versioni con numero pari sono da considerarsi Candidate quindi versioni non ufficiali mente le versioni con numero dispari sono effettive Release | Per le versioni Candidate indica quante diverse istanze di versioni candidate sono state emesse prima della Release. Per le versioni Release il valore dev'essere '0' in origine ed indica il numero di Patch eventualmente apportata |
Versioni dalla 24.0.0 in poi, ovvero versioni dei moduli emesse dal 1° Gennaio 2012 | Equivalente alla precedenti versioni ma, al fine di giungere ad una condizione di numerazione uniforme, si elimina la seconda cifra2) lasciando alla documentazione del modulo emesso il compito di sottolineare le necessità di allineamento/indicizzazione etc. etc. e si inverte il comportamento tenuto sino ad ora considerando Candidate le versioni dispari e Release le versioni pari. La numerazione è quindi da intendersi suddivisa in Major Release, Minor Release & Patch. |
Versioni '25'
Versione 25.9.6 Candidate
- Cambi di Default
- Nuove Funzionalità
- Correzioni d'Errore
- 2018/04/18
- Corretto il processo di indicizzazione differenziale in un raro caso dovuto ad errore di configurazione. Una chiave viene dichiarata
single
ma appare più volte nel record (elemento ripetibile). In questo caso, la doppia presenza della chiave nel documento viene interpretata male e se la chiave mancante viene aggiunta due volte, risulta assente3).
Portato dalle versione 1 5.0 EE.
ERM014183.
- 2017/12/20
- Corretto grave errore di renaming indesiderato di una cartella.
Portato dalla versione 1.5.0 EE.
ERM013151.
- 2017/12/13
- 2017/09/27
- Interventi per sanare un caso raro di mancata esecuzione di un comando su un archivio per errata traduzione del suo nome logico. Portato dalla 1.5.0-EE.
- 2017/09/12
- Corretto un errore di ricerca con adiacenza quando si pone in adiacenza un termine molto frequente con altri, tanto frequente da superare alcuni limiti interni.ERM012651, portato alla 1.5.0-EE.
Versione 25.9.5 Candidate
Emesso per Equitalia Giustizia il 19/07/2017
- Nuove Funzionalità
- 2016/10/19
- Una chiave indicata contemporaneamente come
empty_key
ekey_also
non portava la chiave nulla ai canali alternativi di ricerca.
Ora anche i canali alternativi vengono indicizzati.
Richiede reindicizzazione degli archivi nei quali si presenta questa particolare combinazione di chiavi.
ERM001436, portato in forma diversa nella Enterprise 1.2.0.
- Correzioni d'Errore
- 2017/07/19
- 2017/03/06
- Nella lavorazione dei
Jobs
si prendeva in modo errato il contenuto del file dijob
da svolgere rischiando di ingorare, di fatto, il comando impartito.ERM011164, portato dalla 1.5.0-EE.
- 2016/12/19
- Rettifica della correzione sull'espansione della or-list in quanto introduceva un side effect che rischiava di inficiare molte altre ricerche effettuate con lo stesso medoto.
ERM009071, portato alla 1.4.3-EE.
- 2016/12/06
- L'espansione delle chiavi espresse in forma di or list non tiene conto del fatto che le stesse possano essere state richieste come double su un campo che non supporta quella modalità. Visto che in ricerca per singoli termini il server normalizza a chiave standard quelle che hanno tale caratteristica lo stesso comportamento viene applicato alle chiavi della or list.
ERM009071, portato alla 1.2.0-EE.
- 2016/12/05
- La configurazione dei job non veniva interpretata correttamente se i giorni della settimana non sono tutti impegnati. Quando arriva il giorno non impegnato il job, anziché non essere lanciato, veniva lanciato a ripetizione per un errore di valutazione.
ERM008715, portato alla 1.2.0-EE.
- 2016/11/25
- In sede di esportazione, quando si esprime una frase di selezione, se essa non trova alcun documento viene esportato l'intero archivio. Inibito questo comportamento: se la selezione non da esito non si esporta nulla e si torna errore.
ERM008831, portato dalla Enterprise 1.2.0.
- 2016/10/17
- Nei Triggers come nelle Stored Procedures è possibile evocare la funzione di
log
passandole un parametro non inizializzato e quindi causando un grave Crash del server. Inibito questo rischio agendo suiplug-in
Lua.
ERM004546, portato in forma diversa nella Enterprise 1.2.0. - Nella chiamata alle Stored Procedures il passaggio dei parametri complessi dallo strato applicativo a quello del server si attua sovente con una conversione in
base64
di tali contenuti, così da poter introdurre in un elemento un testo che, seppure contiene un altro xml o comunque contenuti con caratteri “fastidiosi” per l'XML, possa essere trattato come valido e riconvertito alla sua forma originaria solo al momento del suo reale utilizzo. Questa conversione si attua partendo dal contenuto originale che ha un proprio encoding quindi tale encoding dev'essere rispettato anche quando si compie la decodifica, in caso contrario il dato potrebbe risultare differente dall'originale (in particolare per quanto riguarda caratteri oltre0x7F
.
Compiuto un intervento di normalizzazione che riconduce il contenuto originario adUTF-8
, che è l'encoding utilizzato internamente, in rispetto dell'encoding del comando XML ricevuto.
ERM004815, portato alla Enterprise 1.2.0.
Versione 25.9.4 Candidate
Emesso per Innova il 11/10/2016
- Cambi di Default
- 2016/09/14
- Modificato il codice d'errore tornato dal server in caso di ricerca che non rispetta il Wild Card Prefix d'archivio. In precedenza veniva prodotto un errore sintattico di difficile comprensione, ora si invia un errore “Troppi Valori”.
ERM008675, portato dalla Enterprise 1.1.2.
- Nuove Funzionalità
- Correzioni d'Errore
- 2016/10/11
- In sede di importazione record in presenza di allegati, l'import va in errore in alcuni casi ed il record che si tenta di importare risulta troncato.
Il difetto si manifesta quando sono presenti gli allegati in quanto interventi compiuti in un recente passato hanno introdotto un side effect piuttosto grave in questo senso.
ERM008244, portato alla Enterprise 1.2.0.
Versione 25.9.3 Candidate
Emesso per Sogin il 05/08/2016
- Cambi di Default
- 2016/07/12
- La renderizzazione del record inviato al salvataggio non avviene più in modo indentato in quanto la cosa può confliggere con alcuni utilizzi che del record vengono fatti, in particolar modo perché l'indentazione sembra confliggere, almeno in parte, con la presenza di
xml:space=“preserve”
.
ERM008410, portato al Server Enterprise 1.1.0.
- 2016/07/07
- Modificata la modalità di calcolo del peso probabilistico dei record selezionati per dare maggior importanza alla diversità dei termini identificati nel documento (tenendo conto anche della loro prossimità) anziché della quantità delle loro ripetizioni. Questo secondo elemento di valutazione causava uno sbilancio nei risultati che rendeva le selezioni poco significative.
L'intervento è temporaneo e dev'essere perfezionato dal punto di vista algoritmico.
ERM008402, portato al Server Enterprise 1.1.0.
- 2016/05/25
- Modificati i processi interni del server che si avvalgono dei titoli, come ad esempio l'ordinamento, perché si inibisca il richiamo di un trigger che in tal caso è inutile ed anzi comporta un notevole dispendio di tempo.
ERM007060, portato dal Server Enterprise 1.1.0.
- Nuove Funzionalità
- 2016/04/29
- Aggiunta l'esportazione degli script LUA in sede di clonazione di un archivio.
ERM005113, portato al Server Enterprise 1.1.0.
- 2016/03/23
- Modificato il comando di esportazione delle chiavi di vocabolario perché consenta di esprimere direttamente la frase di ricerca da applicare come analisi spettrale.
ERM005022.
- 2016/02/02
- Aggiunto un comportamento che consente di aggiungere record ad una selezione senza dover necessariamente indicare il nome della selezione stessa ma avvalendosi della selezione corrente.
Introdotto per semplificare il processo che avrebbe altrimenti richiesto un maggior numero di comandi.
ERM004660.
- Correzioni d'Errore
- 2016/07/08
- Riveduto il processo di identificazione di chiavi del vocabolario che rispettino un patter/regular-expression in quanto una mancata normalizzazione causava errati esiti nulli in alcuni casi.
ERM008246, portato al Server Enterprise 1.1.0.
- 2016/06/30
- Corretto errore di composizione della File Location Rule quando il contenuto del documento non consente di identificare un file valido. L'argomento era già stato trattato nella segnalazione ERM004593 ma l'intervento era stato effettuato solo in uno dei due punti richiesti. Quest'intervento completa il precedente.
ERM008324, portato dalla portato nella Standard 25.9.3.
- 2016/06/28
- In fase di estensione di un documento via XSLT/LUA, quando l'esito superava i 16KB di dimensione si provocava una sporcatura della Ram a causa di un'allocazione troppo esigua con conseguente rischio di Crash del server e corruzione dello stato di salute dell'archivio.
ERM008293, portato alla Server Enterprise 1.1.0.
- 2016/06/23
- Corretto un errore di ricerca facendo uso del modificatore
Must:1
in ricerca probabilistica. L'esito della ricerca non teneva conto, di fatto, di tale modificatore.
ERM008287, portato alla Server Enterprise 1.1.0.
- 2016/06/22
- Corretto un errore storico di indicizzazione di record ove sia presente un'estensione
XSLT/LUA
. Questi contenuti venivamo utilizzati in una forma errata, quella consona al file UDD in cui i riporti a capo erano sostituiti da altri caratteri che inficiavano seriamente l'indicizzazione, specie dei campi globali.
Impone reindicizzazione in archivi nei quali sia applicata estensione XSLT/LUA dei record
ERM005125, portato dal Server Enterprise 1.1.0.
- 2016/06/09
- Corretto un comportamento del server che, durante le fasi di copia di un file, specialmente nell'ambito della gestione degli allegati, confondeva l'operazione non effettuata perché il file di origine e destinazione sono lo stesso file con il caso in cui non fosse possibile aprire il file di destinazione.
ERM008133, portato dal Server Enterprise 1.1.0.
- 2016/06/08
- Ripristinato il corretto funzionamento delle esportazioni che era stato compromesso con l'intervengto di cui alla scheda #4752.
ERM008173, portato dal Server Enterprise 1.1.0.
- 2016/04/29
- Corretta la modifica del file di profilo nomearchivio.conf.xml. Non veniva dichiarato l'encoding.
ERM005113, portato al Server Enterprise 1.1.0.
- 2016/04/29
- Corretto trattamento degli allegati in esportazione.
In alcuni casi l'encoding del record da esportare non veniva trattato correttamente e l'operazione falliva.
ERM005113, portato al Server Enterprise 1.1.0.
- 2016/04/29
- Corretto errore introdotto con la gestione dell'indicizzazione “a zone” che impediva di fatto di compiere indicizzazione specializzata degli attributi (
extra_cat
) per mezzo di una DLL d'archivio.
ERM005113, portato al Server Enterprise 1.1.0.
- 2016/04/20
- In sede di importazione si rileva che le chiavi per l'attributo
xw:file/@name
non vengono calcolate ed anzi il campo risulta valorizzato solo con chiavi&null;
.
Questo è dovuto ad un errore che ha origine già dalla 25.8.0-SE che si manifesta quando si indicizza in due passi (primari ed univico subito, tutto il resto dopo, fuori dalla sessione critica), comportamento standard solo per la versione EE.
Dal momento che quel campo non viene più usato in alcun modo per il rilevamento degli allegati si inibisce la sua condizione automatica di chiave primaria.
Va applicata in tutti i casi in cui l'indicizzazione dei record viene differita, indicizzando nell'immediato solo gli indici primari.
ERM005188, portato dal Server Enterprise 1.1.0.
- 2016/04/15
- Rilevata una particolare condizione di Memory Leak4) che si presenta in cancellazione documenti da WatchDoc e dal suo utilizzo nel processo di replica.
ERM004752. Portato anche sul Server Enterprise
- 2016/04/06
- Le selezioni, in alcuni casi, vengono interrotte per raggiunti limiti di tempo, sia durante la fase di ricerca vera e propria dei record, sia durante il loro ordinamento. Quando questo avviene durante l'ordinamento si provocava un crash del server dovuto ad una risorsa liberata due volte.
ERM004995. Portato anche sul Server Enterprise
- 2016/03/04
- Corretta la composizione del record da indicizzare in caso di indici lazy in quanto si giungeva ad una eccezione se mancava il namespace
xw
.
Modificato il comportamento in modo che l'errore eventuali interessi gli indici ma non corrompa la consistenza dei file XML.
ERM004894. Parzialmente portato anche sul Server Enterprise
- 2016/02/02
- Corretto un errore di lunghissima data per il quale si compiva un caricamento maldestro del file di Stop List e praticamente si falliva costantemente durante il suo utilizzo.
ERM004701.
- 2016/01/25
- In presenza di un errore formale o sintattico nel trigger onAfterIndex il server non completa tutte le operazioni inerenti il salvataggio, come ad esempio effettuare il calcolo del nuovo titolo, pur avendo fatto il salvataggio e l'indicizzazione.
L'errore viene ora trattato come l'errore di indicizzazione vale a dire lascia che l'operazione termini correttamente ma poi cambia il codice d'errore di ritorno.
In questo modo si salvaguardia la correttezza dell'archivio.
ERM004645. - Il Server Master ha un thread per l'esecuzione di attività differite, dette Lazy.
Corretto il controllo ripetuto dello stesso lazy a causa di più alias nel file di configurazione ed introdotto un “reload” dell'elenco degli archivi, ogni 5 minuti, in modo che si trattino anche i nuovi archivi.
ERM003501 e ERM003516.
Versione 25.9.2 Candidate
Emesso per Avepa il 25/01/2016
- Cambi di Default
- 2015/12/23
- Il processo di invalidazione di un utente (sfruttato solo in rare applicazioni ove si utilizza un provider di autenticazione esterno) ora si avvale di un metodo semplificato che sfrutta file su disco per poter invalidare un singolo utente anziché invalidarli sempre tutti, con palesi benefici in termini di performance5).
ERM004532.
- Nuove Funzionalità
- 2016/01/19
- Negli script LUA, che si tratti di triggers o stored procedures, quando si inizializza un recordi si può indicare il nome dell'archivio cui il record appartiene.
In precedenza il nome doveva essere necessariamente fisico, ora è possibile anche dichiarare un nome logico.
ERM003999.
- Correzioni d'Errore
- 2016/01/22
- Corretto errore di accesso ad una selezione. In condizioni normali una selezione viene generata con tutto il suo contenuto. In tale frangente le viene assegnata una posizione in memoria o su disco.
In alcuni casi, come in caso di esportazione, una selezione viene generata vuota e poi popolata aggiungendovi i record destinati all'esportazione.
In questo caso, già verificatosi in altra segnalazione corretta nel giugno 2015, si deve passare dall'uso in memoria a quello su disco, invalidando lo “slot” in memoria.
Con successiva correzione del novembre 2015, riferita alla rotazione dei temporanei, si è reintrodotto il difetto di cui al punto precedente.
L'attuale correzione tiene conto di entrambi gli aspetti.
ERM004630.
- 2016/01/20
- Pur avendo indicato nel file di configurazione quale sia la cartella di share le esportazioni, specie quelle CSV, non vengono effettuate in tale cartella.
Il problema viene dall'incompleta lavorazione dell'estensione LUA in cui la presenza della cartella di share non era stata presa in esame. Inoltre le funzioni per la generazione di file troncavano il path e forzavano quello dei temporanei con risultati diversi da quanto atteso e desiderato.
ERM003228.
- 2016/01/19
- Il caricamento dei dettagli di un record, quando viene effettuato durante il suo trigger onLoad andava in conflitto con il caricamento stesso in quanto il record che si intende caricare in quel preciso momento è ancora bloccato dal server.
Per ovviare all'inconveniente sono stati introdotti controlli per cui, in caso di record bloccato, si provvede a riprovare l'operazione senza tentare il lock del record.
Oltre a questo il caricamento del record viene effettuato senza eseguire i trigger sul medesimo al fine di evitare un infinite loop.
ERM004448. - Corretto
crash
del server che si causava quando una regola di file location non produce in nessun caso un risultato usabile ed in particolare produce una stringa vuota per l'ultimo valore calcolato.
ERM004593.
Versione 25.9.1 Candidate
Emesso per Avepa il 10/12/2015
- Cambi di Default
- 2015/11/27
- Introdotta una nuova funzionalità amministrativa per compiere una rimozione di record in stile WatchDoc ma senza usare un file bensì indicando esplicitamente il record da confrontare. Funzionalità necessaria per il corretto funzionamento del processo di replica.
ERM003481.
- Correzioni d'Errore
- 2015/12/04
- Corretto un errore Storico legato al trattamento degli allegati.
Si causava un buffer overflow che aveva come effetto il fatto che l'istanza di server in esame continuava a lavorare ma dava regolarmente errore nell'accedere a qualsiasi selezione.
ERM004467.
- 2015/12/04
- Apportata una correzione “di sicurezza” che interessa il Server Enterprise ma solo marginalmente quello standard.
ERM004467.
- 2015/11/20
- Modificata la funzione di aggiornamento degli allegati perché operi correttamente anche se l'allegato che si vuole aggiornare ancora non esiste e quindi agisca creando il file mancante.
La modifica interessa anche il calcolo dell'estensione (che prendeva solo l'ultima e non tutte come avveniva un tempo). Funzionalità necessaria per il corretto funzionamento del processo di replica.
ERM003481.
- 2015/11/19
Versione 25.9.0 Candidate
Emesso il 13/11/2015 per uso interno e per Avepa
- Cambi di Default
- Modificato il significato del parametro iwgap. Si abbandona il precedente significato a favore di un nuovo sistema di indicizzazione.
- Nuove Funzionalità
- Indicizzazione a “zone”.
- Correzioni d'Errore
- Salvando un record che risulti privo della processing instruction di controllo del contenuto il server lamenta il fatto che non puà salvare il record a causa di un valore di tale P.I. fornito come '.'. Corretto.
- Corretto errore di salvataggio di un record se esso è composto esclusivamente dal suo elemento radice e null'altro al suo interno (ad eccezione di eventuali attributi dell'elemento).
- Inibito il renaming in
.fail
di file che non siano “.xml.wrk” per evitare problemi con denominazioni non corrette (Dovute a concorrenze sulle quali seguirà intervento). - Crash del server in chiamata del trigger
afterTitle
in caso di titolo documento rappresentato da una stringa nulla. Corretto.
Versione 25.8.4 Patch
Emesso il 11/05/2018 per Regione Veneto
- Correzioni d'Errore
- 2018/04/18
- Corretto il processo di indicizzazione differenziale in un raro caso dovuto ad errore di configurazione. Una chiave viene dichiarata
single
ma appare più volte nel record (elemento ripetibile). In questo caso, la doppia presenza della chiave nel documento viene interpretata male e se la chiave mancante viene aggiunta due volte, risulta assente6).
Portato dalle versione 1 5.0 EE.
ERM014183.
Versione 25.8.3 Patch
Emesso il 05/08/2015 per Equitalia
- Cambi di Default
- Modificato il calcolo della frequenza del processore per per supportare versioni di Kernel Linux < 2.6.19.
Il calcolo degli intervalli di tempo con altra precisione è comunque inaffidabile su simili piattaforme. Questo rende i Kernel 2.6.19 la piattaforma minima su cui sono installaibili le versioni 25.8 del server..
- Nuove Funzionalità
- Modificata la modalità con la quale si effettua la verifica della disponibilità del prossimo numero di allegato perché tenga conto del fatto che avvenendo extra sessione critica e senza alcun reload non può affidarsi allo status d'archivio.
- Correzioni d'Errore
- Compiuto intervento in fase di chiusura del processo server in modo che garantisca la corretta terminazione dei Singleton che, non avvenendo nel giosto ordine, causava un
core
in Linux.
Versione 25.8.2 Patch
Emesso il 21/07/2015 per Equitalia, Regione Veneto, Sogine, Avepa ed Egaf
- Correzioni d'Errore
- Porting di alcuni interventi compiuti espressamente per Egaf in un loro branch che interessa il Boosting di ricerche in cascata (in modo che la ricerca di cui al punto precedente non venga esclusa da quella successiva anche in presenza di ricerca probabilistica).
- Riscontrato un errore in caso di aggiornamento sul posto di un record candidato ad essere collocato in altro file. Corretto.
Versione 25.8.1 Patch
Emesso il 10/07/2015 per Equitalia e Regione Veneto
Deprecata il 21/07/2015.
La versione può essere utilizzata ugualmente a patto di impostare il parametro move_always=“yes”
per ciascuna regola di file_location in ciascun primary_node.
- Nuove Funzionalità
- In sede di compattamento degli indici ora si provvede, oltre alla trasformazione da
.idx
a.idx.bpt
+.idx.edt
a fare l'analoga conversione per i file.ths
e.thv
. Si provvede a convertire solo i file configurati nel file<nomearchivio>.conf.xml
.
- Correzioni d'Errore
- Ripristinata la possibilità di sfruttare ancora i vecchi thesaurus in formato .ths.
Era stata scartata, in sostanza, da alcuni interventi preventivi per la realizzazione del server Enterprise. - Corretto errore di valutazione fine file introdotto con la riduzione della sessione critica ed evidenziato nella lavorazione del server Enterprise.
Difetto inserito sulla HEAD dall 23/09/2014 in riduzione sessione critica.
Versione 25.8.0
Emesso il 10/07/2015 per Equitalia
Deprecata il 16/07/2015
- Cambi di Default
- Richiede che il Thesaurus sia stato convertito nel formato .ths.bpt/.ths.edt altrimenti da errore di accesso.
- Correzioni d'Errore
- Riveduto il trattamento dei valori numerici in ricerca in modo che siano indipendenti dalla presenza o meno di decimali e che le cifre, di conseguenza, vengano tutte uniformate. I valori appartenenti ai campi numerici che però contengano caratteri non riconosciuti sono da considerarsi non corretti e non vengono trattati come numeri in riceca bensì come semplici stringhe.
- Riveduto il trattamento dei record “vecchi” e “nuovi” in sede di elaborazione allegati per assicurarsi che il record vecchio venga sempre gestito correttamente anche quando contiene caratteri spuri. Questo per evitare che un dato esistente risulti immodificabile.
- Corretto processo di creazione di una selezione temporanea che, se essa superava lo spazio ammesso nello slot in memoria, risultava essere comunque vuota.
- Corretto trattamento dei comandi Broadcast di chiusura archivio o reload della configurazione. In alcuni casi non veniva effettuata l'operazione.
- Memory Leak in caso di errore durante il calcolo dell'impronta degli allegati.
Versione 25.7.5 Candidate
Emesso il 20/02/2015 per Egaf e Regione Veneto
Deprecata il 16/07/2015
- Cambi di Default
- Dalla versione corrente è possibile impostare, sia nel file di profilo che nella frase di ricerca, una soglia minima di documenti da selezionare in ricerca probabilsitica (soglia minima garantita anche quando il voto risulti inferiore alla soglia minima di voto) pari a 0, così da sfociare, se necessario, in una ricerca nulla.
- Correzioni d'Errore
- La selezione per range di valori numerici decimali produce risultati incoerenti. Questo è dovuto all'erroneo trattamento dei valori numerici che dev'essere riveduto in modo più approfondito ma che, nel frattempo, è stato trattato con una correzione temporanea trattando tutti i numeri come decimali.
L'intervento riguarda solo i range, le restanti selezioni “soffrono” ancora del problema di esprimere un valore in modi diversi (con o senza decimali). - In sede di inserimento è previsto che
XReg
registri anche i nuovi record inseriti ma questo non avveniva. Corretto. - Corretto il comportamento del parametro
(Must:1)
introdotto in ricerca probabilistica per indicare che una chiave dev'essere comunque presente in ricerca. In quello specifico caso, ma non solo, si cambiava l'ordine delle opwords con un potenziale difetto nel risultato finale (che era quello per cui il(Must:1)
non funzionava a dovere) - Corretta la trasliterazione del carattere Russo 'E' che veniva trasliterato in 'I' anziché in 'E'. Impone reindicizzazione ma solo su archivi in cui possa essere occorso un simile errore. Archivi che non contengano testi in lingue straniere possono essere lasciati invariati.
Versione 25.7.4 Candidate
Emesso il 10/12/2014 per Egaf
Deprecata il 16/07/2015
- Nuove Funzionalità
- In ricerca probabilistica è possibile assegnare il modificatore
(Boost:
valore)
anche ai campi virtuali di tipo?SEL
. DA questa versione, impostando il booster al valore0.0
si mantiene l'utilizzo del termine in ricerca ma lo si spoglia del suo significato in quanto a peso della selezione. Esso quindi non ha peso ne comehit
ne come rilevanza.
- Correzioni d'Errore
- Corretto Memory Leak nella funzione di determinazione del nome del file che deve ospitare le unità informative.
- Migliorato il processo di acquisizione record da WatchDoc perché calcolava l'estensione (XSLT/LUA) del record due volte.
Versione 25.7.3 Candidate
Emesso il 20/11/2014 per Egaf
Deprecata il 27/11/2014
- Cambi di Default
- Abolite alcune funzionalità desuete che consentivano di intervenire sui documenti senza modificare indiciti e/o titoli oppure senza compiere controlli sull'univocità, sui seriali o sugli allegati.
Considerate obsolete e soprattutto pericolose. - Abolito il trattamento di repository esterni in quanto verranno sostituiti dal concetto di Storage
Annullato il valore della voce di profiloarc.repository
. - Abolito il trattamento di DTD storicizzate che consentano di automatizzare le trasforamzioni da un formato ad un altro dei record registrati. La funzionalità non è mai stata utilizzata ed allo stato dell'arte ha senso agire diversamente.
- Separata dalla Sessione Critica standard la gestione dei numeri progressivi di allegato così da non soffrire di rallentamenti inutili in tale fase.
Rappresenta una sorta di incompatibilità col passato per quanto il seriale riportato nel file nomearchivio.stat venga mantenuto quanto possibile allineato a quello presente nel nuovo file nomearchivio.attach.stat.
In caso di roll back si deve aver cura di controllare l'ultimo seriale assegnato nel file nomearchivio.attach.stat e riportarlo7) nel file nomearchivio.stat
- Nuove Funzionalità
- Abolita la possibilità di eseguire comandi multipli con una singola operazione.
- Correzioni d'Errore
- Corretto errore nella scansione delle chiavi greater del vocabolario in presenza di chiavi cancellate.
- Corretto il processo di esportazione con allegati quando questi sono dichiarati in campo non standard.
- Modificato il comportamento del server nel trattamento del nome archivio (assente) nel comando di notifica utente corrente.
- Ripristinato il ricalcolo dei titoli a seguito di comandi di Search & Replace.
- Corretto il calcolo del ranking in ricerca probabilistica in modo che tenga correttamente conto delle chiavi estese perché siano considerate come una chiave unica.
Versione 25.7.2 Candidate
Emessa il 01/08/2014 per Regione Veneto
Deprecata il 27/11/2014
- Correzioni d'Errore
- Corregge un grave errore di inserimento documenti introdotto nella 25.7.0 e 1.
Versione 25.7.1 Candidate
Deprecata
- Cambi di Default
- Il processo di generazione dei titoli è stato convertito come l'indicizzazione perché agisca per mezzo di una Permanent Job Queue.
- Abolito il modificatore
(container)
nella regola di composizione dei titoli.
Abolita la voce di profilotitle.mixed
.
- Correzioni d'Errore
- Il nuovo trattamento dei seriali non teneva correttamente conto dei nodi eventualmente assenti causando un disallineamento tra le regole riscontrate per il tipo di unità informativa in esame ed i nodi realmente identificati.
Versione 25.7.0 Candidate
Deprecata
- Cambi di Default
- Avendo introdotto una diversa modalità nel legarsi ai plug-in, al variare del server tutti i plug-in coinvolti devono essere allineati. Per ciascuno di essi sarà necessario aver cura di utilizzare la versione adeguata.
Allo stato attuale i plug-in interessati sono:libxwlua
8),libtree
,libxwlod
,xwCtx
e, dove presente,libxwlsmon
- Cambiato il comportamento nella chiamata delle
Stored Procedures
in quanto anche le condizioni d'errore venivano considerate come comportamenti corretti (che al loro interno contengono una segnalazione d'errore) pur non essendolo. Ora sono errori a tutti gli effetti. - Abolita la gestione dei cosiddetti
prunable branches
.
Ogni gestione analoga verrà ora eseguita con onLoad Triggers. - Modificato il comportamento in composizione delle chiavi da Processing Instruction che siano dichiarate come data in modo che vengano create anche le chiavi calcolate di tipo automatico9).
Impone reindicizzazione dell'archivio in presenza di chiavi da Processing Instruction di tipo data. - Anteposta la lavorazione dei file con estensione custom a quella standard così da poter predisporre un trattamenti diverso durante il processo di Watch Doc, ad esempio per l'acquisizione via LUA di file
.csv
. - Abolito l'uso del repository
libxmlbf
, Buddy XML File. Non è stato mai utilizzato e verrà presto sostituito da uno specifico sistema di storage.
- Nuove Funzionalità
- Il processo di
WatchDoc
è ora maggiormente separato da quello di salvataggio dei singoli documenti per evitare fastidiose contaminazioni. Diversamente da prima il processo può essere effettuato anche mente è in corso una normale attività sui record e quindi non risulta più bloccante specie si risulta essere di lunga durata.
- Correzioni d'Errore
- In presenza di file XML da caricare via
WatchDoc
il processo pareva avviarsi ma non era così. E' un difetto introdotto dalla versione 25.6.0 del server. Richiede aggiornamento (ma richiede allineamento dei moduliplug-in
). - Errore nel caricamento di documenti da una raccolta. Corretto.
- In caso di esaurimento dello spazio su disco file temporanei i nuovi allegati risultano di dimensione nulla. Corretto.
- L'ordinamento di una selezione già ordinata per Ranking da errore. Corretto.
- Inibito l'accesso a file con percorso assoluto ed inserti relativi che consentiva il caricamento di file esterni alle aree controllate (vale a dire all'area dei temporanei ovvero degli allegati)
- Reso più rapido il processo di scansione delle directory in sede di Catalogo in quanto si avevano enormi rallentamenti in presenza di una moltitudine di cartelle
.file
che dovevano essere ignorate. - Ampliati i punti di intervento in sede di ricerca per limitare le ricerche la cui durata dovesse risultare eccessiva.
Versione 25.6.8
- Cambio di default
- Nuove Funzionalità
- Correzioni d'Errore
- Modificata la dichiarazione di una funzione del server usata dalla
libxwwd.so
in quanto la decorazione non era corrispondente a seguito di altri precedenti interventi e WatchDoc non si avviava.
Versione 25.6.7
Emesso il 30/06/2015 per Equitalia Nord
- Correzioni d'Errore
- Corretto processo di creazione di una selezione temporanea che, se essa superava lo spazio ammesso nello slot in memoria, risultava essere comunque vuota.
- Corretto trattamento dei comandi Broadcast di chiusura archivio o reload della configurazione. In alcuni casi non veniva effettuata l'operazione.
- Memory Leak in caso di errore durante il calcolo dell'impronta degli allegati.
Versione 25.6.6
Emessa per EC il 27/05/2015
- Correzioni d'Errore
- Inibita la trasformazione del numero in range in caso di ricerca per numero fisico del documento.
Versione 25.6.5
Emessa per Sogin, EC, Egaf il 14/04/2015
- Correzioni d'Errore
- Riveduto il trattamento dei valori numerici in ricerca in modo che siano indipendenti dalla presenza o meno di decimali e che le cifre, di conseguenza, vengano tutte uniformate. I valori appartenenti ai campi numerici che però contengano caratteri non riconosciuti sono da considerarsi non corretti e non vengono trattati come numeri in riceca bensì come semplici stringhe.
- Riveduto il trattamento dei record “vecchi” e “nuovi” in sede di elaborazione allegati per assicurarsi che il record vecchio venga sempre gestito correttamente anche quando contiene caratteri spuri. Questo per evitare che un dato esistente risulti immodificabile.
Versione 25.6.4
Emesso il 20/02/2015 per Manni-Studio Ferrario
- Correzioni d'Errore
- La selezione per range di valori numerici decimali produce risultati incoerenti. Questo è dovuto all'erroneo trattamento dei valori numerici che dev'essere riveduto in modo più approfondito ma che, nel frattempo, è stato trattato con una correzione temporanea trattando tutti i numeri come decimali.
L'intervento riguarda solo i range, le restanti selezioni “soffrono” ancora del problema di esprimere un valore in modi diversi (con o senza decimali). - In sede di inserimento è previsto che
XReg
registri anche i nuovi record inseriti ma questo non avveniva. Corretto. - Corretta la trasliterazione del carattere Russo 'E' che veniva trasliterato in 'I' anziché in 'E'.
Impone reindicizzazione ma solo su archivi in cui possa essere occorso un simile errore. Archivi che non contengano testi in lingue straniere possono essere lasciati invariati.
Versione 25.6.3
Emesso il 26/11/2014 per Unimatica
- Cambio di default
- Separata dalla Sessione Critica standard la gestione dei numeri progressivi di allegato così da non soffrire di rallentamenti inutili in tale fase.
Rappresenta una sorta di incompatibilità col passato per quanto il seriale riportato nel file nomearchivio.stat venga mantenuto quanto possibile allineato a quello presente nel nuovo file nomearchivio.attach.stat.
In caso di roll back si deve aver cura di controllare l'ultimo seriale assegnato nel file nomearchivio.attach.stat e riportarlo10) nel file nomearchivio.stat
- Correzioni d'Errore
- Ripristinato il ricalcolo dei titoli a seguito di comandi di Search & Replace.
- Corretta mancata normalizzazione del nome di
primary_node
.
Versione 25.6.2
Emesso 24/09/2014 per Confindustria Ravenna ed Equitalia Giustizia
- Correzioni d'Errore
- Corretto errore nella scansione delle chiavi greater del vocabolario in presenza di chiavi cancellate.
- Corretto il processo di esportazione con allegati quando questi sono dichiarati in campo non standard.
Versione 25.6.1
Versione registrata il 30/07/2014 (ma caratterizzata da alcuni pre-rilasci)
- Cambio di default
- Anteposta la lavorazione dei file con estensione custom a quella standard così da poter predisporre un trattamenti diverso durante il processo di Watch Doc, ad esempio per l'acquisizione via LUA di file
.csv
.
- Correzioni d'Errore
- Errore nel caricamento di documenti da una raccolta. Corretto.
- In caso di esaurimento dello spazio su disco file temporanei i nuovi allegati risultano di dimensione nulla. Corretto.
- L'ordinamento di una selezione già ordinata per Ranking da errore. Corretto.
- Inibito l'accesso a file con percorso assoluto ed inserti relativi che consentiva il caricamento di file esterni alle aree controllate (vale a dire all'area dei temporanei ovvero degli allegati)
- Reso più rapido il processo di scansione delle directory in sede di Catalogo in quanto si avevano enormi rallentamenti in presenza di una moltitudine di cartelle
.file
che dovevano essere ignorate. - Ampliati i punti di intervento in sede di ricerca per limitare le ricerche la cui durata dovesse risultare eccessiva.
Versione 25.6.0
- Cambi di Default
- Modificato il comportamento introdotto a dicembre con il quale si consente il posizionamento in un file di selezione per mezzo del numero fisico. Tornava una condizione d'errore non appropriata per il chiamante.
- Quando il server apre un archivio di versioni precedenti la 24/25 provvede automaticamente a compierne la reindicizzazione avendo cura di convertire gli indici dal formato
BTree
al formatoB+Tree
. - Modificato l'ordine di esecuzione (in cascata) delle estensioni di ricerca spostando la ricerca per Genere e Numero dopo altre estensioni che potrebbero altresì risultarne influenzate negativamente.
L'ordine di valutazione diviene ora: Wild Cards ⇒ Fuzzy ⇒ Fonetica ⇒ Genere e Numero ⇒ Thesaurus - Invertito l'ordine di valutazione dei file acquisiti via
WatchDoc
. Ora si testa prima la modalitàcustom
così da poter sovrascrivere le azioni di default per un'estensione nota, e si passa al comportamento standar solo in seconda battuta, in assenza di una customizzazione.
- Correzioni d'Errore
- L'ordinamento per data non agiva in rispetto dell'ora quando la data è espressa in modalità ISO (
YYYYMMDD
Thhmmss
). Corretto.
Versione 25.5.3 Candidate
- Cambi di Default
- Ampliato il numero disponibile di file temporanei applicando la soglia per singola cartella e non nel complesso.
- Nuove Funzionalità
- Compiuta una serie di interventi per introdurre il concetto di Pool di Archivi.
Un pool di archivi si compone di archivi aventi configurazione simile o quanto meno alcuni punti in comune, ma in grado di essere distinti, specie per criteri quali univocità e serialità.
Al contempo archivi di questo tipo vengono percepiti dall'applicazione che li sfrutta come se fossero un unico archivio.
Limite attualmente noto e riconosciuto è l'ordinamento dei risultati (che sono comunque raggruppati per archivio), l'accesso ai vocabolari (che non viene reso trasparente ed unificato ma va fatto archivio per archivio) ed alcune altre funzionalità.
Se operazioni quali modifica e rimozione di record sono leciti sul Pool, l'inserimento e l'aggiunta di nuovi allegati deve necessariamente far riferimento ad un preciso archivio entro il Pool e non al Pool in se. - Consentito di applicare ad una selezione l'ordinamento di altra già fatta anche se esso era semplicemente l'ordinamento
REVERSE
.
- Correzioni d'Errore
- L'estensione per termini simili non viene applicata se il termine da cercare è privo di prefisso. L'operazione viene svolta solo se il prefisso è di almeno un carattere.
Per quanto pericoloso e portatore di possibili denial of service il server deve consentire di fare l'operazione, ora viene consentito ma va usato con i dovuti accorgimenti. - La chiamata al Trigger
afterIndex
in caso di cancellazione di un documento mancava di una componente, il Primary Node Container, necessario a poter chiamare il Trigger dedicato anziché quello generico. Corretto.
Versione 25.5.2 Candidate
Emesso il 17/02/2014 per SeStra/Riviste
- Cambi di Default
- Il server non consente più di caricare file temporanei o allegati che siano espressi con percorsi assoluti. Anche qualora relativi, la loro collocazione è controllata per non consentire il caricamento di file pericolosi.
Il caricamento dei file temporanei prevede di cercare il file richiesto prima nella directory dishare
e poi nella directory dei temporanei.
- Correzioni d'Errore
- Inibito il caricamento di allegati e file temporanei che si possano considerare illeciti.
- Se una ricerca viene svolta indicando una regola di ordinamento sintatticamente errata non viene fornito un errore significativo. Corretto.
- Corretto trattamento semafori per log di debug che causava la sopravvivenza di un semaforo al riavvio del server eXtraWay.
Versione 25.5.1 Candidate
- Nuove Funzionalità
- Esposti alcuni metodi per acquisire, da un Trigger o una Stored Procedure i metadati dei record caricati ed informazioni sui vocabolari.
- Correzioni d'Errore
- Corretto il comportamento del server in materia di collisione tra utenti omonimi cui sia stato riconosciuto il diritto di accedere da
IP Address
differenti. - Corretto errore in cancellazione elementi da un record XML.
- Modificato il server per identificare le cause di un errore di lavorazione dei files temporanei.
- Corretto l'uso dell'ordinamento nelle ricerche in cascata in cui, a causa di un intervento nella 25.5.0, si finiva con l'ordinare sempre e comunque anche le selezioni intermedie.
Versione 25.5.0 Candidate
Emessa per Egaf il 11/02/2014
- Nuove Funzionalità
- Introdotti due nuovi Trigger per compiere interventi sui titoli. Nella fattispecie esiste ora un trigger
beforeTitle
che viene usato per manipolare la regola di composizione del titolo che si sta per utilizzare, ed un triggerafterTitle
che viene invece usato per manipolare la stringa risultante dalla lavorazione del titolo, indipendentemente dal fatto che esso sia prodotto con una regola modificata o meno.
- Correzioni d'Errore
- Corretto trattamento espressione di ordinamento interna alla frase di ricerca perché non veniva realmente presa in esame.
- Intervento per sanare alcuni particolari casi di collisione tra utenti.
- Corretto test dei contenuti
UTF-8
per evitare di accedere a punti di memoria non allocati. - Modificato l'approccio ai file di selezione Cached in modo da verificare non solo la data del file (che su postazioni Linux può ingannare) ma anche la sua effettiva esistenza.
Versione 25.4.1
Emesso il 15/09/2014 (per ora Linux Only)
- Correzioni d'Errore
- Corretto errore nella scansione delle chiavi greater del vocabolario in presenza di chiavi cancellate11).
Versione 25.4.0
Emesso il 13/01/2014
- Cambi di Default
- Completato il passaggio del Thesaurus dalla vecchia modalità
case sensitive
ad una modalitàcase insensitive
intervenendo anche sui metodi che compiono una navigazione “articolata” del Thesaurus. Può richiedere la verifica della validità di Thesaurus esistenti che potrebbero vere al loro interno termini ambigui in quanto acase
..
- Nuove Funzionalità
- Introdotto Trigger di post lavorazione a seguito importazione record da WatchDoc.
- Modificato il Thread che consente l'esecuzione di Jobs perché non si basi più su files in una particolare cartella bensì usi un file di configurazione e possa evocare comandi XML, Plug-In e Stored Procedures.
- Introdotto nuovo metodo per l'identificazione della posizione di un record fisico entro una selezione.
- Correzioni d'Errore
- Errore di importazione tramite WatchDoc in caso di file aventi un nome particolarmente esteso. Corretto.
- Corretto caricamento d'archivio perché segnali errore e non prosegua se il Thesaurus collegato all'archivio è privo del suo file di configurazione12) o in esso manchino una o più chiavi collegate a canali dell'archivio.
Attenzione: in passato capitava piuttosto spesso che vi fossero, nei file di configurazione d'archivio, le dichiarazioni di legami con chiavi di Thesaurus quasi più per esemplificazione che per reale utilizzo. Tali archivi non si aprono più con questa versione di server e richiedono di essere corretti nella loro configurazione. - In caso di ricerca Cached sottoposta ad ordinamento si aveva un banale errore dovuto al fatto che in caso di ordinamento la ricerca Cached veniva persa a favore di una volatile ordinata anziché contenere la ricerca nella sua forma ordinata.
- Corretto confronto di chiavi insensitive in ricerca greater sul thesaurus perché se la chiave è parziale la sua normalizzazione non veniva effettuta correttamente.
- Corretta cancellazione di una chiave che risultasse rimossa in un nodo
non foglia
a causa di una precedente cancellazione e re-introduzione. La ricerca delle chiavi nei nodi non foglia deve accettare sempre anche le chiavi cancellate. - Corretto il metodo per mezzo del quale il server valuta euristicamente se un documento contiene già tutte le dichiarazioni dei namespace necessari per non rischiare di farsi ingannare da un falso positivo e non riuscire a condurre a termine un salvataggio altrimenti lecito.
Versione 25.2.0
Emesso il 09/10/2013
- Correzioni d'Errore
- Linux Only: Corretta la composizione del nome degli allegati privi d'estensione che possono presentare (o meno) un punto in coda all'
ID
in quanto ciò fa differenza su piattaforme non Windows. - Corretta la navigazione delle voci dei Thesaurus che poteva creare dei riferimenti ciclici errati.
- Corretta costituzione dell'estensione XSLT/LUA dei documenti in quanto in alcuni casi si causava una corruzione della Ram.
- Corretto crash in importazione da WatchDoc che si presenta se il file da importare ha un encoding non corretto o se vengono indicati Trigger di tipo
beforeSave
che però non tornano un valore valido. Si ricorda che il trigger (autoritativo o meno) evocato in questo frangente deve tornare una stringa contenente il dump del documento nella sua nuova forma o, alternativamente, una stringa vuota. Il Trigger non può comportarsi come una funzionevoid
.
Versione 25.0.3 Patch
Emesso per EquitaliaSud il 29/07/2013
- Cambi di Default
- Modificato il metodo di stesura del registro che ora distribuisce in cartelle suddivise per anno, mese e giorno i files contenenti le registrazioni svolte da ogni singolo server. Questa nuova forma di distribuzione garantisce maggiori prestazioni ed una più ampia flessibilità dei procedimenti di Backup.
- Correzioni d'Errore
- In alcuni casi, con dischi molto grandi, la valutazione dello spazio residuo su disco veniva compiuta in modo errati dichiarando che non c'è spazio disponibile anche se non è così.
- Corretta rimozione dei files temporanei introdotta dopo la versione 24.10 nei server
Linux
. - Corretta gestione della memoria in sede di stesura del registro che poteva causare in alcuni caso molto rari (e solo in Windows) un Memory Leak.
- La mappatura delle chiavi soffriva di un problema di occupazione di memoria in alcuni particolari casi di accesso non ordinato alle chiavi stesse. Corretto.
Versione 25.0.0 Candidate
- Cambi di Default
- Modificata la politica di distribuzione degli allegati tesa ad evitare che in singole cartelle si presenti un numero di file eccessivamente elevato che possa avere impatti prestazionali/strutturali sui Sistemi Operativi che in alcuni casi manifestano problemi quando una cartella contiene oltre 300.000 file.
Questa modifica funzionale rende incompatibili gli archivi così prodotti con le versioni preesistenti del server che non saprebbe reperire gli allegati posizionati su disco secondo la nuova modalità di distribuzione. Questo comporta il cambio di numerazione del server seppure questi risultati si ottengano impostando una specifica voce di profilo d'archivio il cui default è disattivato, mantenendo quindi un comportamento come quello precedente.
- Correzioni d'Errore
- In sede di recodifica di un record XML per identificare dal suo contenuto il file nel quale esso deve trovare collocazione non si tenerva conto correttamente della nuova dimensione raggiunta dal record con effetti potenzialmente dannosi sulla stabilità della memoria coinvolta. Corretto.
Versioni '24'
Versione 24.14.5 Patch
Emesso per Shape Italia il 11/06/2013
- Cambi di Default
- Dalla versione 22.3.1.6 il caricamento della configurazione delle chiavi veniva compiuto ogni volta che si opera sugli allegati al fine di assicurarsi che la configurazione di tutte le tipologie di unità informative sia stata di fatto caricata13). Modificato il comportamento per compiere l'operazione solo una volta e/o solo quando necessario.
- Correzioni d'Errore
- Se si esportano documenti ed il primo dell'elenco che si esporta è cancellato il server segnala errore. Corretto.
Versione 24.14.4 Patch
Emesso il 30/05/2013
- Correzioni d'Errore
Versione 24.14.3 Patch
Emesso il 23/05/2013
- Correzioni d'Errore
- Identificata una corsa critica tra server che cerchino spazio per il proprio utente nell'area di memoria condivisa finalizzata a questo scopo. La vecchia implementazione, in presenza di un pressante carico proveniente da un elevato numero di utenti tutti diversi, causava una corsa critica tra Server che viene reiterata più e più volte sino a quando uno di essi non la spunta. Corretto.
Versione 24.14.2 Patch
Emesso il 22/05/2013
- Cambi di Default
- In presenza di selezioni in cascata, caratterizzate dalla presenza di espressioni
<?THEN?>
oppure<?UNION?>
, un eventuale ordinamento viene ora applicato esclusivamente all'ultima delle selezioni della sequenza.
- Correzioni d'Errore
- Il Trigger autoritativo non tornava correttamente il documento modificato. Corretto.
- Corretta esportazione record in assenza della dichiarazione della directory di share senza la quale il file risultante veniva collocato impropriamente.
Versione 24.14.1 Patch
Emesso il 16/05/2013
- Cambi di Default
- Il Trigger di controllo delle selezioni viene ora chiamato prima dello splitting della selezione stessa in parti in funzione delle componenti
<?THEN?>
- Nuove Funzionalità
- Introdotti log di dettaglio sul traffico socket.
- Correzioni d'Errore
- Introdotto un aggiornamento dello stato di avanzamento che mostra un corretto completamento dei processi di esportazione.
- Corretto errore di encoding che causava un malfunzionamento nel processo di rilocazione delle unità informative di un archivio.
Versione 24.14.0
Emesso il 29/04/2013
- Cambi di Default
- La porta UDP in ascolto per scopi amministrativi è ora accessibile solo da indirizzo locale16).
- Revisione del processo di generazione degli Slave da parte del Master e della comunicazione Client/Server17).
- Modificata la modalità con la quale il Server riconosce l'estensione di un nuovo allegato. L'algoritmo è stato modificato per cercare di evitare difetti dovuti a caratteri non validi dopo il primo punto presente nel nome del file.
Si applica ai soli nuovi allegati, quelli esistenti rimangono invariati.
- Correzioni d'Errore
- L'avvio in modalità debug (-stop) del Server Windows confonde il comportamento del Master e dello Slave. Corretto.
- In caso di scorretta configurazione dei seriali ora il server manifesta un errore (che in precedenza rimaneva nascosto) ed impedisce di accedere all'archivio e compiere operazioni.
- Corretta la creazione ed utilizzo di raccolte se per creare una raccolta si fa uso di un file di selezione che non è realmente su disco.
- Corretto errore di assegnazione encoding ad un documento presente nelle versioni Release dovuto a variabile non doverosamente inizializzata.
Versione 24.12.0
Emesso il 08/04/2013
- Nuove Funzionalità
- Introdotto nuovo log per l'identificazione dell'origine di segnali quali
SIGTERM
che possono interrompere il server 18). - Introdotta la possibilità di ospitare nella cartella di Watch Doc files con estensioni differenti da quelle attualmente ammesse 19) associando ad esse una specifica lavorazione che è legata tanto all'estensione quanto all'archivio.
Riveduta ampiamente la procedura di acquisizione files via WatchDoc. - Introdotti metodi sfruttabili con versione 1.6.0 della libluafunc[so.dll].
- Correzioni d'Errore
- Migliorata la precisione del conteggio del tempo di lettura, scrittura e tempo totale di un comando così come rilevato all'origine.
- Alcune operazioni lazy possono mandare in loop il server eXtraWay se gli archivi non sono allineati. Corretto.
- Introdotta la verifica dell'esistenza delle selezioni che sia indipendente dalla reale esistenza dei file temporanei quando la selezione viene conservata in Shared Memory.
Versione 24.11.0/1 Candidate
Emessa il 01/03/2013 per risolvere alcuni Side Effect introdotti dalla versione precedente.
Applicata su installazione “Studio Ferrario” ed “Equitalia Sud”
- Nuove Funzionalità
- Compiuta ulteriore revisione della gestione dei temporanei. Essi vengono ora suddivisi in cartelle di al massimo 1000 file ciascuno. Inoltre è possibile configurare non solo il numero massimo di selezioni contemporaneamente gestite ma anche la dimensione entro la quale esse vengono conservate in memoria condivisa per ottimizzare le prestazioni.
- Correzioni d'Errore
- La precedente versione introduce un Side Effect legato alla presenza del carattere
~
nel nome delle selezioni. Questo inficia ogni attività di raffinamento se non si ha la cura di racchiudere tale nome tra doppi apici. Corretto.
Versione 24.10.0
Emesso il 27/02/2013
- Cambi di Default
- I files temporanei hanno ora una denominazione del tutto nuova e vengono creati senza generare un file su disco se non è necessario. Tutte le selezioni di dimensioni complessive inferiori ai 4KB non vengono persisite su disco.
Il numero di slot in memoria e quindi il numero massimo di file di selezione su disco è configurabile. - A seguito di una qualsiasi selezione i termini oggetto della stessa non vengono più conservati nella selezinoe stessa e tornati al chiamante a meno che la cosa non venga espressamente richiesta. Vengono conservati e potenzialmente tornati comunque al chiamante anche in assenza di esplicita richiesta solo in caso di selezione nulla per agevolare il processo di reperimento di termini affini e proporre il cosiddetto “forse stavi cercando…” stile Google.
- La frequenza minima dei termini provenienti da un vocabolario in sede d'esportazione viene passata da '0' ad '1'.
Si mantiene la possibilità di impostare la frequenza minima a '0' tramite i parametri del comando XML.
- Nuove Funzionalità
- Introdotto un sistema di rotazione dei files temporanei avente lo scopo di minimizzare il collo di bottiglia dovuto alle attività di I/O di questi files che affollano numerosi una singola cartella.
- Consentito l'invio dei logs su macchina diversa da quello ove opera eXtraWay Server.
- Nuovi log per aiutare gli sviluppatori ad identificare richieste di titoli/ordinamenti che non trovino riscontro nel titolo base.
- In caso di elevato carico il sistema scarta i messaggi di log che non può condurre a termine efficacemente in quanto l'attesa della disponibilità del log rappresenta un fattore di rallentamento importante.
- Correzioni d'Errore
- Corretta stesura log da processi Lua (Stored & Triggers) quando il server opera su porta non standard.
Versione 24.8.0
Emesso il 07/02/2013
- Cambi di Default
- L'identificazione degli archivi che prevedono un'attività di tipo lazy avviene ora in automatico e non con l'ausilio del file di configurazione
xw.conf.xml
.
- Nuove Funzionalità
- Re-introduzione di una logica di indici differiti.
- Correzioni d'Errore
- Corretta navigazione tra relazioni dei documenti in quanto il comando produce un file temporaneo che però non viene scaricato su disco prima di essere usato.
- In sede di ricostruzione dell'estensione XSLT dei documenti (ora estesa anche con tecnologia Lua) non venivano fatti correttamente gli indici dei documenti anche se la cosa era stata espressamente richiesta in modalità batch. La correzione sana anche un potenziale danneggiamento di alcuni files del catalogo dell'archivio.
- Corretta una lentezza in sede di costituzione del catalogo se presente l'elaborazione Xslt/Lua dei documenti.
- Introdotti Trigger per la manipolazione dei record prima della costituzione della cache dei titoli e prima dell'ordinamento.
Versione 24.7.2 Candidate
Emmesso il 10/01/2013 per GWA002534
- Nuove Funzionalità
- Per poter replicare l'ordinamento di una selezione preesistente è ora possibile impostare, come regola d'ordinamento, la sintassi:
?SEL:<Id della Selezione>
. - Introduzione di una nuova serie di Log tesi all'identificazione dei comportamenti anomali dei Plug-In ed in particolare dell'estensione Lua del Server.
Versione 24.7.0/1 Candidate
Emesso a fine dicembre 2012 per GWA002534
- Cambi di Default
- Cambiata la denominazione dei semafori in particolare per Linux.
Versione 24.6.0
Emesso il 14/12/2012
- Cambi di Default
- Si interviene sulle modalità di autorizzazione del server. Ora operazioni come inserimento, modifica, cancellazione e visualizzazione dei documenti non sono regolate dal file di profilo dell'archivio bensì dai triggers.
Al file di profilo si lascia il compito di regolare attività non ordinarie, come la ricerca con tempi lunghi ovvero l'esportazione dei documenti.
In assenza del dovuto diritto il server non consentirà l'operazione.
L'intervento viene compiuto perché da questa versione la ricerca per un termine composto esclusivamente da un'asterisco è inibita per qualsiasi utente che non possieda il dirittoendlessSearch
che consente di compiere selezioni illimitate. - Forzata la dichiarazione del namespace
xw
anche se ne manca la dichiarazione nel filecontext.stat.xml
.
- Nuove Funzionalità
- Introdotta la codifica Base64 per tutti parametri delle Stored Procedures così da consentire di inviare in modo semplice e senza complicazioni anche informazioni complesse e/o strutturate come
XML
.
- Correzioni d'Errore
- Errore nella composizione dei nomi di files temporanei in caso di esportazione.
Dovuto ad un erronea composizione di files che, in presenza di una specifica dichiarazione, sono altresì destinati alla cartella dei files condivisi. - Rimosso un log di sistema di nessuna utilità.
Versione 24.5.2/3 Candidate
Realizzata il 2-3/12/2012 per eGroupWare #1447
- Cambi di Default
- Modificato il formato del log in modo che, in presenza di contesto in cui opera l'utente, esso venga mostrato tra il nome dell'utente e l'IP address di provenienza. Il formato “<nomeutente@ipaddress…” può quindi essere esteso come “<nomeutente|contesto@ipaddress…”
- Nuove Funzionalità
- Introdotto un thread che mantiene vivo il controllo su quanto giunge sul socket in quanto ci sono installazioni in cui sembra si perdano i segnali di lettura pendente.
- Condizionato il thread introdotto con la precedente versione 24.5.2 perché non operi quando il server risulta impegnato nell'esecuzione di un comando. Il condizionamento, inoltre, indica ogni quanti secondi dev'essere compiuto il test per la presenza di informazioni da leggere sul socket.
Vds la configurazione della sezione 'HsTcp' nel file di profilo xw.ini
- Correzioni d'Errore
- Ripristinato l'high light dei termini di una selezione quando essa viene usata per raffinare o estendere una selezione esitente.
Versione 24.5.1 Candidate
Realizzata il 29/11/2012 per eGroupWare #001445
- Cambi di Default
- Le chiamate a Stored Procedures possono tornare due tipi di risposte, stringhe ed XML.
Nel caso del XML ora esso viene comunque collocato in un nodo di dettaglio20) con un attributo che la qualifica, così da poter identificare correttamente anche molteplici valori di ritorno in forma XML.
- Nuove Funzionalità
- Introdotta la possibilità di fare bind ad indirizzo IP specifico così da far convivere server distinti sulla stessa macchina senza che si diano fastidio. (Vds. File di profilo xw.ini nella sezione
HsTcp
alla voceBindIp
).
- Correzioni d'Errore
- Inibito log che confonde le idee in partenza del server. Mantenuto disponibile solo se si innalza il livello di log.
- Corretto il comportamento della ricerca in adiacenza, ordinata e con distanza nota, su termini appartenenti ad attributi privi dell'indicizzazione posizionale.
La correzione non da risultati del tutto certi, può provocare comunque dei falsi positivi per termini in ordine diverso o per la presenza di altri termini tra quelli cercati. Non di meno, pur potendo produrre del rumore, argina il rischio precedente di produrre del silenzio. - Corretto errore di alimentazione del file degli indici quando il numero delle chiavi si fa considerevole e le dimensioni del file raggiungono i 2GB.
Il difetto affligge tutte le versioni 24 ed impone l'aggiornamento di tutte le precedenti versioni da considerarsi deprecate. - Escluso il rischio di loop in valutazione dei files temporanei, arricchito il log.
Versione 24.5.0 Candidate
Realizzata il 20/11/2012 per eGroupWare #001445
- Nuove Funzionalità
- Al fine di consentire Workaround in caso di problemi di indicizzazione viene introdotta una voce di configurazione tesa ad inibire l'indicizzazione di tutti i contenuti testuali degli allegati. (Vds. Configurazione degli archivi alla voce arc.no_idx_attachment)
Versione 24.4.0
Emesso il 14/11/2012
- Cambi di Default
- Revisione integrale del sistema di Trigger & Stored Procedures. Ora il sistema è quasi a configurazione 0 e non richiede più l'impostazione di specifiche unità informative presso l'archivio.
- Nuove Funzionalità
- Correzioni d'Errore
- Corretto effetto collaterale introdotto con i Trigger che causava un crash del server in sede di cancellazione dei documenti.
Versione 24.3.0 Candidate
- Cambi di Default
- Modificate le processing instruction con le quali il server notifica al client i punti di reverse nel testo del documento così da renderele valide23).
- Nuove Funzionalità
- Ampliato log nel processo di rimozione degli allegati non assegnati.
- Modificato il processo di Cache dei documenti in modo che possa produrre un'estensione XSL del record da usarsi esclusivamente come abstract articolato. L'estensione, con fini applicativi, non viene usata ne per fare altri elaborazione ne per ordinamenti o indici, per i quali si può invece usare l'estensione XSL del documento e/o i titoli (Vds. File di profilo xw.conf.xml alla voce title.xsl).
Segue l'iter dei titoli e quindi viene creata/ricreata/distrutta in identiche condizioni e con gli stessi comandi. Le due funzionalità non possono essere scisse. - Introduzione delle Stored Procedures.
- Introduzione del trattamento dei Triggers.
- Correzioni d'Errore
- Corretto il comportamento dei bacini di pescaggio. Quando essi sono espliciti e presenti in aree distinte della selezione venivano confusi.
- Corretto errore in cancellazione documento (Vds. versione 24.2.1).
- Inibito l'uso di una funzione usata nella ricerca dei Memory Leak nella versione Release in quanto non presente nei server prima di Windows 2003 (Windows Only).
- Corretto il test di controllo saturazione disco che causa degli errori in presenza di comandi che non indichino espressamente un nome d'archivio.
- Corretto trattamento delle Processing Instruction nei documenti che causava un difetto d'indicizzazione se il formato interno non era fatto in stile attributo=“valore”
Versione 24.2.2
Emesso il 28/05/2012
- Correzioni d'Errore
- Corretto il test di controllo saturazione disco che causa degli errori in presenza di comandi che non indichino espressamente un nome d'archivio.
Versione 24.2.1
Emesso il 16/04/2012
- Correzioni d'Errore
- Corretto il test supplementare introdotto dalla versione 24.2.0 che, in caso di cancellazione, inibisce l'operazione.
Versione 24.2.0
Emesso il 10/04/2012
- Nuove Funzionalità
- La saturazione dello spazio su disco conduce sovente a danni ai dati o agli indici. Per evitare che questo avvenga il server ora compie delle verifiche, di quando in quando, per stabilire se lo spazio si disco sia “a rischio” ed in quel caso torna un errore qualsiasi sia l'operazione richiesta. Il comportamento, di fatto bloccante, è garantista di una tutela dell'archivio.
La misura alla quale far scattare l'allarme è profilabile (Vds. File di profilo xw.conf.xml alla voce disk.minsize). - Ammessa la dichiarazione della regola di ordinamento direttamente nella frase di ricerca secondo lo stile dei modificatori già ampiamente utilizzato.
Ora è possibile indicare la regola di ordinamento indicando[?SORT:<regola>]
. - Al fine di arginare una pericolosa libertà insita nelle API che dialogano col server viene introdotto un controllo supplementare in sede di modifica del documento teso a garantire che il documento col quale si sovrascrive quello esistente è precisamente una sua trasformazione e non la trasformazione di una versione differente dello stesso.
Il comportamento è un default per tutte le applicazioni, essendo di accezione documentale, ma può essere inibito (Vds. Configurazione degli archivi alla voce arc.allownonstrict).
- Correzioni d'Errore
- Riveduto trattamento caratteri \x81, \x8d, \x8f, \x90 e \x9d che non sono considerati validi neppure in encoding windows-1252.
L'intervento richiede reindicizzazione degli archivi per quanto si possano manifestare difetti di indicizzazione in modifica di documenti solo in presenza di caratteri spuri (quelli elencati). - Rimosso fastidioso
Warning
che appariva nel log quando si compie l'indicizzazione di una chiave vuota su un campo data. - Corretto il procedimento di Search & Replace che dava errore in presenza di caratteri come i singolo o il doppio apice.
Versione 24.0.0
Emesso il 23/02/2012 Questa versione cambia le modalità di indicizzazione dei documenti ma se pure l'impatto si presenta solo in particolari condizioni si indica come necessaria la ricostruzione degli indici in quanto gli interventi toccano diversi argomenti.
- Cambi di Default
- Realizzato apposito log per le attività Lazy. Esso assume la denominazione
lazy<annomese>.log
e non è di tipo ciclico.
L'introduzione di tale log comporta che una parte delle segnalazioni non viene più collocata nel log giornale24) e che nel log rimane traccia di tutte le operazioni compiute, che siano successi o fallimenti, in un formato simile a log standard di eXtraWay25).
In caso di fallimento, qualora non abbia senso tentare un “replay” del comando non eseguito, non viene lasciato il comando in forma di file “.xml.fail” ma ci si limita a riportare il dettaglio del contenuto del file di comando nel log ed il file viene rimosso. In questo modo si limita la quantità di files nella directory anche a fronte di molteplici fallimenti. - in presenza di ricerche che prevedano i modificatori <?THEN?> e/o <?UNION?>, considerati precedentemente dei separatori di frasi di ricerca da concatenare, ora è possibile usare parentesi tonde atte a racchiudere parti della selezione che non è più una mera concatenazione ma una composizione ponderata. Incontrando uno di tali separatori si isola automaticamente la porzione di selezione di competenza.
- Il numero di porta del server di log viene derivato dal numero di porta del server eXtraWay.
- Il titolo (ovvero la Cache) del documento viene ora precalcolato nella sua forma completa, e non in forma tagliata come avveniva in precedenza. Questo può comportare una crescita dello spazio occupato su disco per la Cache dei titoli26) ma ottimizza le funzionalità che necessitano del titolo completo.
- Invertito il default in materia di IWords delle chiavi degli attributi (Vds. Configurazione degli archivi). Ora, in assenza di specifiche, tali chiavi vengono fatte senza il rispetto della posizione esatta ma utilizzando tutte lo stesso indice di parola.
- Trasformato il test di connessione. In sostanza si abolisce il test sulla password, che è privo di significato in un sistema normalmente pilotato da un sistema di autenticazione. Ci si limita quindi a verificare l'autorizzazione dell'utente a compiere la Connect.
- Abolito il file msg.dat non più necessario nella directory degli eseguibili.
- Le registrazioni di inizio e fine attività per i processi Lazy, pur venendo sempre indicata nel log specifico di tali attività, viene ora indicata nel log standard, il log di servizio, solo per livelli di logging superiori a 16027).
- Nuove Funzionalità
- Inibita la modalità di indicizzazione Off Line con indici Lazy. Questa modalità causa troppi problemi e da pochissimi vantaggi, specialmente se paragonata all'indicizzazione Near Off Line di cui è capace il server di serie 23, e non mi risulta che sia mai stata realmente utilizzata.
- Consentita l'esportazione di documenti indicando un percorso assoluto o relativi di cartelle anche se non esistenti che verranno generate in sede di esportazione.
- Chiuso automaticamente il modulo xwls in chiusura del server. Confligge con la presenza di molteplici server che, pur operando su porte differenti, utilizzino di fatto logger sulla stessa porta, ma questo utilizzo dovrebbe sparire gradualmente.
- La richiesta di informazioni al server ora compone il buffer di risposta con maggior dettaglio ed aggiunge, se disponibile, il change log degli interventi effettuati sul server.
- Abolito il trattamento diretto dei files compressi .gz.
- Ammesso l'intervento sul file .conf.xml d'archivio anche in assenza del trattamento della corrispondente DTD.
- Introdotta una nuova modalità d'esportazione, definita Very Simple, che si comporta come quella Simple privando l'output anche di tutti i commenti XML non necessari.
- Reso profilabile il tempo massimo di selezione per gli utenti autorizzati alle operazioni sia brevi che lunghe (Vds. Configurazione degli archivi).
- Correzioni d'Errore
- L'indicizzazione degli allegati in inserimento documenti e/o in indicizzazione off-line avviene prima dell'indicizzazione del campo XSL il quale, però, ha le stesse posizioni del campo XML e fa convergere i propri contenuti negli stessi vocabolari. In presenza di un vocabolario globale ci sono seri rischi di errori di indicizzazione. Invertito l'ordine di esecuzione: XML, XSL, Allegati.
- Se si recupera un archivio Pre 22 con i titoli nel file UDD anziché nei files esterni si ha un errore salvando un documento esistente. Corretto.
- In caso di errore di riallocazione della memoria durante la fase di alimentazione del sistema di chiavi da sottoporre ad indicizzazione, il server ora annulla lo stato delle chiavi e torna errore. In precedenza, pur facendolo, si poneva nella potenziale condizione di causare un crash.
- Corretto Memory Leak Nelle operazioni di Search & Replace.
- Corretto errore di indicizzazione differenziale che si può presentare quando un documento ha degli allegati testuali e/o un'estensione XSL ed in presenza di chiavi globali ovvero di chiavi condivise tra XSL e XML.
- In estensione fonetica non si trattavano doverosamente le condizioni di singole da trattarsi come doppie e di 'h' come suffisso di ogni carattere. Corretto.
- Durante l'estensione dei termini in cui sono presenti Wild Cards non si teneva correttamente conto dei caratteri che erano stati espressamente esclusi dall'elenco dei separatori fornendo quindi un risultato del tutto falsato.
- Corretto il trattamento del carattere '€' sia in indicizzazione che in ricerca, specialmente se esso viene espresso in forma di entity del valore unicode corrispondente (0x20AC).
- In presenza di un'impostazione di tolleranza sull'encoding dei documenti da inserire/modificare/importare tale impostazione non aveva effetto anche sul trattamento degli allegati. Corretto.
- Un'operazione che riguardi direttamente una DLL, d'archivio o meno, non impatta la selezione corrente. Se produce una selezione che dev'essere usata dal chiamante, onere dello stesso è impostarla come selezione corrente.
- In sede di ricerca, in presenza di estensione ed abolizione della stoplist di default c'erano condizioni in cui l'estensione non veniva fatta con le giuste impostazioni in materia di stoplist producendo un errore generico. Corretto.
- In sede di estensione di un range si creava un errore dovuto ad una variabile non inizializzata.
- Corretto errore di indicizzazione/reindicizzazione entity numeriche riferite a caratteri esprimibili con i caratteri del set adottato.
- Corretto errore di estensione in ricerca globale che componeva male la frase di ricerca.
Versioni '23'
Pur essendo una versione che nel tempo ha avuto una numerazione '23', questa versione deve considerarsi una pre-release del server '24'.
La classe '23' del server è riservata alla versione Open Source.
Si ricorda agli utenti che si avvalgano per la prima volta della versione '23' del server che le innovazioni che essa introduce hanno impatti su molteplici aspetti delle installazioni, in particolare le politiche di autorizzazione all'uso degli archivi. Per tale ragione è fondamentale prendere visione dell'Overview e seguire le indicazioni che in essa vengono date.
Versione 23.1.2.0 Candidate
Fornita per eseguire dei test alla Regione Veneto il 20/10/2011
- Cambi di Default
- Esistono ora due diverse directory Lazy. Una di esse è generica, ed interessa indistintamente tutti gli archivi. In essa vengono collocate operazioni non gravose o problematiche come il calcolo dei titolo ritardati (anche se la funzione ormai ha perso di significato). Ora ogni archivio ha una directory <nomearchivio>.lazy nella quale invece affluiscono le operazioni che riguardano quell'archivio e quello soltanto. In questo modo si possono fare puliture delle attività Lazy pendenti mirate.
- Nuove Funzionalità
- Introdotta funzionalità per la cancellazione dei files presenti nella directory lazy d'archivio in sede di reindicizzazione.
- Correzioni d'Errore
- In fase di proiezione, se la ricerca che si sta utilizzando è vuota, non si da errore da analisi spettrale ma si prosegue con la selezione vuota e quindi con una proiezione nulla.
- Le modalità di accesso ai files per le procedure Lazy (sia per alimentare la directory che per consumarne il contenuto) utilizzavano un processo molto puntuale in quanto a scansione della directory ma anche molto gravoso in termini di tempo. Riveduto il processo per renderlo più rapido.
Versione 23.1.0.0
Emesso il 05/10/2011
La presente versione modifica in parte la modalità con la quale vengono fatti gli indici. Sulla carta sarebbe necessario rifare gli indici e quindi assumere che questa versione è incompatibile col passato, ma visto che le precedenti versioni sono scarsamente distribuite, il server è ancora agli albori e gli indici differiscono solo in caso di testi in lingue straniere (o caratteri fantasiosi ottenuti via OCR), si marca la differenza della versione solo con la minor release che suggerisce allineamento.
- Cambi di Default
- Viene attualmente consentito di introdurre nuovi allegati anche in presenza di indici non perfettamente aggiornati, cosa già consentita per i documenti. Introdotta altresì voce di configurazione per inibire ogni tipo di salvataggio in caso di indici non affidabili.
- Dalla presente versione si tollera, per i soli allegati e per le sole piattaforme Unix, che il case dell'estensione differisca da quello indicato nel documento così da salvaguardarsi di fronte a sistemi di alimentazione degli allegati differenti dall'upload standard.
- L'esportazione dei documenti o di qualsiasi altra componente avviene in un file che viene espresso con percorso assoluto o relativo. In caso di percorso relativo, da questa versione, si cerca prima di stabilire il nome definitivo del file partendo dalla directory di Share28) e solo in seguito da quella dei temporanei che in precedenza era il default. Anche la directory di Share viene ora pilotata verso la directory dei temporanei di defuault se non espressamente configurata.
- Nuove Funzionalità
- Modificata la procedura di normalizzazione delle chiavi indicizzate per svincolari dal comportamento irregolare di iconv.dll/libiconv.so.
- In caso di ricalcolo dell'estensione XSL dei documenti, l'operazione ha ora impatti anche sui titoli e garantisce che essi vengano ricalcolati alla bisogna.
- Consentita, con apposita configurazione, la stesura nel registro di maggiori informazioni quali il caricamento documento, il caricamento allegato e l'aggiunta di nuovi allegati.
- Correzioni d'Errore
- Il server va in crash in alcuni casi di analisi spettrale che coinvolgono chiavi molto presenti. Corretto.
- In presenza di un file xml corrotto (ad esempio il file .ser.xml pieno di zeri) il server va in crash. Corretto.
- Nonostante fosse previsto da molto tempo (Vedasi Configurazione degli archivi nella sezione inerente la configurazione dei Search Alias), in presenza di chiavi globali ed in assenza della dichiarazione del campo chiocciola, l'estensione di tale campo non interessava i canali globali bensì tutti i campi. Corretto.
- In presenza di Processing Instruction correttamente conformate ma prive di valore, il server poteva produrre chiavi inesistenti, errate e causare diftti di indicizzazione.
- Ulteriormente riveduto il processo di cancellazione temporanei per garantire vita utile ai temporanei candidati alla cancellazione ma ancora in uso anche in caso di disco in saturazione.
- Modificato il sistema di sleep dei processi. (Unix Only)
- In fase di esportazione, esplicitando il nome di file XSLT da applicare sui documenti, esso veniva ignorato. Corretto.
Versione 23.0.5.0 / 23.0.5.1 (Unix Only)
Emesso il 26/07/2011
- Cambi di Default
- Modificato il comportamento della procedura di rimozione dei temporanei abbassando la soglia di attenzione da 64000 files a 56K files. Superata tale soglia, oltre a rimuovere un maggior numero di temporanei anche più giovani della soglia massima impostata (ma in rispetto della soglia minima) si riduce gradualmente il tempo di test così da assicurarsi che il test successivo abbia luogo in un tempo più contenuto impedendo una crescita incontrollata dei temporanei.
- Il comando di compattamento degli indici non è più eseguito automaticamente quando si compie un indicizzazione d'archivio off-line. Mentre in precedenza veniva compiuto d'ufficio29) e si poteva esplicitare di saltare quel passaggio30) ora non viene compiuto mai a meno che non sia richiesto espressamente con un nuovo parametro del comando di indicizzazione. Il comportamento del compattamento indici come comando a se stante rimane invariato.
- Corretto trattamento dei ranges di date in presenza di date prive di mese e giorno. Il trattamento viene uniformato alle date canoniche evitando un comportamento derivante da antichi refusi sull'alimentazione del vocabolario delle date.
- L'assegnazione di un nuovo numero progressivo di allegato evita il flush31) limitandosi alla scrittura dei files interessati.
- Da questa versione il server accetta che nella frase di ricerca, da esprimersi in forma di stringa windows-1252 si possano indicare entity numeriche (o le 5 entity obbligatorie dell'XML) ed esse verranno convertite in caratteri da ricercare.
- Implementato l'uso del Thesaurus anche nel formato B+Tree. Adottando il nuovo stile, il Thesaurus perde la sua caratteristica di Case Sensitive a favore di un più ragionevole e pratico Case Insensitive.
L'opzione secondo la quale il solo Case avrebbe potuto fare la differenza tra due chiavi non ha trovato mai applicazione. - In fase di composizione della Cache dei documenti non si opera più alcuna normalizzazione delle componenti identificate come date, lasciando tale compito all'applicazione che utilizza la Cache.
- Nuove Funzionalità
- Modificati i comandi di gestione degli allegati in modo che il trattamento degli stessi (compresa rilocazione e spostamento in storage differenti) sia equiparato nei 3 casi previsti:
- Elemento <xw:file> con attributo 'name' e gli altri previsti;
- Processing Instruction 'xw-file' con pseudo-attributo 'name' ed eventualmente 'index';
- Elemento o attributo espressamente dichiarato nel file di configurazione d'archivio.
- Correzioni d'Errore
- Modificate funzioni di identificazione files presenti in una directory alla ricerca di un memory leak.
- Correzione dimensione buffer in ricerca/indicizzazione.
- Corretto comportamento dei thread Linux che svolgono servizi. In assenza di attività avevano un consumo di CPU immotivato.
- Corretto comportamento del server in avvio ed in interruzione che produceva in casi particolare un crash del server.
- Corretto errore di composizione del buffer di ordiamento in presenza di (join:add).
- Corrette le modalità per mezzo delle quali è possibile disabilitare uno o più separatori anche quando essi fanno parte dell'elenco di default.
- L'alimentazione del canale globale comprendeva i contenuti degli allegati anche se non espressamente richiesto. Ora gli allegati partecipano alla chiave globale solo se esplicitato. L'errore è stato introdotto durante una modifica inerente proprio la partecipazione degli allegati alla chiave globale dalla versione 22.1.1.0.
- Corretto memory leak in sede di ricerca estesa.
- Corretto errore di normalizzazione dei percorsi di chiave ed in generale i sistemi di normalizzazione delle chiavi dipendentemente dal tipo di B+Tree che si intende sfruttare.
Questa modifica richiede reindicizzazione degli archivi. In praticolare richiede la reindicizzazione di archivi nei cui percorsi di chiave il case non sia tutto minuscolo. - Compiuta ulteriore correzione del trattamento dei titoli da troncare in quanto la misura non teneva conto di buffer prossimi al limite e non superiori ad esso.
- Patch 1 Unix Only: Corretta validazione utente anonimo in acquisizione documenti da WatchDoc.
Versione 23.0.3.0
Emesso il 08/06/2011
- Cambi di Default
- Impostato un delay di flush di default differente dalla precedente versione 23, valido per indici e dati. In questo modo, anche in assenza di specifiche impostazioni, si da maggiore razionalità alla procedura di flushing32).
- Impostata l'interattività del servizio in sede di setup svolto col parametro -service_install33).
- Nuove Funzionalità
- Completamente riveduta la metodica di trattamento dei caratteri afferenti a codifiche differenti da Windows-1252 e iso-8859-1. Se anche in precedenza il server faceva valide conversioni per trattare tutti i caratteri Unicode, esse ora sono rese quanto più possibile uniformi tra le diverse piattaforme.
La correzione comprende il side effect causato da un errato trattamento del carattere '€' che produceva loops in indicizzazione o accesso agli indici. - Ammessa la possibilità di indicare, per singolo canale, l'estensione fonetica aggiungendo il modificatore
(Phono:1)
. - Revisionato il sistema di esportazione. C'era un flag errato, che dichiarava una funzionalità ed invece ne svolgeva un'altra. Rettificata la finalità di quel flag ed introdotto un flag che consente l'esportazione degli ID degli allegati sempre sotto forma di percorsi relativi.
- Riveduta la procedura di rilocazione in modo che non compia la riscrittura di un documento qualora essa fosse causata solo dall'esigenza di allineamento all'ultima DTD e non ve ne fosse una valida più recente.
- Aggiunta la possibilità di esprimere, col modificatore
(Mfsp:1)
, l'estensione per genere e numero sul singolo campo di ricerca. - Corretto l'utilizzo del titolo in ordinamento forzando la realizzazione del titolo a dimensione piena se in quello staticizzato mancano parti necessarie per l'ordinamento e solo in quel caso.
- Introdotti comandi per la gestione degli allegati e la loro migrazione dallo storage di primo livello (combinato allo storage degli XML dell'archivio) ad altri livelli di storage e vice versa. Si veda la documentazione relativa.
- Correzioni d'Errore
- Corretta indicizzazione archivi off-line in presenza di BTree standard, quindi per archivi non ancora convertiti al B+Tree.
- Corretto errore di attribuzione valori seriali a seguito di un precedente tentativo fallito a causa di una violazione di univocità. In tal caso si saltava pericolosamente un valore seriale.
- Corretta mancata indicizzazione valore vuoto nel campo che contiene l'ID di un allegato.
- I logs prodotti prima dell'avvio di 'xwls' venivano mandati al log si systema come errori. Ora vengono inviati secondo la loro effettiva natura.
- Corretto errore di indicizzazione che rischia di affliggere i percorsi di chiave particolarmente estesi, in particolare quelli relativi ad allegati particolarmente nidificati.
- Corretto errore nell'indicizzazione degli allegati introdotto dalla versione 22.1.3.7 per la riduzione degli interventi sugli allegati con testo corrispondente.
- Ulteriore intervento correttivo per la presenza del file _.xml senza alcun root element.
- Corretto l'interprete delle frasi di ricerca quando in esse si presentino dei tabulatori. Ora vengono normalizzati alla stregua di altri caratteri e trattati come semplici spazi di separazione.
- Corretto compattamento degli XML che, qualora forzato, causava la predita di documenti realmente esistenti e validi. Il comportamento era un errore latente reso evidente con inteventi sul server 22.
- Corretto uso delle chiavi di tipo “alfanumerico” in ricerca perché non consentiva l'uso delle Wild Cards.
- Corretto trattamento chiavi vuote in presenza di una dichiarazione minuscola nel file di configurazione d'archivio.
- Corretta chiamata ai morsetti durante l'indicizzaione. Corretto errore di sporcatura dei separatori in caso di indicizzazione che faccia uso di un morsetto che a sua volta compie una selezione.
- Corretto errore nella valutazione della sequenza “punto e accapo” che causava un errore di posizionamento delle iwords in indicizzazione differenziale. Gli effetti sono particolarmente evidenti in presenza di allegati ma possono essere presenti anche in altri casi.
- Corretto uso selezioni nella richiesta estensioni XSLT.
- Effettuata rimozione estensione XSLT in caso una modifica porti ad un risultato nullo.
- Effettuata modifica al salvataggio della componente XSLT perché si occupi di trattare doverosamente eventuali riporti a capo non precedentemente convertiti per il formato UDD.
- Corretta composizione del titolo dei documenti perché non erri nel compiere il taglio del documento quando troppo esteso.
Versione 23.0.1.0 alfa
Emesso il 22/10/2010
L'introduzione di questa versione apporta una serie molto interessante di novità e cambia sensibilmente le carte in tavola rispetto alle precedenti installazioni. Non è quindi semplicemente possibile sostituire il server '23' ad un precedente server '22' per avere una configurazione regolarmente funzionante.
Per la comprensione delle novità e degli interventi da compiere si rimanda alla lettura dell'apposita Overview.
Gli interventi, alcuni dei quali sono presenti nelle diverse patch del server 22.1.3, sono così suddivisi:
- Nuove Funzionalità
- Modifiche al comando che compie il trattamento dell'estensione XSLT dei documenti perché si presti per la sola indagine del rapporto tra numeri logici di una selezione ed i corrispondenti numeri fisici.
- Impostazione UAC. I moduli ora vengono eseguiti richiedendo i diritti di 'Administrator' sul server ove vengono installati34).
- Implementato sistema di Drop & Rebuild di singole chiavi degli archivi. La ricostruzione delle chiavi avviene in un processo parallelo che non interrompe35) il normale utilizzo degli archivi.
- Mutuato del precedente punto un metodo di rifacimento degli indici degli archivi che può agire senza interrompere l'usabilità degli archivi stessi.
- Introduzione di un più complesso e completo sistema di autenticazione/autorizzazione.
- Introdotta una gestione di chiavi di default che dichiarano autonomamente la modalità di indicizzazione cui esse vanno sottoposte.
- Revisionata l'indicizzazione Off-Line per accrescerne le prestazioni.
- Introdotta la possibilità di compiere selezioni in cascata con un unico comando, riflettendo il risultato di ciascun sottoinsieme della selezione complessiva, sulle selezioni successive.
- Introdotti i ranges con esclusione/inclusione parziale, in sostanza ranges in cui un estremo viene incluso e l'altro escluso.
- Compiuta revisione integrale del sistema di gestione dei files e dei loro locking/flushing.
- Adottato l'uso della cache del BTree anche in indicizzazione differenziale.
- Implementato comando singolo per la realizzazione di archivi clone36) di un archivio dato e disponibili per la consultazione su supporti ottici.
- Introduzione di nuove funzionalità atte all'importazione di documenti via WatchDoc corredati da allegati che vengono opportunamente rinumerati e ricollocati nell'archivio che li ospita.
- Ignorato il parametro di salvataggio che richiede che non venga compiuto il test di wellformedness dei documenti. Tale test non può essere ignorato per nessuna ragione in quanto il documento risultante sarebbe semplicemente inutilizzabile.
- Indipendentemente dalla wellformedness, che necessariamente va verificata, introdotto un flag che consente di disabilitare il test sulla correttezza dell'encoding col quale viene espresso un documento in inserimento/modifica per esigenze di compatibilità col passato.
- Inibita l'indicizzazione di più allegati quando il testo degli stessi è identico. Si confrontano gli allegati a 2 a 2 e si evita di compiere la doppia indicizzazione di allegati che dimostrino di avere lo stesso contenuto.
- Correzioni d'Errore
- Corretto comportamento procedura di Search & Replace che, pur effettuando correttamente il proprio lavoro, da indicazioni sulle attività svolte che sono errate o ingannevoli ed opera anche con elementi mixed.
- Dimensionato correttamente un buffer usato in accesso a vocabolario/thesaurus ed in estensione dei termini per genere e numero.
- Correzione inerente l'indicizzazione delle label degli allegati per il loro reperimento. In caso di molte versioni di un allegato quella corrente risultava non più reperibile37).
- Corretto serio errore in ricerca per adiacenza.
- Corretta procedura controllo vocabolari.
- Corretto il comportamento del server nell'applicazione di un filtro in accesso ai vocabolari.
- Corretto grave errore in indicizzazione delle Processing Instruction.
- Corretta creazione del file di contesto quando assente perché il file risultante era inutilizzabile.
- Corretto errore normalizzazione percorsi che su Unix si rifletteva nelle attività coordinate tra eXtraWay Server ed File Conversion Agent causando dei loops.
- In fase di esportazione relazioni, quando esse sono molto nidificate ovvero ci sono molti nodi figli di un singolo nodo, la stringa che viene prodotta in esportazione era eccessivamente ampia per il buffer destinato a gestirla. Corretto.
- Errata gestione della concorrenza tra attività sui documenti e azzeramento degli archivi. Corretto.
- Corretto errore di allocazione memoria per conversione testi in indicizzazione allegati ed adottata una più precisa conversione dei contenuti anche in presenza di entity non riconoscibili.
- Errore nell'uso di chiavi
alias
ealso
tra il macro canale XML ed il macrocanale XSL (e vice versa). Compiuto un intervento di unificazione del macrocanale che rende semplice e diretto sia l'uso di 'key_alias' che di 'key_also' ed uniformando i vocabolari che ne derivano. - Assicurata la salvaguardia dei seriali (e dei thesaurus) se non diversamente esplicitato anche per archivi esistenti ma incompleti.
- Corretta valutazione della sintassi dei Ranges in caso di lista di termini da ricercare38) quando uno dei valori è rappresentato dal valor vuoto “”
Ammessa come valida anche la forma [campo]={valore} ovvero [campo]={“valore”} anche se la lista prevede un solo termine. - Corretto l'uso delle catene dei liberati nei Buddy Files per arginare le condizioni di corruzione degli indici.
- Inibito l'uso della sintassi [campo1]=[campo2] in ricerca che era consentita pur non dando esito.
- Consentita la combinazione di range in forma di “Or List” ed estensioni di altra natura quali genere e numero, thesaurus della lingua, somiglianza dei termini, fonetica e così via.
- Corretta composizione estensione XSLT che, in sede di costituzione catalogo, compiva un errore di valutazione del documento e non dava un risultato valido.
- Corretto effetto collaterale dell'intervento sul flag di tolleranza encoding introdotto nella precedente versione.
- Interventi in Generale
- Abolito il file
.stat.xml
a favore di un file binario denominato.stat
che consente la riscrittura del file senza dover compiere la sua cancellazione. - Eliminata una moltitudine di refusi del passato HighWay.
- Compiuta una valutazione preventiva delle frasi di ricerca per velocizzare la loro esecuzione. Aboliti i refusi di ricerca su campi non chiave.
- Adottata la modalità delay per la gestione dei titoli come condizione di default.
- Impostato il concetto di priorità nelle attività lazy per far sì che indici off-line abbiano la precedenza su indici on-line e quindi sui titoli ma facendo sì che attività di pari priorità non si rimbalzino continuamente la palla deteriorando le prestazioni generali. Ora i titoli off-line vengono sempre fatti lazy ma esiste un flag per richiederli in modalità standard.
- Accolta richiesta di compatibilità col passato in materia di encoding errato39).
(Vedasi profilo archivi alla vocearc.test_encoding
). - Ottimizzato caricamento ed esecuzione conversioni XSLT specialmente quanto eseguite in modo massivo.
- Modificata la modalità con cui alcune registrazioni vengono effettuate nel file degli eventi (Windows Only) così che non causino un inopportuno allarme.
Versioni Precedenti
Le versioni precedenti si intendono le versioni commerciali sino alla 22 compresa e le successive versioni Open Source la cui documentazione è redatta a parte.
Tabella Greeklish adottata
Il Greeklish è uno stile di scrittura della lingua greca facendo uso esclusivamente di caratteri appartenenti al set Europeo Occidentale. Non esiste una convenzione riconosciuta a livello internazionale essendo questo più un uso e costume che una vera e propria regola, uno standard.
Ciò comporta il fatto che l'adozione di una tabella di trascodifica dal Greco al Greeklisk è comunque una scelta arbitraria e, per poter essere usata coerentemente, essa va condivisa ed accettata.
Di seguito la tabella di transcodifica adottata da 3D Informatica per i caratteri principali.
Transcodifica Greeklish | Carattere Greco |
---|---|
a | α |
a | ά |
b | β |
g | γ |
d | δ |
e | ε |
e | έ |
z | ζ |
h | η |
h | ή |
8 | θ |
i | ι |
i | ί |
i | ΐ |
k | κ |
l | λ |
m | μ |
n | ν |
3 | ξ |
o | ο |
o | ό |
p | π |
r | ρ |
s | σ |
s | ς |
t | τ |
y | υ |
y | ύ |
y | ϋ |
y | ΰ |
f | φ |
x | χ |
4 | ψ |
w | ω |
w | ώ |
A | Α |
A | Ά |
B | Β |
G | Γ |
D | Δ |
E | Ε |
E | Έ |
Z | Ζ |
H | Η |
H | Ή |
8 | Θ |
I | Ι |
I | Ί |
I | Ϊ |
K | Κ |
L | Λ |
M | Μ |
N | Ν |
3 | Ξ |
O | Ο |
O | Ό |
P | Π |
R | Ρ |
S | Σ |
T | Τ |
Y | Υ |
Y | Ύ |
Y | Ϋ |
F | Φ |
X | Χ |
4 | Ψ |
W | Ω |
W | Ώ |
Nota : Alcune tabelle di transcodifica Greeklish usano una differente conversione. Si pongono in evidenza alcuni esempi40) ricordando che eXtraWay non si avvale di questa modalità.
Transcodifica Greeklish | Carattere Greco |
---|---|
V | Β |
Z o S | Ζ |
I | Η |
I | Ή |
TH | Θ |
I | Υ |
I | Ύ |
I | Ϋ |
F | Φ |
CH | Χ |
PS | Ψ |
O | Ω |
O | Ώ |
Tabella Runglish adottata
Il Runglish41) è uno stile di scrittura della lingua russa42) facendo uso esclusivamente di caratteri appartenenti al set Europeo Occidentale anziché quelli cirillici.
Per adottare una tabella di transcodifica valida abbiamo compiuto una riduzione di quella disponibile in WikiPedia aggiungendo la transcodifica di alcuni caratteri estesi pur sapendo di non aver scelto una soluzione standard.
Di seguito le principali transliterazioni
Transcodifica Runglish | Carattere Cirillico |
---|---|
A | А |
B | Б |
V | В |
G | Г |
D | Д |
E | Е |
JO | Ё |
ZH | Ж |
Z | З |
I | И |
J | Й |
K | К |
L | Л |
M | М |
N | Н |
O | О |
P | П |
S | С |
T | Т |
U | У |
F | Ф |
H | Х |
C | Ц |
CH | Ч |
SH | Ш |
SH | Щ |
Y | Ы |
E | Э |
JU | Ю |
JA | Я |
Ignorato in quanto apostrofo | Ъ |
Ignorato in quanto apostrofo | Ь |
A questa trasliterazione corrispondono anche i caratteri cirillici di altra estrazione (Macedoni, Bielorussi, Ukraini, ecc. ecc.) che se pur scritti differentemente corrispondono allo stesso fonetismo.
Overview del server '23' EVO
Nella prima parte di questa pagina di documentazione avete preso visione delle caratteristiche del server di classe '23', detto EVO perché rappresenta una delle più importanti ed interessanti evoluzioni che il server eXtraWay abbia subito nel corso della sua esistenza. Se già il passaggio del server dalle versioni 21, lungamente utilizzate per le nostre principali installazioni, alle versioni 22, che hanno dimostrato di garantire vantaggi sensibili e comportamenti stabili ed efficienti, confidiamo che il passaggio alle versioni 23, dopo un necessario periodo di rodaggio, possa risultare sensibilmente più significativo.
Accantonando i timori di cambiare il comportamento di un server che nel tempo si è sovente stratificato con interventi successivi, molte delle parti interne del server sono state profondamente rivedute o riscritte se pur garantendo lo stesso comportamento “esteriore” del passato.
La sfida si è giocata principalmente sui fronti dell'affidabilità e delle performance con un occhio di riguardo alla riduzione ai minimi termini dei tempi richiesti alle attività di manutenzione straordinaria.
L'elenco degli interventi compiuti e delle funzionalità aggiunte o modificate nel comportamento può risultare poco comprensibile e non essere una guida sufficiente a sfruttare pienamente le potenzialità di questo server. Ecco il perché di questo Overview.
Autorizzazione ed Autenticazione
Il server di classe '23' cambia completamente il sistema di autenticazione ed autorizzazione. il file xusers.xml viene del tutto abolito e lascia il posto ad altra configurazione. Esiste una completa documentazione in proposito ed è indispensabile che se ne prenda visione prima di compiere un'installazione di tale versione.
Performance On & Off Line
Uno dei punti deboli del server eXtraWay, oltre a quelle che sono state problematiche di solidità degli indici nel corso del tempo man mano risolte, è sempre stato l'aspetto delle performance, sia nelle condizioni On Line che in quelle Off Line. Per ottimizzare quanto possibile questi aspetti e spianare la strada ad ulteriori interventi ancor più significativi, è stata compiuta sul server una serie di interventi piuttosto consistenti che ha portato a benefici assolutamente sensibili.
Performance On Line
Diversamente dal server HighWay che lo precede, il server eXtraWay, al fine di poter garantire un livello di dettaglio molto superiore in fase di selezione e rappresentazione dei dati selezionati, è costretto a compiere in fase di modifica di un documento una mole di attività molto superiore. Se presso un archivio HighWay il peso di una modifica, in termini di tempo di esecuzione, era proporzionato all'entità della stessa, in eXtraWay è purtroppo proporzionato alle dimensioni del documento e più risultare gravoso anche in presenza di interventi minimi. Su questo punto e sugli sviluppi che lo riguardano, torneremo in seguito.
Veniamo invece agli interventi che sono stati effettuati per apportare migliorie già nello scenario attuale.
La prima cosa da dire è che il server eXtraWay43) è molto conservativo, ovvero tende a prendere tutte le misure necessarie per minimizzare i rischi di danneggiamento di dati ed indici anche in caso di problemi dovuti, ad esempio, all'interruzione della corrente elettrica. Quest'atteggiamento produce un comportamento “più lento” in quanto garantista: quando un'operazione di scrittura interviene su un'area significativa, dati o indici, il server impone che la stesura sul file system avvenga in modo definitivo, senza lasciare che il Sistema Operativo decida quando compiere questo atto, e procede con l'operazione successiva solo quando la scrittura ha fisicamente avuto luogo.
Un simile comportamento è certo il più garantista in assoluto ma sovente è un inutile spreco di tempo per una delle seguenti ragioni:
- Il sistema sul quale si svolge l'attività è protetto da gruppo di continuità e quindi le attività sul file system sono comunque garantite.
- La stesura dei files avviene comunque in modo serializzato quindi se un intervento interessa ad esempio 3 files diversi, si procede a forzare la scrittura del primo, poi del secondo quando il primo è giunto a termine, e poi del terzo, nell'ordine. In questo scenario, un calo di corrente che avvenga “nel mezzo” manterrebbe comunque una situazione errata per quanto lo status dell'archivio verrebbe mantenuto coerente44).
- Una serie delle attività che vengono svolte durante la fase di salvataggio non ha ragione di essere compiuta in quel momento ed in particolare non ha ragione di essere svolta in una sessione critica45).
Con in mente questi punti ed altre considerazioni a corredo, il server di classe '23' è nato con uno spirito molto diverso e con l'intenzione di garantire un grado di profilabilità che consenta all'amministratore del DB di fare un vero e proprio Tuning tra prestazioni e grado di sicurezza.
Alcuni dei punti di seguito descritti sono presenti anche nel server di classe '22' ma realizzati in modalità differente.
- Gestione della Sessione critica
La gestione della sessione critica è stata trasformata in modo molto sensibile ed importante. I metodi per mezzo dei quali i server si garantiscono accesso esclusivo ad una risorsa46) non sono più quelli di un tempo e garantiscono effetti molto significativi. In precedenza ogni server poteva “sprecare” un tempo non identificato, ma non breve secondo le stime effettuate, nel tentare di acquisire la proprietà di una risorsa. La cosa si faceva tanto più sensibile in presenza di forte concorrenza. Quando molti server vogliono accedere in inserimento/modifica su un archivio, gli “ultimi arrivati” tendevano ad attendere molto più tempo di quanto non fosse realmente necessario ed il tempo percepito per l'esecuzione del comando risentiva in maniera alle volte molto sensibile47) dell'attesa della disponibilità della risorsa.
Modificando il sistema per l'acquisizione della stessa il server ora riesce a spuntare tempi decisamente migliori indipendentemente dal tipo di documento da salvare. - Flushing
Il Flushig dei files su file system è sempre stato un punto al quanto critico e, come detto, comportava una serializzazione delle stesure dei contenuti dei files per un'esigenza di garanzia totale. Questo può ora essere regolate con estrema precisione per compiere un attento Tuning tra performance e sicurezza, prediligendo le prime se l'architettura dell'hardware è già concepita per garantire la seconda.- In precedenza, ben prima dell'entrata in vigore del server di classe '22', era stata introdotta una modalità che consentisse di ritardare il fluishing dei contenuti dei files su disco con un approccio separato per dati ed indici. Premettendo che un successivo studio ha mostrato come la cosa non sia fondamentale48) essa prevede l'introduzione di due voci di profilo nel file di configurazione d'archivio. Esse sono:
arc.flushdatasteps: Indica ogni quante operazioni di scrittura sui dati si deve compiere il flush
arc.flushidxsteps: Indica ogni quante operazioni di scrittura sugli indici si deve compiere il flush. Se mancante assume il valore di arc.flushdatasteps.
Questo sistema è però del tutto incontrollabile. La coerenza e l'affidabilità di questi step dipende dalla regolarità con la quale vengono distribuite le attività tra i diversi server. Se a monte c'è squilibrio nella scelta dell'istanza client che deve operare (ad esempio perché non siamo in presenza di carico), ci sarà un solo server a lavorare molto ed altri del tutto scarichi: il primo farà flush con una certa frequenza mentre per gli altri la cosa non avverrà pressoché mai. - Il server di classe '23' introduce una modalità simile ma molto più efficacie e sicura. L'attività si svolte a tempo, quindi è possibile impostare quanti secondi debbano intercorrere tra un flush e l'altro. Ulteriore aspetto positivo di questo sistema è che è condiviso da tutti i server quindi nel momento in cui uno di essi compie il flush, il conteggio del tempo che separa dal prossimo flush vale per tutti e riprende da 0. Le voci di profilo sono simili e si sovrappongono a quelle precedentemente indicate, essendo prioritarie se presenti. Esse sono:
arc.flushdatadelay: Indica il numero di secondi che separa un flush dei dati dal successivo49);
arc.flushidxdelay: Indica il numero di secondi che separa un flush degli indici dal successivo50).
Con l'adozione di questi sistemi, unitamente a quanto detto precedentemente in materia di gestione della sessione critica, il server è in grado di spuntare risultati molto interessanti.
Oltre a questo, il flush viene compiuto in un processo parallelo visto che esso condizionerà comunque gli altri fruitori della risorsa soggetta a flush, ma riuscendo nell'intento in un tempo molto minore.
- Trattamento dei Titoli.
Il trattamento dei titoli è stato ulteriormente alleggerito. Il calcolo del titolo di un documento è un'operazione che, ragionevolmente, non deve far perdere tempo a chi richiede un salvataggio. Ciò comporta che il titolo del documento dev'essere fatto solo quando serve o quando c'è tempo per farlo. A tale scopo, diversamente, dalla serie '22', il comportamento del server '23' è un po' differente.- In assenza di dichiarazione, il server 2251) calcola il titolo immediatamente, in fase di inserimento o modifica del documento. Può però essere configurato per operare in modalità “delay”52) oppure “lazy”53).
Indipendentemente dalla configurazione, i titoli Off-Line vengono fatti comunque in modalità “lazy”. - Il server '23' non calcola più i titoli all'atto dell'inserimento/modifica del documento, in nessun caso ed indipendentemente dalla configurazione. La modalità “delay” diviene quella di default mentre quella “lazy” può essere impostata tramite file di profilo d'archivio. Rimangono invariati i comportamenti sui titoli nelle operazioni Off Line.
- Parallelizzazione di tutte le operazioni che è consentito compiere in modo asincrono. Queste variazioni hanno condotto ad un miglioramento prestazionale molto superiore alle attese. Nella fattispecie ci si riferisce in particolare ad attività quali:
- Stesura dei files di log standard (xw.log, xwannomese.log, wd_journal.log ed altri)
- Stesura del log di registro. Le versioni sino alla '20' compresa soffrivano del fatto di condividere con il server Master una comunicazione sincrona per la stesura del registro, comunicazione per altro serializzata quindi ulteriormente aggravata dal collo di bottiglia rappresentato dal server Master. La versione '21' introduce una modalità parzialmente asincrona che si avvale dei files collocati in una directory xreg ma il sistema si è dimostrato fallibile e comunque aggravato dalle prestazioni del disco. La versione '22' sistema i problemi principali di questo sistema ma esso rimane in buona parte sincrono. La versione '23' abbandona tutti i metodi precedenti e rende tutto assolutamente asincrono con l'acquisizione semaforizzata della risorsa (xregannomese.log) da parte dei singoli server Slave.
Performance Off Line
Come precedentemente accennato, le attività di calcolo dei titoli sono state ottimizzate tanto nella modalità On Line quanto nella modalità Off Line conducendo ad un comportamento “lazy”, forzato d'ufficio54), le attività che riguardano i titoli per azzerare il tempo d'attesa per il loro calcolo nelle fasi di manutenzione ordinaria e straordinaria.
Molti altri interventi sono però stati compiuti specialmente nel trattamento dei vocabolari rappresentati da Alberi Bilanciati (file .idx/.ths/.thv) e nella gestione della memoria.
L'adozione di una nuova generazione di Alberi Bilanciati55) comporta performance nell'accesso e nella manutenzione delle chiavi che è assolutamente sensibile56). Come accennato, inoltre, c'è una gestione completamente rinnovata della memoria coinvolta in queste attività.
Vediamo cosa cambia e come sfruttarlo al meglio.
- File di configurazione del server57)
Il file di configurazione del server prevede una sezione [hs] che contiene una serie di parametri.
Nel server di classe '22' quelli che riguardano l'indicizzazione On & Off Line sono:
⇒ AreaDiLavoro
⇒ NodiCache
⇒ AreaDiLavoroMax
⇒ NodiCacheMax
⇒ KRAM
⇒ FastKRAM
AreaDiLavoro ed AreaDiLavoroMax rappresentano una misura che il server utilizza per calcolare un'area di memoria da allocare per le attività di indicizazzione58) On & Off Line. Il valore massimo consentito è pari a '300.000' che rappresenta, per inciso, una quantità di memoria molto contenuta. Il server '23' ignora questi due parametri che non utilizza più ed alloca d'ufficio un'area di dimensioni maggiori59)
NodiCache indica quanti nodi60) dell'Albero Bilanciato vadano allocati per la gestione della memoria da usare in inserimento e modifica. Il server '23' utilizza questo valore calcolando un'area corrispondente61).
NodiCacheMax e KRAM indicano quanta RAM viene utilizzata dal server in sede di indicizzazione Off Line. Il primo valore62) indica quanti nodi vadano allocati per la cache dell'Albero Bilanciato mentre il secondo indica quanti Kilo-Bytes verranno allocati per la successiva fase di scarico delle chiavi63).
Il server di classe '23' abolisce questi due valori e ne introduce un altro, CacheSize che li racchiude entrambe. Esso esprime, in Mega-Bytes una misura che viene usata sia per i nodi della cache dell'Albero Bilanciato64). Se ad esempio abbiamo NodiCacheMax=800000 e KRAM=400000 il nostro valore corrispondente approssimato sarà CacheSize=400. In assenza di questo valore il server di classe '23' valuta i due precedenti, stabilisce la quantità di memoria richiesta ed adotta la maggiore delle due.
- Le performance sono accresciute dal fatto che gli indici non vengano più trattati da un Albero Bilanciato di vecchia concezione65) bensì da una più moderna concezione di Albero Bilanciato detto B+Tree sul quale è stata fatta un'esplicita implementazione/personalizzazione per le nostre finalità. Avremo quindi i seguenti scenari
- Archivi Nuovi. Gli archivi nuovi vengono direttamente creati con dei B+Tree. I files corrispondenti si sdoppiano e divengono:
⇒ nomearchivio.idx.bpt
⇒ nomearchivio.idx.edt
ed analogamente
⇒ nomearchivio.ths.bpt & nomearchivio.ths.edt
⇒ nomearchivio.thv.bpt & nomearchivio.thv.edt - Archivi Esistenti. Gli archivi esistenti presentano i noti files
⇒ nomearchivio.idx
⇒ nomearchivio.ths
⇒ nomearchivio.thv
ed il server continua quindi ad operare in modalità canonica. Per convertire tali files nei più aggiornati B+Tree, in particolare il file nomearchivio.idx, si dev agire come segue:
⇒ Modalità Invasiva: Su un archivio esistente si tende a preservare il comportamento in essere quindi il server continuerà ad usare il BTree o il B+Tree, a seconda di com'è fatto l'archivio, anche a seguito delle operazioni di manutenzione più comuni. Anche il rifacimento del catalogo che solitamente rappresenta un rifacimento dell'archivio dalla base, non risulta efficacie in tal senso.
Per riuscire nell'intento si deve quindi provvedere alla cancellazione dei files dell'archivio ad eccezione del file nomearchivio.conf.xml e nomearchivio.ser.xml66) ed ovviamente di tutti gli XML e gli Allegati e rifare integralmente l'archivio e la sua mappa ed indici.
⇒ Modalità Semplice: Un archivio esistente può essere convertito dal BTree al B+Tree con il solo compattamento degli indici, da richiedersi tramite Console. Al termine dell'operazione il file .idx avrà lasciato spazio alla coppia di files .idx.bpt/.idx.edt per il solo vocabolario mentre i Thesaurus resteranno nella “vecchia forma” anche se la cosa è decisamente poco importanti.
Vale la pena notare come l'attuale compattamento del vocabolario sia molto più veloce e garantisca un ordinamento delle chiavi del vocabolario più efficace ed efficiente.
- Controllo del Vocabolario. Precedentemente inaffidabile67) il controllo del vocabolario ora ha un comportamento ancor più preciso. In sede di verifica, inoltre, è possibile ottenere un'esportazione integrale del contenuto del vocabolario creando un file nomearchivio.keys nella directory dell'archivio. In presenza di tale file il server ne rimuove integralmente il contenuto e lo valorizza come da seguente schema:
⇒ 4 bytes, binari, in cui viene codificato il vocabolario68)seguito, senza interruzione, dal contenuto della chiave stessa
⇒ virgola e spazio (, )
⇒ Lunghezza, in bytes, della catena dei riferimenti corrispondente
⇒ virgola e spazio (, )
⇒ Numero dei documenti selezionati da questa chiave
⇒ virgola e spazio (, )
⇒ Numero delle presenze di questa chiave nei documenti selezionati, se pari a '0' la chiave è priva di IWords.
Estensione Lucene-Like
Il server eXtraWay di classe '23' introduce un primo embrione di funzionalità che gli consentono di operare come se si trattasse di un server Lucene. Questo ha richiesto l'approntamento di diverse funzionalità, l'estensione del linguaggio di ricerca e l'adozione di un meccanismo ci costituzione di archivi speciali, realizzati appositamente allo scopo, che vengono definiti Archivi Lucene Like.
Per conoscere i dettagli della loro creazione e le modalità d'uso si rimanda alla lettura della documentazione a ciò relativa.
Oltre alla creazione degli Archivi Lucene Like è stato necessario gestire un sistema di chiavi che non necessiti di configurazione nel file dell'archivio. Questo consente di dichiarare le caratteristiche delle chiavi che si andranno a creare direttamente salvando il documento. Per maggiori dettagli consultare la documentazione relativa.
Una volta che si sono poste le basi per la realizzazione di un archivio adatto allo scopo e si sono ampliate le capacità del server in quanto a dichiarazione dinamica delle caratteristiche dei vocabolari, quello che resta è adeguarsi alla sintassi di ricerca del server Lucene.
Per esprimere una ricerca che faccia uso di tale sintassi si deve indicare in un punto qualsiasi della frase di ricerca l'etichetta
[?LUCENE:]
ovvero
[?LUCENE:nomecampo]
Dove il nome del campo espresso è quello che in Lucene è il campo di default da utilizzarsi in assenza di esplicita dichiarazione.
Per fruire adeguatamente della sintassi Lucene e dare risultati in linea con le aspettative di chi è avvezzo a simili strumenti sono state compiute due importanti attività:
- Riscrittura integrale del sistema di calcolo del peso dei documenti con una valutazione grandemente più precisa rispetto a prima e Lucene Compliant per quanto possibile. La modalità precedente era del tutto proprietaria e non era priva di difetti. Vista l'ampia diffusione di quella adottata da Lucene abbiamo ritenuto che fosse opportuno avvicinarsi ad essa.
- Introdotti di nuove tipologie di range con inclusione di un estremo ed esclusione dell'estremo opposto.
Quest'ultimo punto merita un approfondimento.
Altre soluzioni ed innovazioni
Per ragioni non esclusivamente legate alle performance ma ad un generale miglioramento comportamentale del server sono stati affrontati anche i seguenti interventi.
- Il server '23' semplifica la gestione dei seriali e tende ad una maggior garanzia della loro conservazione. Diversamente dalla versione '22', che provvedeva alla loro rimozione a meno che non venisse richiesto esplicitamente di conservarli, il server '23' parte dal presupposto che essi vadano conservati comunque e che la richiesta di abbatterli definitivamente debba pervenire in modo esplicito69).
Nota: Il server di categoria '23' assume che si stia lavorando normalmente con un archivio corredato dal file nomearchivio.ser.xml. Esso non prevede in alcun modo la presenza dei seriali internamente al file nomearchivio.stat.xml e quindi per chi volesse convertire un archivio molto vecchio ancora privo del file nomearchivio.ser.xml si raccomanda di creare questo file manualmente tanto più che il file nomearchivio.stat.xml viene completamente perso e lascia il posto ad una sua revisione spiegata di seguito. - Abolito il file
.stat.xml
a favore di un file binario denominato.stat
che consente la riscrittura del file senza dover compiere la sua cancellazione. Questo pone al sicuro dai rischi più volte presentatisi del danneggiamento del file nomearchivio.stat.xml che risulta di '0' bytes. Le cause di questo difetto non sono mai state identificate70) ma esso è certamente dovuto al fatto che tale file veniva regolarmente rimosso e riscritto integralmente. Con l'adozione di un sistema binario il problema svanisce. Permane il rischio di dover fare interventi manuali nel file, attività che comunque è bene che faccia un utente esperto. La conformazione interna di tale file non è argomento della presente documentazione. - Nelle precedenti versioni era consentito ignorare il test di Wellformedness in fase di salvataggio di un documento. Dal momento che il documento così salvato sarebbe sì indicizzabile ma non sarebbe utilizzabile da parte di qualsiasi client, neppure il più semplice come
Console
, tale controllo viene ora effettuato d'ufficio71). Permane la possibilità di ignorare tale test sui files XML che si sottopongono alla mappa dell'archivio, per ragioni di performance, in quanto si assume siano stati precedentemente verificati o frutto di un'elaborazione già corretta.. - Introdotto un concetto di priorità nelle attività lazy per far sì che indici off-line abbiano la precedenza su indici on-line e quindi sui titoli ma facendo sì che attività di pari priorità non si rimbalzino continuamente la palla deteriorando le prestazioni generali. Inoltre, le attività off-line sui titoli vengono ora sempre fatte in modalità lazy ma esiste un flag per richiederli in modalità standard.
liblua
.pdf.p7m
, il server assume come estensione ogni cosa oltre il primo punto incontrato da sinistra.debug/log.level
.xw.conf.xml
nella sezione global.conf
alla voce share.dir
iso8859-1
abbia caratteri appartenenti all'encoding windows-1252
I titoli dei documenti cui si fa accesso mentre è in corso il rifacimento globale dei titoli in modalità “lazy” comporta che tali titoli vengano calcolati e salvati, cosa che poi la procedura “lazy” fa nuovamente replicando un lavoro già svolto.
L'impatto quindi si valuta in termini di operazioni inutilmente replicate più che di performance o funzionalità nel senso stretto del termine.