Modifiche sul programma DEVIL

Nella fase di inizializzazione viene aperta la connessione TCP con il server Memcached e il connection ID viene memorizzato nella nuova globale:

/u2/dcs/source_linux/common/memcached/GMemcached.vi

Inoltre viene inizializzato il VI

/u2/dcs/source_linux/common/memcached/checkMcConn.vi

il che comporta l'azzeramento di un suo shift-register interno che tiene conto del numero di errori di connessione al server Memcached.

(warning) L'IP del server Memcached ed il numero della porta sono costanti di programma.
(warning) In caso di errore viene visualizzata una dialog-box bloccante.
(warning) Manca l'inoltro di errore sul server MySQL

Nella fase di run viene chiamato in modalità slow poll il VI checkMcConn.vi che verifica lo stato della connessione con il server.

  • se la connessione e' funzionante: il VI ritorna senza alcun effetto

  • se c'e' un errore di connessione: il VI incrementa il proprio contatore interno di errore e tenta di riaprirla.

(warning) Al terzo errore viene visualizzata una dialog-box bloccante.
(warning) Manca l'inoltro di errore sul server MySQL

Nella fase di close viene chiusa la connessione TCP con il server Memcached.

Modifiche sui VI GXXXLoader.vi

Il VI GXXXLoader, originariamente così:

si modifica invertendo l'ordine dei frames di inizializzazione delle globali e del VI unpackDBData.2.0.vi.
(warning) Inoltre si deve collegare l'indice "i" del loop di caricamento degli elementi all'input elemID delle globali.

Il VI GXXXLoader — dopo le modifiche — si presenta così:

Modifiche sulle globali GXXXSta_eth e GXXXDyn_eth.vi

(warning) Manca l'inoltro di errore sul server MySQL

Salvare le GXXXSta_eth.vi e GXXXDyn_eth.vi esistenti con l'estensione …_orig.vi e procedere alle seguenti modifiche:

Cambiare l'icona della globale (l'esempio è per la GICEDyn_eth.vi)

Il frame init, originariamente così:

si modifica introducendo un nuovo shift register dove si carica il vettore di chiavi che corrispondono agli elementi nella memoria di Memcached. Le chiavi si costruisconono come:

  • <elementName>_STA per la globale statica

  • <elementName>_DYN per la globale dinamica

(warning) Fare attenzione a mettere la stringa "_STA" o "_DYN" coerente con il tipo di globale che si stà modificando.
Per recuperare i nomi degli elementi appartenenti alla classe XXX specifica della globale, utilizzare il VI

/u2/dcs/source_linux/globas/selectGElemList3-classID_eth.vi

(warning) Fare attenzione a mettere il giusto classID in ingresso al VI.

Il frame init — dopo le modifiche — si presenta così:

Il frame append, originariamente così:

si modifica:

  • recuperando la i-esima chiave (dell'elemento corrente)

  • serializzando il record corrispondente per mezzo dell'operatore flatten to string

  • scrivendo il dato serializzato su Memcached, utilizzando il VI

Il frame append — dopo le modifiche — si presenta così:

Il frame write, originariamente così:

si modifica in maniera identica al frame append.

Il frame write — dopo le modifiche — si presenta così:

Il frame read rimane immodificato (l'unica cosa da fare è connettere lo shift register del vettore di chiavi).

  • No labels