La realizzazione di un registro delle operazioni principali svolte sui diversi archivi da parte di un'installazione dei programmi 3D origina in HighWay Server ed ha trovato la sua naturale continuazione anche in eXtraWay Server per quanto in questo caso assuma una forma decisamente diversa.
Se è vero che in HighWay era necessaria la presenza di una particolare libreria esterna, hicount.dll, perché venissero svolte alcune mansioni supplementari, per eXtraWay le cose sono un po' cambiate. Vediamo di fare ordine.
Il HighWay, la hicount.dll svolgeva 3 mansioni:
In assenza di questa libreria dinamica queste funzionalità sono indisponibili.
In eXtraWay la prima delle funzionalità esposte è stata abolita, la seconda viene automaticamente svolta dal server, senza la necessità di alcuno strumento esterno e la terza viene anch'essa svolta del server previa configurazione di un apposito file.
Tanto per HighWay quanto per eXtraWay, la verifica della non contemporaneità d'accesso di un utente è strettametne vincolata al fatto che il client ci notifichi dati necessari a questa verifica.
Come detto nella sezione precedente, perché il server eXtraWay compia la stesura del file di registro è necessario compilare adeguatamente un file di configurazione.
Tale file, denominato xreg.conf.xml, trova posto, come tutti gli altri files di configurazione di eXtraWay, nella directory conf, parallela alla directory che ospita gli eseguibili eXtraWay.
Di seguito un esempio di tal file:
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE xreg_cfg SYSTEM "http://www.3di.it/extraway/xreg_20030611.dtd"> <xreg_cfg> <global active="true"/> </xreg_cfg>
La principale voce di configurazione prevista, com'è possibile vedere, corrisponde all'attivazione di questo servizio supplementare. In assenza del file di configurazione o dell'attributo preposto a questo scopo, il sevizio non è attivo, essendo false il valore di default.@
L'elemento global prevede altri possibili attributi:
allow_collision:
indica, se true, che l'accesso contemporaneo dello stesso utente da IP Address diversi è consentito. packed:
indica, se true, che la stesura del file di registro deve avvenire in modo compresso producendo quindi un file con estensione finale gz
. allow_undeclared_ip:
Indica se si debba avere un comportamento rigido o meno in presenza di operatori che non si qualifichino con il loro Ip Address di provenienza.255
.255
.255
.255
andando quindi in conflitto con lo stesso operatore proveniente da un indirizzo valido.allow_undeclared_ip
è disponibile dalla versione 19.4.0.* del server e richiede un file di configurazione xreg.conf.xml allineato alla dtd versione xreg_20060209.dtd.as_job:
Indica se l'alimentazione del registro, da Slave a Master, debba avvenire sotto forma di job, ovvero scaricando su una serie di files le registrazioni da compiere (che saranno eseguite near-on-line dal server) oppure se si debba proseguire interpellando il server Master via socket.as_job
è disponiible dalla versione 21.1.3.116 del server.gzip
in qualsiasi momento ed il server rimane comunque in grado di scriverli o leggerli.Esiste un modulo avente lo scopo di consentire la lettura del registro per verificare quante e quali operazioni siano state effettuate, quando e da chi. Inoltre è possibile, per alcune delle operazioni in esame, conoscere gli effetti dell'operazione eseguita. La lettura avviene indipendentemente dal fatto che i files siano compressi con gzip
o meno.
Il programma, denominato xreg.exe, torva dislocazione naturale nella directory degli eseguibili eXtraWay e va eseguito da console senza parametri. Esso propone un semplice menù che ha approssimativamente il seguente aspetto:
Enter Op Code (P:Prev, N:Next, E:Export, V:VerboseOn-Off, L:Limit, D:Details, S:Save, X:Exit)
Digitando il carattere suggerito a fianco di ogni voce si può eseguire il comando richiesto. Vediamo tali comandi nel dettaglio:
P
e N:
Prev e Next. Si spostano e procedono alla visualizzazione della registrazione precedente (P) o successiva (N).E:
Export. Richiede di indicare il nome di un file di testo nel quale effettuare l'esportazione delle registrazioni. Di seguito richiede se si desidera esportare anche i dettagli o meno. Per una descrizione dei dettagli si veda di seguito.V:
Verbose On & Off. Il record mostrato con i comandi P
e N
possono essere visualizzati in modo sintetico o verboso (il modo sintetico è il default). Nella modalità sintetica viene esposta una sola riga, separata da virgole, nella quale appaiono tutte le componenti principali della registrazione. Essa è tanto sintetica quanto poco chiara. La modalità verbosa, per contro, fraziona tale forma in linee distinte corredandole di una descrizione per mezzo della quale identificare data ed ora, utente, IP Address di provenienza, il tipo d'operazione compiuta, l'archivio sul quale ha avuto luogo ed una coppia di valori numerici che assumono un diverso significato a seconda dell'operazione effettuata (tipicamente il numero di documento coinvolto).L:
Impostazione Limiti. Richiede di impostare un limite inferiore ed uno superiore entro i quali operare. I limiti esposti hanno influenza anche sulle operazioni di esportazione. La forma richiesta per tali limiti è YYYYMMDDhhmmss.mmm ovvero anno, mese, giorno, ore, minuti, secondi e millisecondi. La forma può essere espressa omettendo le componenti a destra quindi sono accettate tutte le forme YYYY, YYYYMM, YYYYMMDD... e così via sino alla forma completa. Viene quindi compiuto un posizionamento nei record del registro maggiore o ugale al limite inferiore impostato purché minore o uguale al limite superiore impostato.D:
Dettagli. Quando si visualizza una registrazione che interessa una modifica o una cancellazione di documenti è possibile accedere ai dettagli ovvero visualizzare la copia precedente del documento che viene salvata nel registro. Per mezzo di questa registrazione è quindi possibile compiere una sorta di roll back manuale dei documenti.S:
Salva dettagli. Nelle stesse condizioni di cui alla voce predente, oltre alla semplice visualizzazione dei dettagli è possibile salvarli su file per un più semplice utilizzo. Il comando propone il nome di un file temporaneo ove scrivere i dettagli, sulla base della data ed ora dell'operazione e procede, se diponibili, al loro salvataggio in tale file.X:
Uscita. Termina l'esecuzione del programma.Nella precedente sezione s'è discusso dei comandi disponibli nel modulo xreg. Ora vediamo come si presenta, ad esempio, l'output del comando.
L'operazione di inserimento documento, codificata con il codice '2', si presenta in forma sintetica, come segue...
20050111162743.000,hwadmin,127.0.0.1,2,c:\xw\db\cbl\cbl,1,1
...mentre la sua forma verbosa corrisponde a...
Time: 20050111162743.000 User: hwadmin IpAddress: 127.0.0.1 Op: Ins Doc (2) ArcName: c:\xw\db\cbl\cbl Num1: 1 Num2: 1
...che vuol dire la stessa identica cosa. Nella fattispecie questa registrazione ci dice che il giorno 11 gennaio 2005 alle ore 16:27:43 e 000 millisecondi l'utente hwadmin (quindi presumibilmente una procedura automatica quale quella offerta da libxwwd.dll (Vds.)) ha inserito il documento fisico 1 nell'archivio c:[.stat.xml].
Qualora si trattasse di una modifica avremmo a disposizione anche i dettagli.
Può avvenire che i moduli client non riescano a dialogare correttamente con il master nel chiedere ad esso di stilare il log di Registro. Questo avviene solitamente, perché i socket disponibili (porte dette effimere) sono tutti consumati, in TIME_WAIT
o semplicemente perché in particolare Windows sembra impiegare più tempo del necessario per rendere nuovamente disponibili le porte socket effimere non più utilizzate.
Un'interessante lettura può essere il seguente documento:
http://www.ncftpd.com/ncftpd/doc/misc/ephemeral_ports.html
In particolare, per quanto riguarda Windows, l'intervento suggerito è il seguente:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
REG_DWORD
denominato MaxUserPort
assegnandogli valore decimale 65534
.REG_DWORD
denominato TcpTimedWaitDelay
assegnandogli valore decimale 30
.Torna a Indice delle voci