sabato 19 settembre 2009

..:: Mantis e Oracle ::..

Strano a dirsi ma, ogni tanto, su questo blog parlo anche di informatica: questo post lo dedico quindi alla mia esperienza con Mantis Bug Tracker.
Mantis è, in poche parole, un portale che permette di censire e gestire le segnalazioni di anomalie relative ai progetti software (ma non necessariamente...). E' scritto in php, si basa su un database MySql ed è gratis e open source. Di conseguenza è altamente personalizzabile e adattabile a molteplici esigenze.
Io l'avevo utilizzato sporadicamente in Infracom IT, per alcuni progetti, mentre ora in N-aitec sta divenendo lo strumento aziendale per la gestione delle segnalazioni dei clienti, contribuendo alla qualità dei processi.
Nel corso degli ultimi tempi ho quindi iniziato a prenderci confidenza e ad imparare sia come utilizzarlo, sia come configurarlo. Essendo praticamente l'amministratore di questo strumento.
A mio avviso è molto completo e offre molto, pur essendo gratuito. Che non è certo un difetto, sia chiaro. Oltre a poter censire le segnalazioni, si ha un valido strumento per tener traccia di nuovi sviluppi, per ottenere riscontri delle tempistiche e delle attività sui vari progetti. La possibilità di creare report e grafici (con jpgraph) aiuta poi anche in fase di rendicontazione e verifica mentre la comunicazione tra le risorse coinvolte viene coadiuvata dall'invio automatico di mail.
In aggiunta a ciò esistono anche dei plugin che permettono di potenziare le capacità dello strumento. Io mi ero appoggiato a quanto trovato qui, dove ho anche contribuito con alcune traduzioni per l'italiano, però migrando dalla versione 1.1.6 alla 1.1.8 ho perduto qualcosa...sigh sigh...
Comunque, un'altra caratteristica positiva di Mantis è che esiste anche il supporto sperimentale per Oracle, ovvero per far funzionare il portale su db Oracle rispetto a MySql (trovate maggiori indicazioni qui).
A tal riguardo, ho speso alcune giornate a verificare ciò e approfitto di questo post per trasmettere la mia personale esperienza a tutti coloro che ne fossero interessati.
Seppur dichiarato e presente, trovo che il supporto per Oracle sia ancora agli inizi e che, soprattutto, il portale non sia stato pensato per essere 100% compatibile con database diversi da MySql.
In primis, farlo partire non è stato così immediato. Io avevo un ambiente Xampp su macchina Windows XP. In questo contesto è stato necessario utilizzare un db oracle "almeno" 10g. Se poi sulla macchina non c'è un client Oracle (almeno10g!!!), ricordatevi che è necessario premunirsi di apposite librerie. Fortunatamente l'Oracle Instant Client aiuta, a patto di settare correttamente le variabili d'ambienti in Windows: ORA_HOME o PATH, in modo che leggano "per prima" la cartella in cui si trova la OCI.dll, e la NLS_LANG, impostando AMERICAN.AMERICA.WE8DEC.
Fatto questo il sistema si lascia "più o meno installare", nel senso che comunque crea tabelle con tipi di dato che Oracle accetta ma che sarebbe meglio cambiare. Ad esempio Decimal al posto di Number, Varchar anzichè Varchar2...
A parte questo, non tutte le query previste in Mantis funzionano con Oracle, in particolare per via della parola "AS" usata per gli alias di tabella: Oracle non li vuole (della serie select colonna from tabella t e non select colonna from tabella as t)!!!
Per cui preparatevi a simpatici errori che compariranno qua e là, quando meno ve l'aspettate (A: funziona? L:Si, ho provato le funzioni base A: e se cancello un'anomalia? L: dovrebbe funzionare...uhm...in effetti...).
Probabilmente le funzioni che effettuano il parsing dei testi (in core/database_api.php e affini) non sono tarate per Oracle e per questo, quando si tenta l'inserimento di testi con apicetti ( cioè ' ), si ottengono errori visto che il db li interpreta come separatori di campo. E non parliamo di allegare file alle segnalazioni: sarà che i campi BLOB sono un po' ostici, però...
Altra difficoltà incontrata ha riguardato l'esportazione dei dati dal database MySql a quello Oracle, probabilmente dovuta alla mia scarsa esperienza. Su consiglio del DBA (di cui non faccio il nome per timore reverenziale :-P) abbiamo provato la mistica via dei csv, ovvero esportazione da tabella MySql verso file csv e poi importazione in Oracle con SqlLoader. E' andata abbastanza bene...anche se i numerosi campi CLOB hanno complicato il processo. E non poco! Ho infatti dovuto ricorrere al famigerato e arcaico metodo "ConLeMan" per sistemare i file csv, eliminando i vari " e facendo sì che tutti i record fossero su di una riga. Ugualmente ho dovuto nominare invano il nome del Signore. Più volte.
E non sono comunque riuscito ad importare tutto alla perfezione.
Ergo, se dovete tentare anche voi a far funzionare Mantis con Oracle, consiglio di risparmiarvi la parte della migrazione e di partire ex novo, con database vergine.
Al contempo, per l'esperienza mia personale, trovo che i tempi non siano ancora maturi: meglio rimanere su MySQL.
Spero comunque che, nelle prossime versioni, questo aspetto di Mantis venga approfondito e migliorato: potrebbe essere un'ulteriore caratteristica che agevoli la sua diffusione. Anche se, a quel che sembra, già ora ha una discreta nomea nel web (e non, mi auguro...) e una buona partecipazione alla community e al forum.

Nessun commento: