Questa è una vecchia versione del documento!
Indice
Introduzione
La documentazione presente intende discutere come configurare ed utilizzare una funzionalità del Server eXtraWay avente un ruolo particolare, quello di rimuovere gli allegati inviati al server ma mai associati realmente ad un documento.
Per quanto la pratica non sia molto frequente, ci sono applicazioni, (Vds. xCrossWay) che fanno un ampio uso di allegati ma che sovente giungono a determinare che il documento non va salvato in quanto già pienamente esistente.
In alternativa, comunque, le applicazioni che facciano normalmente uso di allegati possono lasciar crescer senza controllo alcuno il contenuto della directory <nomearchivio>.file conducendo ad un rischio di saturazione del disco che ospita l'archivio per conservare files che nessuno utilizza realmente.
Vista la delicatezza dell'operazione 1) la sua configurazione è stata pensata a più livelli così che l'intervento del server non abbia luogo se non effettivamente richiesto.
La procedura di rimozione degli allegati. Configurazione ed utilizzo
Gli allegati non utilizzati, ovvero inviati al server perché esso vi associ un identificativo numerico univoco ma poi non associati ad alcun documento dell'archivio, possono spesso essere rimossi senza particolari complimenti quando sia trascorso un tempo ragionevole perché essi non possano più essere utilizzati in documenti ancora da modificare o inserire.
Perché il server intervenga rimuovendo gli allegati sono necessari due livelli di configurazione. In primo luogo il Server eXtraWay va istruito per attivare il thread a tempo che svolge questo compito. Tale thread si attiva impostando nel file xw.conf.xml una voce active con valore true nell'ambito di una sezione rmattach. Nell'ambito della stessa sezione si potrà indicare la vetustà che si richiede abbiano gli allegati per essere rimossi con una voce attach.age.
L'esempio che segue indica la richiesta dell'attivazione del thread preposto alla cancellazione degli allegati che risultino più vecchi di una settimana.
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE xwconf SYSTEM "http://www.3di.it/extraway/xwconf_20040930.dtd"> <xwconf> ... <section name="rmattach"> <profile type="active" value="true"/> <profile type="attach.age" value="1w"/> </section> ... </xwconf>
L'esempio si avvale di una definizione per il tempo di vetustà degli allegati che va interpretata come segue.
Il valore è dato da un valore numerico e da una singola lettera che indica l'età che l'allegato deve avere per poter essere considerato removibile. I valori ammessi sono
Vetustà | |
---|---|
m o M | Il valore numerico espresso va interpretato in minuti |
h o H | Il valore numerico espresso va interpretato in ore |
d o D | Il valore numerico espresso va interpretato in giorni |
w o W | Il valore numerico espresso va interpretato in settimane |
Il valore di default è 1 giorno.
Il thread verifica ogni ora (o più frequentemente se il tempo indicato è minore) se ci siano allegati per gli archivi configurati che risultino abbastanza datati da essere rimossi.
Nota | Ogni volta che il server compie il test sulla vetustà dei files provvede anche a ricaricare la propria configurazione quindi i cambiamenti di configurazione vengono recepiti dinamicamente senza dover far ripartire il servizio. Ovviamente, quando il cambio dovesse far scendere l'intervallo di vetustà sotto alla misura di un'ora, esso non sarà recepito sino a quando l'ora in corso non sarà trascorsa |
---|
Il test viene effettuato per tutti gli archivi disponibili. Essi sono quelli direttamente reperibili nella directory db dell'installazione del Server ovvero quelli esplicitamente citati nel file xw.ini.
Per ciascuno di essi viene compiuto un test supplementare. Essi devono presentare nel loro file di configurazione, <nomearchivio>.conf.xml, una voce di profilo corrispondente a…
<profile type="attach.remove" value="true"/>
…in assenza della quale il server non compie alcuna verifica effettiva per l'archivio indicato.
Quando le due configurazioni sono entrambe presenti, il Server provvede realmente al test ed alla cancellazione degli allegati non utilizzati.
Tale cancellazione coinvolge solo ed esclusivamente i files presenti nella directory <nomearchivio>.file e non viene estesa alle sub-directories. I soli files ad essere rimossi, inoltre, sono quelli il cui nome2) è composto da 6 digit.
Registrazioni nei files di log
Le operazioni compiute dal thread il cui compito è stato descritto nel paragrafo precedente vengono tutte registrate nel file di log specifico rmattach.log.
In esso si presentano registrazioni aventi il seguente aspetto:
Innanzitutto viene indicato il momento in cui inizia il lavoro del thread con una registrazione come la seguente…
20050928155023.431 03836 [I]RmAttach: Starting Remove Job |
La cancellazione dei files può non essere stata richiesta per un archivio. In tal caso, e se il livello di logging è sufficientemente alto, nel file si presenterà una registrazione come la seguente…
20050928155828.796 03836 [I]Archive c:\xw\db\xccm\xccm: attachment removing skipped. |
…oppure la procedura può essere compiuta su un archivio ed i files incontrati rimossi come richiesto con una registrazione come la seguente…
20050928160001.437 03836 [E]File: c:\xw\db\xcrossway\xcrossway.file\501234.pdf removed |
Al termine del ciclo di verifica e cancellazione, che ovviamente potrebbe non rimuovere alcuna raccolta, la segnalazione sarà…
20050928160002.687 03836 [I]RmAttach: Ending Remove Job |
Se poi vengono meno le condizioni per compiere i test (perché si presenta un errore oppure perché il file di configurazione viene cancellato) si avrà una registrazione come la seguente…
20050928160028.812 03836 [E]Exiting code (1) |
…indicando un valore diverso da 0 ad indicare il codice d'errore. Parimenti se ne file di configurazione viene citata una vetustà del file ma con una sintassi non riconosciuta, il log presenterò una registrazione come la seguente…
20050928160028.812 03836 [E]No file age specified |