Questo post chiarisce l'origine di quanto esposto nel mio precedente thread "problemi al login" del 3/2/2013, cui fare riferimento per i dettagli della mia configurazione e segnala un problema di configurazione (e forse di gestione delle eccezioni) in cmdbuild. spero serva a migliorare sempre più il prodotto e il suo utilizzo.
Il problema descritto nel post che ho richiamato è da addebitare con certezza alla presenza di un firewall tra il server dove è ospitato tomcat6 e quello su cui risiede Postgres. Questa situazione non viene gestita dallo stack tomcat6/cmdbuild.
La traccia mi è stata data dalla presenza di questo diagnostico in cmdbuild.log
** org.postgresql.util.PSQLException: An I/O error occured while sending to the backend **
Tutti i riferimenti su Internet, relativamente a questo diagnostico, indicano la causa in una perdita di connessione tra il driver jdbc e il DB (indipendentemente da tomcat) e infatti nel mio caso il firewall c'è.
La soluzione, secondo i post, è quella di abbassare il keepalive nel driver dello stack ipv4 di sistema (nel mio caso linux ubuntu con Kernel 2.6.32-42 a 32 bit) ma anche questa manovra non ha eliminato, nel caso in questione, la perdita di connessione (prolunga solo di qualche ora tale evento).
Come controprova ho eseguito una installazione della stessa 2.0.3 su un server ubuntu con Kernel 3.2.0-23, collocato nella stessa Intranet del DB e senza introdurre alcun keepalive, e il fenomeno in questione è scomparso.
Pur non essendo imputabile direttamente all'applicativo cmdbuild, credo che sia opportuno introdurre un warning nelle release notes del prodotto, in modo da avvisare gli utilizzatori di non collocare FW tra AS e DB.
Sottolineo tuttavia che ho altre due applicazioni (una in ambiente ruby on rail, l'altra pure Java) che fanno uso dello stesso DB Postgres attraverso lo stesso FW , le quali non presentano questo inconveniente: non sono un esperto Java ma forse è possibile gestire l'eccezione del driver jdbc, per ripristinare una nuova connessione; o almeno le altre due applicazioni (redmine e openmeetings) impiegano qualche soluzione visto che riescono a evitare questo problema.
Niccolò Avico