Ci sono situazioni in cui aggiungere un nuovo allegato ad un documento comporta attese talmente lunghe da giungere a vanificare l'operazione.
Anche ripetendo l'operazione queste attese possono risultare particolarmente estese o ripresentarsi sporadicamente.
Questo sintomo si presenta, solitamente, dopo che si è compiuta su un archivio una manutenzione che ha condotto alla ricostruzione dello stesso. Va quindi escluso il semplice compattamento ma preso in esame il caso di un esportazione seguita da una importazione su una struttura vuota.
Il trattamento degli allegati, infatti, ha luogo per mezzo di un contatore interno al file di struttura nomearchivio.sts il quale viene incrementato ad ogni generazione di un nuovo allegato. Il server ha inoltre il compito di verificare che non esistano due allegati aventi lo stesso numero ma estensione diversa per cui, ogni volta che cerca di assegnare un nuovo codice numerico di allegato, verifica che non esista su disco un file ad esso corrispondente indipendentemente dall'estensione. Quest'operazione, se eseguita una ed una volta soltanto alla creazione di un nuovo allegato, si completa in temi ridottissimi e non risulta avere alcun impatto. Diverso è invece quando l'operazione viene ripetuta per molte e molte volte.
Esportando e di seguito importando un'archivio in una struttura vuota esso può mantenere tutti i riferimenti ai propri allegati per il semplice fatto che essi vengono referenziati per codice numerico. Quest'operazione, per altro, non intacca il contatore interno degli allegati quindi, se essa viene compiuta su un archivio ampiamente popolato di allegati, alla prima operazione di inserimento di un nuovo allegato il server tenterà, partendo da '1', tutti i codici numerici sino a trovarne uno cui non corrisponde un file su disco.
In quest'ottica possono presentarsi due diversi scenari:
Questi due scenari portando ad un comportamento diverso. Il primo caso, decismente meno frequente e probabile, conduce ad un considerevole rallentamento quando si richiede per la prima volta dopo la manutenzione l'aggiunta di un allegato. Quest'operazione, la cui durata può essere anche molto lunga, e può dipendere quindi dal numero di allegati che popolano l'intero archivio, è definitiva in quanto, una volta portata a termine, l'archivio torna ad avere un comportamento regolare: tutti i codici di allegato sono stati verificati e saltati sino al normale raggiungimento di quello che precedentemente era il valore dell'ultimo codice assegnato.
Il secondo caso, decisamente più rispondente alla verità, ha il comportamento più fastidioso. Il server va alla ricerca, per così dire, del primo buco disponibile, ovvero della prima posizione nei codici numerici cui non corrisponda un file su disco (perché sostituito o originariamente appartenente ad un documento rimosso). Quel codice viene quindi assegnato ed alla successiva aggiunta di un nuovo allegato il problema può ripresentarsi più o meno sensibilmente a seconda di quanti test saranno necessari per determinare il prossimo buco disponibile. Quello che rende più complesso identificare questa casistica è proprio il comportamento aleatorio: un momento la cosa è veloce perché si è nell'ambito di un buco piuttosto ampio o di più valori risponibili a breve distanza tra loro, un momento si attende lungamente in quanto il prossimo buco disponibile è particolarmente remoto.
Una soluzione a questi problemi consta nella rettifica del valore di cui sopra, ovvero la rettifica di questo contatore interno.
Per effettuare quanto detto bisogna disporre di un archivio virtuale che punti all'archivio 32 Bit di nostro interesse e del modulo HsTools.exe (16 Bit). Una volta aperto l'archivio virtuale accedere al menù Edita e da esso al sotto menù Operazioni Indirette ove selezionare la voce Rettifica Contatore Interno. Viene richiesto un numero. Quello da impostare può corrispondere all'ultimo numero assegnato o a qualsiasi numero superiore.
Per stabilire quale sia l'ultimo numero di codice assegnato bisogna accedere alla directory, avente lo stesso nome dell'archivio, che ospita gli allegati. Entro tale directory sono presenti una serie di directory numerate, una per ogni centinaio di files. Dal nomero assegnato alla maggiore di esse ed al file al suo interno con il codice maggiore si può quindi calcolare il maggiore dei valori assegnati.
Torna a Indice delle voci