Strumenti Utente

Strumenti Sito


documentazione_3di_riservata:extraway_ee:index

Questa è una vecchia versione del documento!


eXtraWay Server Enterprise Edition

Getting Started

Molteplici sono gli aspetti che differenziano il server eXtraWay nella sua Enterprise Edition rispetto alla precedente versione Legacy e Community. Di seguito, cercando di dare un po' d'ordine, le informazioni utili per una prima installazione.

  • Installazione base eXtraWay Enterprise Edition.
  • Verificare le impostazioni del file xwee.ini e xwee.conf.xml
  • Insallare il Log Service come servizio.
    • Windows: xwls-0mq -install
    • Linux: da definire, va eseguito ./xwls-0mq &
  • Predisporre una cartella con copia di un archivio della version 25 del server eXtraWay Standard
  • Rimuovere il contenuto della cartella <nomearchivio>.lazy
  • Rimuovere il file <nomearchivio>.profile.xml
  • Aprire l'archivio con eXtraWay Enterprise Edition
    • A questo punto devono essere state create due nuove cartelle: <nomearchivio>.refs e <nomearchivio>.title
    • Rimuovere i file <nomearchivio>.ref, <nomearchivio>.vcb, <nomearchivio>.tit e <nomearchivio>.tip
  • Prendere visione del file xw.log. In esso si troveranno indicazioni inerenti le chiavi primarie e seriali non corrette. Nella fattispecie si avranno i seguenti messaggi
    • Primary key must be single: XML,Identificativo della chiave
    • Invalid 'non single' serial key: XML,Identificativo della chiave
  • Per tali campi si devono compiere interventi nel file <nomearchivio>.conf.xml al fine di porre il server eXtraWay Enterprise in condizione di operare nel migliore dei modi.
    • Nota per DocWay: Gli interventi nei file xdocwaydoc.conf.xml e acl.conf.xml sono relativamente semplici ad eccezione del caso di /aoo/interoperabilita/@cod_aoo e @cod_amm per i quali si deve provvedere a rimuovere questi campi dal test di univocità, impostare le chiavi in modo che sia possibile effettuare una verifica per adiacenza o concatenazione ed effettuare tale test con un trigger autoritativo.
  • Chiudere la connessione col server e riaprire l'archivio fino a quando non verranno più rilevati comportamenti non corretti nella configurazione.
  • Reindicizzare l'archivio
  • Rifare i Titoli.

Setting up

Per fare il setup di una postazione si deve.

  • Scaricare da CVS xw.3rdp.core
  • .
  • .
  • .
  • .
  • Predisporre la cartella di installazione (c:\3di.it\extraway\xwee ovvero /opt/3di.it/extraway/xwee)
  • Creare in tale cartella altre cartelle quali:
    • bin
    • conf
    • db
    • lib
    • logs
    • script1)
    • tmp2) (Linux Only).
    • wd
  • Configurare il server collocando nella cartella conf i file richiesti.
    Essi sono:
    • xwee.ini3)
    • xwee.conf.xml, la configurazione principale di eXtraWay Server Enterprise Edition.
    • xwwd.conf.xml, file di configurazione del processo di Watch Doc per mezzo del quale vengono compiute operazioni batch sugli archivi. Esse sono principalmente riferite ad importazioni di record, ma non solo e/o non necessariamente. Potremmo definirlo facoltativo, ma di fatto è una necessità.
    • log.conf.xml, configurazione di tutte le funzionalità di Logging del server.
      Esiste un capitolo apposito che tratta di quest'argomento. Potremmo definirlo facoltativo, ma di fatto è una necessità.
    • jobs.conf.xml, configurazione di batch jobs da eseguire a scadenze temporali ben precise. Facoltativo.

Oltre a questi file di configurazione trovano collocazione in questa cartella file con estensione .stp, in particolare il file italian.stp che rappresenta la stop list di default per le ricerche nei campi testuali.

Variabili Ambientali

Il Server e gli altri moduli della Piattaforma percepiscono e reagiscono all'esistenza di alcune variabili ambientali.

Variabile Comportamento
LD_LIBRARY_PATH Utilizzata in Linux per dichiarare l'ordine di esecuzione e di ricerca delle librerie dinamiche da caricare.
Viene riportata in quest'elenco solo per completezza in quanto la sua popolazione corretta viene effettuata tramite le impostazioni del file xweectl.conf.
TEMP
TMP
TMPDIR
Directory dei file temporanei. Di fatto non è previsto che almeno TMP/TEMP non siano presenti.
XW_IPC_PLG_DIR Indica la cartella ove generare i file necessari al processi di Process Life Guard. Il processo consente di verificare se un altro processo sia attualmente in vita o meno.
La funzionalità è legata alle verifiche che si effettuano su diverse risorse per sapere se una prenotazione si una di esse sia stata effettuata da un processo non più esistente e quindi se la prenotazione può essere scartata.
Nella cartella indicata viene creata una ulteriore cartella xw_ipc_plg che contiene una coppia di file (main.lck e pids.lck).

In assenza di questa dichiarazione i sistemi sfruttano, rispettivamente:
Windows: <SystemDrive>:\ProgramData\3di.it
Linux:/var/log3di.it

I file di configurazione

Come per le altre versioni del Server eXtraWay i file di configurazione dei moduli binari si trovano nella cartella conf parallela a quella degli eseguibili.

xwee.ini & xwee.conf.xml

Questi due file prendono le mosse da altri file esistenti nell'ambito standard. Si è cercato di fare “pulizia” delle voci di configurazione, unificare quanto poteva essere unificato e così via. L'obiettivo, a tendere, è quello di avere un solo file di configurazione. Per il momento il file xwee.ini rimane per la sola dichiarazione della registrazione del server e per l'elenco degli archivi a sua disposizione mentre al file xwee.conf.xml spetta il compito di fornire tutte le impostazioni. Di seguito un esempio del file.

<?xml version="1.0" encoding="utf-8"?>
<xwee>
   <conf_manager>
      <refresh_interval_ms>500</refresh_interval_ms>
      <changed_event_dispatch_kind>deepasync</changed_event_dispatch_kind>
   </conf_manager> 
   <plugins>
      <plugin clp="libxwlua.clp" required="true"/>
      <plugin clp="replicactx.clp" required="false"/>
   </plugins> 
   <master fork_wait_time_sec="30"/>
   <temporary_files dir="c:\temp" share="c:\temp">
      <booster slots="60000" slot_size="4096"/>
      <cleaner test_interval_min="10"
               file_max_age_min="60"
               file_min_age_min="5"
               file_min_free_space_ave="2"/>
   </temporary_files>
   <disk min_space_left = "20000000000"/>
   <indexing maximum_parallel_instances="4">
      <memory limit_mb="800"/>
   </indexing>
   <xreg allow_collision="true" allow_undeclared_ip="true"/>
   <debug benchmark="true"/>
   <scripting>
      <change check_time_sec="600"/>
   </scriptingxwee>

Nel dettaglio abbiamo:

XPath Valore Default
/xwee/conf_manager/Configurazione del Configuration Manager
/xwee/conf_manager/refresh_interval_msIl sistema di configurazione introdotto con il Server Enterprise Edition prevede un unico manager che provvede a fornire la configurazione a tutte le componenti della piattaforma.
La configurazione viene mantenuta in una cache e si provvede ad aggiornarla solo se si rileva un cambiamento in uno dei file di configurazione.
Quello indicato in questo parametro è il tempo, in millisecondi, che intercorre tra un test ed il successivo, test teso a verificare se la configurazione sia cambiata.
600000 ad indicare un tempo di 10'
/xwee/conf_manager/changed_event_dispatch_kindOltre al fatto che i dati di configurazione vengono aggiornati quando si rileva un cambiamento, gli utilizzatori della configurazione possono dirsi “interessati” a conoscere che questo cambiamento ha avuto luogo, per provvedere, ad esempio, ad una nuova inizializzazione.
Quando avviene un cambiamento in un file di configurazione il Configuration Manager informa tutti gli utilizzatori con una sorta di evento ed ha alcune modalità per compiere quest'azione:
- sync: ogni notifica viene inviata all'utilizzatore e si attende che lo stesso abbia completato le azioni che ritiene necessarie. In questo modo le operazioni sono sostanzialmente serializzate.
- async: viene generato un thread che compie le notifiche. Entro tale thread le notifiche sono sincrone, ma l'intera operazione non causa attesa anche se lo svolgimento è serializzato.
- deepasync: Viene creato un thread che effettuerà le notifiche e per ciascuna di esse viene creato un ulteriore thread. In questo modo le azioni di notifica sono effettivamente parallele.
deepasync
/xwee/plugins/Configurazione del Plug In
/xwee/plugins/pluginDichiara il plug-in da caricare.
/xwee/plugins/plugin/@clpNome del Classes Package da caricare.
Il file viene ricercato nella cartella plug-in presente nella cartella dei binari.
/xwee/plugins/plugin/@requiredIndica se il plug-in sia obbligatorio o meno.
Se il valore è true ed il plug-in manca o il suo caricamento fallisce, l'avvio del server non si completa.
true
/xwee/master/Configurazione del Server Master
/xwee/master/@fork_wait_timeDurante il processo di duplicazione del Server Master per la generazione di un processo figlio accade che il processo si avvii ma la notifica non pervenga al Master che l'ha generato.
Negli scenari in cui questo accade si può impostare questo valore che indica il numero massimo di secondo per i quali attendere la notifica della corretta nascita del processo figlio.
Dopo tale attesa il processo figlio, che comunque non ha dato errore in fase di creazione, si considera “teoricamente” avviato.
-1, ad indicare che il Server Master attende ad oltranza la notifica della nascita del processo figlio.
/xwee/temporary_files/Configurazione del File Temporanei
/xwee/temporary_files/@dirDirectory dei file temporanei.Se non indicata si ha un comportamento differente a seconda della piattaforma.
Su Windows si usa la cartella dei temporanei rilevata investigando le variabili ambientali TEMP, TMP e TMPDIR, un quest'ordine.
Su Linux si assume per definizione la cartella tmp parallela a quella dei file binari.
In ambo i casi, in tale cartella viene generata un'ulteriore cartella denominata hwtemp e tutti i temporanei di eXtraWay vengono creati in essa.
/xwee/temporary_files/@shareDirectory dei file condivisi.
Diversi processi, primo tra tutti l'esportazione dei dati, si avvalgfono di un file collocato nella cartella dei file temporanei. In seguito, con modalità differenti, si procede all'acquisizione di tale file.
Indicando questo valore si dichiara una speciale cartella in cui troveranno collocazione questi file e la cartella potrà essere condivisa in altre maniere con i client così da semplificare l'accesso a tali contenuti, specie se di dimensioni importanti
Se non indicata tale cartella è la stessa dei temporanei.
/xwee/temporary_files/boosterConfigurazione Avanata del File Temporanei
/xwee/temporary_files/booster/@slotsNumero massimo di file di selezione contemporaneamente disponibili a tutto il parco utenti.60000.
/xwee/temporary_files/booster/@slot_sizeDimensione entro la quale una selezione viene mantenuta in memoria condivisa e non viene riversata su file per rendere più veloce il suo utilizzo.
Il server impegnerà un'area di memoria condivisa4) pari al prodotto di questa dimensione ed il numero di slot di cui al parametro precedente.
4096.
/xwee/temporary_files/cleanerConfigurazione della Rimozione del File Temporanei
/xwee/temporary_files/cleaner/@test_interval_minNumero di minuti che intercorre tra un test ed il successivo.5.
/xwee/temporary_files/cleaner/@file_max_age_minEtà massima in minuti di ciascun file di selezione.
Se un file di selezione risulta più vecchio di tale tempo è candidato alla rimozione5).
1440, pari a 12 ore.
/xwee/temporary_files/cleaner/@file_min_age_minQuando il numero di file presenti supera il numero massimo ammesso, si procede alla rimozione degli stessi a dispetto della loro effettiva età, in sostanza si procede a rimuovere man mano o più vetusti per garantire comunque una certa quantità di “slot” disponibili.
La cancellazione, comunque sia, viene impedita per selezioni più giovani del tempo qui indicato, in minuti.
10.
/xwee/temporary_files/cleaner/@file_min_free_space_aveUn'altra delle ragioni per rimuovere un maggior numero di file temporanei va ricercata nell'occupazione del disco candidato a conservare i file temporanei.
Poiché la saturazione di tale disco significherebbe l'interruzione del servizio, si indica una percentuale di disco da mantenere comunque libera.
Tale percentuale concorre alla riduzione dell'età delle selezioni da rimuovere tra file_max_age_min e file_min_age_min.
5.
/xwee/diskConfigurazione dell'utilizzo dei Dischi
/xwee/disk/@min_space_leftAl fine di evitare la saturazione dei dischi ove sono collocati gli archivi il server verifica di quando in quando che sul disco ove si sta operando ci sia ancora un margine di spazio libero e quando tale margine viene superato inizia a produrre una condizione d'errore per inibire i comandi.
In questo modo l'applicazione evidenzia un problema che però non ha impatti sulla salute dell'archivio e da modo ai sistemisti di intervenire per garantire spazio sufficiente.
1073741824, ovvero 1 GB.
La misura va espressa in bytes.
/xwee/indexingConfigurazione dell'Indicizzazione (Off-Line)
/xwee/indexing maximum_parallel_instancesNumero massimo di cpu da utilizzare per l'indicizzazione off-line degli archivi.
Il valore dei dafault è 1. Se si imposta un valore positivo si utilizzeranno il 75%6) delle CPU disponibili sino ad un massimo di quelle indicate. Con un valore negativo si indica di usare il 75% delle CUP disponibili senza alcun limite massimo.
/xwee/indexing/memory limit_mbSoglia massima della memoria, in MB, utilizzata dal processo per l'indicizzazione off-line di un archivio.512, ovvero 1/2 GB.
/xwee/xregConfigurazione del Registro (Audit Log)
/xwee/xreg/@allow_collisionSe impostato ad un valore vero indica che lo stesso utente è autorizzato ad agire contemporaneamente da IP Address differenti.false ad indicare che l'accesso concorrente è vietato.
/xwee/xreg/@allow_undeclared_ipSe impostato ad un valore vero indica che l'accesso dell'utente viene concesso anche se esso nasconde il proprio IP address di provenienza.false ad indicare che l'accesso offuscato è vietato.
/xwee/debugConfigurazione di Debug
/xwee/debug/@benchmarkSe impostato ad un valore vero attiva la registrazione di log di per la valutazione delle prestazioni dei singoli comandi.false ad indicare che la stesura del log di benchmark è disabilitata.
/xwee/scriptingConfigurazione degli Script7)
/xwee/scripting/changeConfigurazione dei processi di verifica del cambiamento degli script
/xwee/scripting/change/@check_time_secLunghezza in secondi dell'intervallo tra un controllo e l'altro dell'attuale cambiamento degli script.-1 ad indicare che il controllo è disabilitato. Il valore 0 causa il controllo ad ogni esecuzione dello script, altri valori > 0 indicano il tempo di latenza in secondi tra un test ed il successivo.

Il file xwee.ini somiglia molto a quello della precedente versione ma vengono cambiate alcune denominazioni.

[eXtraWay EE]
SerialNo=02602611200
Config=69920-540021024 175775858-807014914
User=Roberto Tirabassi
Company=3D Informatica
 
[Archives]
test=c:\xwee\db\test\test.stat
acl=C:\xwee\db\dcw\acl\acl.stat
xdocwaydoc=C:\xwee\db\dcw\xdocwaydoc\xdocwaydoc.stat

La sezione eXtraWay EE viene utilizzata per salvare i parametri della registrazione, grazie alla quale il server è abilitato ad utilizzare archivi di grandi dimensioni e/o comunque a fare operazioni modificanti.
La sezione Archives elenca gli accoppiamenti tra nome logico e nome fisico dell'archivio.
Si ricorda in proposito che un archivio il cui nome logico non appaia in quest'elenco viene cercato automaticamente dal server componendo il seguente percorso…

<directory di installazione>/db/<nome logico>/<nome logico>.stat

…dove la directory di installazione è quella in cui si trovano tutte le directory principali (bin, conf, logs, wd etc. etc.)

jobs.conf.xml

La configurazione delle operazioni ripetibili

La configurazione delle operazioni ripetibili si effettua per mezzo del file jobs.conf.xml collocato nella cartella conf ove si trovano tutti i file di configurazione.
Di seguito un esempio del suo contenuto.

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- DOCTYPE xwwd_cfg SYSTEM "http://www.3di.it/extraway/jobs_20131015.dtd" -->
<jobs_cfg>
   <!-- Jobs that are done once, on the server Master start -->
   <job arc="sestra" when="once" val="" label="The job that is done at start">
      <cmd stored=".stored.doAgent">
         <parm1>UNO</parm1>
      </cmd>
   </job>
   <!-- Jobs that are done every day at a specific time
      The 'val' value is "HHMM:xxxxxxx" or "HHMM:*" or "HHMM"
      Where HH is the hour of the day, MM is the minute in that hour
      The following part, if present, maps the day of the week where 0 is sunday, 1 is monday
      and so on up to 6 that is saturday.
      A value '1' means "in that day", while any other value menas "jump that day". 
      Wild card '*' means every day of the week and not declared days are "on".
      Sample: Every day "1111111", "*", "111" (the last 4 days ar on since obmitted)
      Sample: "1000001" means during weekend, "0111110" means, during working week
      Sample: "0000011" and "00000" both means on friday and saturday
      The hour can be.
      Skipped, means midnight
      1 single digit: at that hour, between 0 and 9, minutes 00.
      2 digits: at that hour, between 0 and 23
      4 or more digits: at the hour (first 2 digits) and minutes (last 2 digits)
      Behaviour on 3 digit form is undefinded
      So "1:*" is everyday of the week ad 1am
   -->
   <job arc="niterfront" when="at" val="1200:*" label="every day at 12:00">
      <cmd stored=".stored.doTimeJob">
         <parm1>UNO</parm1>
      </cmd>
   </job>
   <!-- Jobs that are done repeatedly each time unit
      The 'val' value is a number that "can be" followed by a letter.
      For no letter or letter [m|M] the units are minutes.
      For letter [h|H] the units are hours
      For letter [d|D] the units are days
      For letter [w|W] the units are weeks
   -->
   <job arc="niterfront" when="every" val="10m" label="each 10 minutes">
      <cmd stored=".stored.doCycleJob">
         <parm1>UNO</parm1>
      </cmd>
   </job>
</jobs_cfg>

Seppure l'esempio è autoesplicativo, elenchiamo i casi e la loro configurazione.

Tipologia Azione Descrizione
once Azione che viene svolta una tanum all'avvio del processo master.
Solitamente questa formula si sceglie per avviare processi che sono dei veri e propri agent che devono attendere il verificarsi di condizioni particolari per poi attivarsi e svolgere un qualche compito.
at Azioni da svolgersi ripetitivamente ad una certa ora del giorno in uno o più dei giorni della settimana.
Si presta per attività di controllo, verifica, attività propedeutiche ad esempio al backup o ancora per azioni quali ma rimozione di documenti obsoleti, il trasferimento ad altro storage di allegati non utilizzati e così via.
Parametro temporale L'azione at si avvale di un parametro temporale (attributo val) che indica quando l'azione debba aver luogo.
Esso si compone di una dichiarazione di ore e minuti, in 4 digit, seguita eventualmente dal carattere ':' e da una sequenza di valori (0 o 1) che indica in quale giorno della settimana, a partire da domenica, l'azione debba essere compiuta.
E' ammesso indicare l'ora con 1, 2 o 4 digit: nei primi due casi si assume l'ora pura e semplice assegnando '00' al valore dei minuti.
Per i giorni della settimana si può indicare un asterisco per comprenderli tutti, altrimenti uno o più valori (max 7) tra 0 e 1. Il primo giorno indicato è domenica e così via. I giorni non indicati si considerano attivi per definizione.
every Azioni da svolgersi ripetitivamente ad intervalli regolari e non ad un orario specifico.
In questo modo si può svolgere, ad esempio ogni ora, una qualche attività di verifica o altro.
Parametro temporale L'azione every si avvale di un parametro temporale (attributo val) che indica quanto tempo intercorra tra un'esecuzione e la successiva.
Esso si compone di un valore numerico eventualmente seguito da un carattere atto ad indicare la natura dell'unità numerica.
Omettendo la lettera, ovvero indicando m o M, il numero indica dei minuti.
L'uso di h o H indica ore, l'uso d o D indica giorni e l'uso di w o W indica settimane.
Non sono previsti intervalli più ampi.

Ogni attività viene correlata ad un archivio, eventualmente fittizio o non utilizzato dal procedimento e finalizzato esclusivamente a dare l'avvio all'attività. Può inoltre disporre di una label che verrà usata nei logs per dare evidenza dell'avvio delle operazioni richieste e pianificate.

All'interno della configurazione dell'azione, poi, la richiesta da svolgere.
Attualmente è possibile evocare un Plug-In o una Stored Procedure con i parametri desiderati, in futuro si potranno svolgere anche altre tipologie di azioni.

security.conf.xml

La configurazione delle autenticazioni ed autorizzazioni

L'autenticazione e quindi la facoltà di accedere al sistema eXtraWay sono processi normalmente regolati sul fronte applicativo. Nel tempo applicativa è stato anche l'amministrazione dei diritti di cui l'utente gode, ma queste due condizioni possono altresì essere regolate direttamente dal server.
Per quanto concerne l'autenticazione, si può far ricorso ad un apposito provider la cui configurazione è attualmente molto elemenare.

<?xml version="1.0"?>
<config>
   <auth_provider class="xw::secty::authProviderDummy"/>
</config>

In sostanza, il file di configurazione inerente l'autenticazione si limita ad indicare quale classe vada caricata da apposito plug-in del server per regolare tali accessi. In condizioni standard, l'accesso è sempre garantito a qualsiasi utente.
In seguito entra in gioco il processo di autorizzazione, vale a dire l'accoppiamento a ciascun utente di una batteria di diritti fruibili per ciascuna risorsa. Il concetto di risorsa è volutamente ampio e si estende potenzialmente un po' a qualsiasi aspetto della piattaforma eXtraWay. In prima istanza diremo che la principale tipologia di risorsa è l'archivio (o Data Base).

Ciascuna risorsa è responsabile delle impostazioni della propria autorizzazione, per le risorse archivio ecco un esempio di configurazione.

<!-- DOCTYPE xway_cfg SYSTEM "http://www.3di.it/extraway/xway_20070219.dtd" -->
<xway_cfg cfg_ver="001.000.001">
   ...
   <acl_provider class="xw::secty::aclProviderLcps" url="http://www.foo.bar:8080/services/User"/>
   ...
</xway_cfg>
 
In questo esempio il file di configurazione di un archivio è corredato dalle impostazioni necessarie per identificare un ''acl_provider'' che indica la casse del plug-in da utilizzare. La configurazione è poi corredata ad impostazioni proprie che variano da //provider// a //provider//.
 
In assenza di un specifico ACL provider, alla risorsa vengono garantiti i diritti standard.
 
==== storage.conf.xml ====
** La configurazione delle risorse di storage **
 
Queste risorse sono utilizzate in primo luogo per effettuare cache di informazioni utili e condivise tra le diverse istanze di server eXtraWay EE.\\ Come gli altri, anche questo file si colloca nella cartella ''conf''.\\ 
Di seguito un esempio del suo contenuto.\\ 
 
<code xml>
<?xml version="1.0" encoding="iso-8859-1"?>
<config>
   <caches> <!-- Configurazione di tutte le cache -->
      <cache id="usersData" persistor_class="xw::strg::persistor_lmdb" expiry_secs="1800" persistor_init="C:/ProgramData/3di.it/usersData"/>
   </caches>
</config>

Vediamo quali sono le principali voci di configurazione.

XPath Descrizione
/config/caches/cache/@id Identificativo univoco della cache.
Può esistere uno ed un solo elemento con un siffatto id.
Ad esclusione di cache applicative per le quali c'è libertà espressiva, ci sono alcuni id riservati.
- userData: cache dei dati utente, in particolare diritti ed affini.
/config/caches/cache/@persistor_class Classe da caricare da uno dei plug-in del server eXtraWay per assolvere al compito assegnato, ovvero fare storage dei dati conservati.
/config/caches/cache/@persistor_init Una stringa contenente informazioni di inizializzazione del persistor prescelto. IL suo contenuto è libero e dipende dal persistor anche se nell'esempio si indica esplicitamente una cartella.
/config/caches/cache/@expiry_secs Numero di secondi di vita utile di ciascun dato raccolto nella cache. In assenza di una specifica dichiarazione la cache dura 24 ore.

A seconda del persistor sono inoltre possibili altri parametri di configurazione che dipendono direttamente da lui e verranno indicati separatamenteo.

replica.conf.xml

Il Server Enterprise può essere configurato per replicare un archivio su una o più destinazioni. Questo può prestarsi a diversi scopi, dal Disaster Recovery alla pubblicazione di una porzione di archivio da un Back Office ad un Front Office e cose simili, dipendentemente dalle modalità con le quali viene effettuata la replica.

Condizioni per effettuare la replica

In quali condizioni il Server eXtraWay Enterprise decide di replicare un archivio?
L'operazione non viene effettuata su tutti gli archivi ma solo su quelli per i quali viene impostata una particolare configurazione:

   ...
   <profile type="arc.replica" value="on"/>
   ...

Una volta poste le basi perché la replica venga compiuta, essa in cosa consiste?
Quando un archivio è opportunamente configurato, il server tiene traccia di tutte le operazioni considerate “modificanti”, quindi inserimenti, modifiche, cancellazioni ed applicazione di nuovi allegati. Ciascuna di tali operazioni contribuisce alla creazione di una sequenza di comandi che viene conservata perché possa essere consumata da un apposito servizio che, sulla base del file di configurazione di seguito descritto, decide verso quali destinazioni replicare i contenuti ed in che modo farlo.

Il servizio di Replica - xweereplica

Il servizio8) di replica utilizza il file di configurazione xweereplica.conf.xml, collocato come tutti gli altri file di configurazione nella cartella conf.

<?xml version="1.0"?>
<config>
	<sinks>
		<!-- Spreaders Sinks -->
		<sink name="dcwsud-Sink" class="xw::replica::xwSink" destination="xw://hwadmin@10.17.61.65:5859/xequisud"/>
		<sink name="xdocwaydoc-Sink" class="xw::replica::xwSink" destination="xw://hwadmin@10.17.61.65:5859/dcwcopy"/>
		<sink name="acl-Sink" class="xw::replica::sinkDummy"/>
		<sink name="test-Sink" class="xw::replica::xwSink" destination="xw://hwadmin@10.17.61.65:5859/test"/>
	</sinks>
 
 
	<spreaders>
      <!-- Replica Spreaders -->
      <spreader name="xdocwaydoc">
			<source name="c:\xwee\db\dcw\xdocwaydoc\xdocwaydoc"/>
			<sink name="xdocwaydoc-Sink"/>
      </spreader>
      <spreader name="dcwsud">
			<source name="C:\xwee\db\dcw-equi\xdocwaydoc-equisud\xdocwaydoc"/>
			<sink name="dcwsud-Sink"/>
      </spreader>
		<spreader name="acl" >
			<source name="c:\xwee\db\dcw\acl\acl.stat"/>
			<sink name="acl-Sink"/>
		</spreader> 
		<spreader name="test" >
			<source name="c:\xwee\db\test\test.stat"/>
			<sink name="test-Sink"/>
		</spreader> 
 
	</spreaders>	
 
   <replicas>
      <!--
      <spreader name="xdocwaydoc"/>
      <spreader name="acl"/>
      -->
      <spreader name="test"/>
      <spreader name="dcwsud"/>
   </replicas>
</config>

Nel dettaglio abbiamo:

XPath Valore Default
/config/replicas/Configurazione delle Repliche da effettuare.
/config/replicas/spreader/@nameCon questa voce si dichiara un'ID per una delle repliche da compere, in sostanza un archivio che si desidera tenere d'occhio ed al quale applicare i processi di replicaNon esiste alcun valore di default.
Se un archivio non è opportunamente dichiarato non si compirà alcuna replica.
/xwee/spreaders/Configurazione dei processi di Propagazione
/xwee/spreaders/spreaderDichiara il singolo Propagatore.
/xwee/spreaders/spreader/@nameNome del Propagatore. Deve corrispondere a quello dichiarato nella sezione delle repliche di cui al paragrafo precedente.
/xwee/spreaders/spreader/source/@nameNome completo dell'archivio che si intende propagare. E' la fonte dati e ne va dichiarata solo una
/xwee/spreaders/spreader/sink/@nameID della destinazione.
Per ciascuna fonte originaria (source) si possono indicare più destinazioni.
/xwee/sinks/Configurazione delle Destinazioni
/xwee/sinks/sink/@nameID della destinazione
/xwee/sinks/sink/@classNome della classe che va caricata da un plug-in per effettuare la replica verso la destinazione desiderata.
Ciascuna classe applicherà le proprie logiche e stabilirà le modalità per mezzo delle quali effettuare la replica.
/xwee/sinks/sink/@destinatioLa vera URL che dichiara la destinazione.
La modalità con la quale si compone questa URL viene descritta in seguito.

La composizione della URL

Il processo di replica distribuisce su una o più destinazioni le operazioni modificanti. Per identificare una destinazione si fa uso di una URL avente la seguente composizione:

protocol://[user[:pwd@]]host[:port]/extra data

  • Componenti obbligatorie
    • protocol: Protocollo di comunicazione. Di fatto identifica la tipologia di strumento con il quale dialogare.
      Ne sono stati previsti diversi e l'elenco può crescere.
      Attualmente sono implementati solo quelli verso altri server eXtraWay:
      • xwee: Comunicazione verso un altro Server eXtraWay Enterprise
      • xw9): Comunicazione verso un Server eXtraWay Standard
      • mysql, sqlite, oracle: valori previsti ma attualmente non implementati
    • host: Dal punto di vista squisitamente teorico anche questo valore potrebbe essere omesso sottintendendo lo stesso host ove è collocato il servizio di replica, ma renderebbe incompleta la URL.
  • Componenti normalmente presenti
    • extra data: Informazioni supplementari sfruttate dal Propagatore applicato ad un determinato protocollo per potersi connettere alla destinazione richiesta.
  • Componenti facoltative
    • port: Porta socket cui connettere il protocollo indicato qualora non fosse equivalente allo standard.
    • user: Utente con il quale effettuare la connessione qualora necessario o differente dal default.
    • pwd: Password10) utilizzata dall'utente di cui al punto precedente qualora necessaria per effettuare il collegamento.

Politica di distribuzione

Documentazione in allestimento

1)
Vedremo in seguito come viene popolata
2)
in linux si è soliti collocare i temporanei qui, per Windows non è richiesta in quanto solitamente si utilizza la directory di sistema
3)
Anche vuoto ma presente, conterrà l'elenco degli archivi disponibili e le impostazioni di registrazione del server
4)
Memory Mapped File
5)
La rimozione non avviene immediatamente per dare il tempo al server di confermare che un certo file di selezione è ancora utile senza dover compiere quest'azione ad ogni accesso al file.
6)
calcolato per difetto
7)
Attualmente solo LUA
8)
Servizio in Windows, demone in Linux
9)
La distinzione tra Enterprise e Standard è stata concepita pensando che in sede di implementazione o in realizzazioni future possa essere opportuno agire in modi differenti nei due casi e/o che alcune operazioni possano non essere applicate ai server più datati. Attualmente l'implementazione è unica e la distinzione solo teorica.
10)
Attualmente questo dato viene conservato in chiaro
/data/attic/documentazione_3di_riservata/extraway_ee/index.1470038143.txt.gz · Ultima modifica: 2017/09/08 10:59 (modifica esterna)