Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


Fly Me To The Moon

Ritorniamo a parlare del famosissimo CMS rubato prodotto da $figliillegittimiecceteraeccetera di cui avevo parlato un po' di tempo fa'.

Dopo un burrascoso inizio, pareva che SL1/SL2 avessero finalmente contattato chi il cms lo ha scritto e stessero "verificando" il perche' ed il percome delle cose e della abominevole lentezza. Erano anche riusciti a fornire un "manuale" (le cui pagine iniziali e finali erano stranamente mancanti... forse perche' su tali pagine appariva in chiare lettere il nome di chi il CMS in effetti lo produce?) in cui venivano riportati i vari parametri di configurazione. Riportati, non spiegati badaben.

Comunque, SL (quello di $branco) aveva lasciato capire che preferiva che IO dessi un'occhiata alla cosa, in modo completamente indipendentemente.

Dopo un po' di ravanamenti ed una rapida rinfrescata alla mia memoria sul come debuggare applicazioni in Java, ho notato un certo trend sospetto. L'applicazione utilizza (ovviamente) un sistema di connection pooling per parlare con il suo database. Database che in effetti e' diviso in 4, in quanto uno e' quello contenente i dati del sito, uno e' quello contenente i parametri di configurazione, uno contiene gli utenti ed il quarto non si capisce bene che dovrebbe fare.

Perche' 4 e non uno solo? Non lo so.

Comunque, l'applicazione e' configurata in modo da avere un totale di 10 connessioni sempre attive con un massimo di 20 connessioni. Apparentemente tra le 10 e le 11 e tra le 13 e le 14, orari che, maguardaunpo', corrispondono ai momenti in cui il sito e' piu' usato, le connessioni arrivano a tappo ed il "tempo di attesa" per ottenere una nuova connessione oscilla tra i 20 ed i 40 secondi.

Ora, forse io sono un po' semplicistico, ma qualche cosa mi dice che 20 connessioni sono troppo poche, e magari qualche cosa per sveltire le operazioni potrebbe essere fatto semplicemente aumentando il numero di connessioni disponibili e magari cercando di capire perche' l'applicazione ci mette 40 secondi per ottenere una nuova connessione?

Dopo un altro po' di ravanamenti scovo dove accidenti questo coso genera i suoi log e noto un bel log che cresce come un maiale alla fiera annuale della carota gigante. Ogni 20~30 secondi circa una linea come

Error 500: java.lang.reflect.InvocationTargetException : Error opening socket to server x on port 50000 with message : null ConnectionCorrelator: nullDSRA0010E: SQL State = null, Error Code = -4,499DSRA0010E: SQL State = null, Error Code = -4,499

viene inserita nel log. Due linee al minuto... Non so voi, ma a me questo mi puzza di baco nel codice.

IO - ...quindi questa roba appare ogni 30 secondi circa.
SL1 - Hummm... interessante... ma non dovrebbe essere un problema.
IO - ...fammi capi', tu hai una applicazione che ogni 30 secondi ti sbatte un messaggio che inizia con "ERROR" in un file di log e sostieni che non dovrebbe essere un problema? Sopratutto quando tale applicazione e' lenta come la fame?
SL1 - Ma l'applicazione funziona perfettamente, quindi non dovrebbe essere un problema.
IO - Tu non hai la piu' pallida idea di che roba signfica sta' cosa eh?
SL - Vabbe', ma comunque, che cosa si potrebbe fare per risolvere il problema di lentezza?
IO - Quello che penso io, ma ovviamente non sapendo come l'applicazione funziona e' un po' un tiro al buio, e' che quando tutte le connessioni al database sono in uso i vari processi aspettano che una delle connessioni ritorni disponibile e continuano ad aspettare in coda finche' non va' in timeout. Dato che SL1 qui' dice che l'avere un messaggio di "Error" ogni 30 secondi non e' un problema si potrebbe per prima cosa ridurre il quantitativo di roba scritto nel log e per seconda cosa l'aumentare il numero di connessioni presenti nel pool. Al momento sono 10/20 proviamo a portarlo a 20/40.
SL1 - Huuu... Be', si' questo e' fattibile... Pero'...
IO - Il driver che usate e' shareware e 10/20 sono il numero massimo senza dover comperare il driver ufficiale, vero?

Ed il che spiega anche il motivo per i 4 databases: il driver shareware supporta solo 4 connessioni per database.

Dopo un paio di giorni SL1 ha comunicato che i "suoi" sviluppatori stavano lavorando sul problema ed avevano deciso di aumentare il livello di loggin in modo da avere una migliore comprensione del problema.

Ora, magari io sono solo un vecchiaccio cinico (coro: lo sei, lo sei), pero' mi sembra un po' strano che dopo che qualcuno ti segnala che la tua applicazione logga un errore ogni 30 secondi tu ti metti a fare debugging, quando per 2 mesi tutti si sono lamentati che l'applicazione e' lenta come la fame. Comunque, questi fantomatici "programmatori" dovrebbero produrre una applicazione di debugging "e con alcuni bugfix" nei prossimi giorni, cosi' magari riusciamo ad ottenere delle migliori performances senza dover acquistare il driver per il database a pagamento...

E magari io posso farmi spuntare un paio di ali dal culo e volare sulla luna.

Davide
30/08/2010 08:02

Precedente Successivo

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

17 messaggi this document does not accept new posts

Anonymous cowbell

Di Anonymous cowbell postato il 30/08/2010 08:55

Per curiosità, che rapporto di costo c'è tra il CMS e il driver? 1000:1 o qualcosa del genere?

-- Anonymous cowbell

Davide Bianchi

@ Anonymous cowbell Di Davide Bianchi postato il 30/08/2010 09:15

 

Per curiosità, che rapporto di costo c'è tra il CMS e il driver? 1000:1 o qualcosa del genere?

 

Si', qualche cosa del genere...

-- Davide Bianchi

TheDoc

@ Davide Bianchi Di TheDoc postato il 30/08/2010 12:37

>>Per curiosità, che rapporto di costo c'è tra il CMS e il driver? 1000:1 o qualcosa del genere?

>Si', qualche cosa del genere...

Accidenti, pensavo che ste cose accadessero solo in Italia... L'ennesima dimostrazione che ci sono molti che fanno le cose senza pensare prendendo la strada piu' facile al momento (il costo in termini di giorni-uomo e di immagine per aver scelto la soluzione "facile" dei driver shareware non posso pensare che sia inferiore a quello dei driver "a pagamento"....).

AP

-- TheDoc

robibo

Di robibo postato il 30/08/2010 09:17

I paguri perdono il pelo ma non il vizio, a quanto pare.

ciao D, buona settimana!

-- robibo

Daniele C.

Di Daniele C. postato il 30/08/2010 09:54

Scusa D.

 

CORO:

LO SEI, LO SEI, LO SEI!!!!

-- "I was watching the London Marathon and saw one runner dressed as a chicken and another runner dressed as an egg. I thought: 'This could be interesting.'" -Paddy Lennox
---
D.

BudSpencer

Di BudSpencer postato il 30/08/2010 10:22

Ma c'è ancora in giro qualcuno che fa le cose per bene?

No, vero?

Non gliene frega più un belino a nessuno di produrre soluzioni che funzionino.

-- BudSpencer

Davide Bianchi

@ BudSpencer Di Davide Bianchi postato il 30/08/2010 10:32

 

Ma c'è ancora in giro qualcuno che fa le cose per bene?

No, vero?

 

Lasciami le mie illusioni per cortesia.

 

-- Davide Bianchi

Daniele C.

@ Davide Bianchi Di Daniele C. postato il 30/08/2010 10:53

Lasciami le mie illusioni per cortesia.

 

Beh, si potrebbe argomentare che tutti fanno le cose per bene, almeno dal loro punto di vista. Ho notato che quello che io indico come "fare lo cose per bene" non è sempre quello che la mia collega o il mio capo indicherebbero.

Credo che la differenza tra un professionista e un utOnto sia il fatto che quando uno ti dice "No, le cose per bene si fanno così", tu non chiudi le orecchie ed il cervello, ma ascolti quello che ha da dire, valuti se in quello che dice l'altro c'è del buono ed accetti i suggerimenti che migliorano il tuo modo di fare.

Ma, ovviamente, con la maggior parte delle persone i suggerimenti vanno diretti in /dev/null, o forse sono solo io che sono giovane e stupido a credere che gli altri ti ascoltino.

-- "I was watching the London Marathon and saw one runner dressed as a chicken and another runner dressed as an egg. I thought: 'This could be interesting.'" -Paddy Lennox
---
D.

Camillo

Di Camillo postato il 30/08/2010 11:02

Vedrai, spitteranno il CMS su due VM, con altre due VM con sopra meta DBMS ciascuno, a sua volta con tanti database, uno per tabella, a singola colonna ovviamente, cosi potranno avere millemila copie shareware del driver castrato...

-- Camillo

Anonymous coward

@ Camillo Di Anonymous coward postato il 30/08/2010 12:47

>Vedrai, spitteranno il CMS su due VM, con altre due VM con sopra meta DBMS ciascuno, a >sua volta con tanti database, uno per tabella, a singola colonna ovviamente, cosi potranno >avere millemila copie shareware del driver castrato...



Profeta! Pur di non pagare (quanto, 200Euro?) per il driver...

-- Anonymous coward

blackpingus

@ Anonymous coward Di blackpingus postato il 30/08/2010 13:53

Profeta! Pur di non pagare (quanto, 200Euro?) per il driver...

Ma la cosa che mi suona strana è: che db usano per dover usare un driver "shareware"? Mai avuto l'occasione di doverne usare uno che non sia oracle/postgresql/mysql/mssql/db2...

-- blackpingus


Davide Bianchi

@ blackpingus Di Davide Bianchi postato il 30/08/2010 15:38

Ma la cosa che mi suona strana è: che db usano per dover usare un driver "shareware"? Mai avuto l'occasione di doverne usare uno che non sia oracle/postgresql/mysql/mssql/db2...



Adesso non mi ricordo che roba era o perche' lo usassero, il db era SQL Server in ogni caso.

-- Davide Bianchi

Adriano

@ Camillo Di Adriano postato il 30/08/2010 14:18

>Vedrai, spitteranno il CMS su due VM, con altre due VM con sopra meta DBMS ciascuno, a sua volta con tanti database, uno per tabella, a singola colonna ovviamente, cosi potranno avere millemila copie shareware del driver castrato...

 

Non millemila, perchè dovranno usare un limite arbitrario per non pagare la licenza del VM manager. Ho capito male?

-- Saludos
Adriano

Camillo

@ Adriano Di Camillo postato il 30/08/2010 23:26

> Non millemila, perchè dovranno usare un limite arbitrario per non pagare la licenza del VM manager. Ho capito male?

tzeh, mai fatto girare una vm dentro una vm, eh? pivello! questo e oltre per superare lo shareware!

-- Camillo

Anonymous coward

Di Anonymous coward postato il 31/08/2010 00:23

luogo: ufficio DB

Personaggi: DB, BigD, SL1 SL2



IN UN MONDO PERFETTO

bigD: .... e quindi il soft e' una chiavica.

BD: (guardando SL1 e SL2 che sudano copiosamente apre l'interfono e ) Signorina, chiami le guardie, faccia scortare SL1 e SL2 ai cancelli, faccia liberare i cani e dia ordine di spararli (a SL1 e SL2, non hai cani) a vista se si avvicinano a meno di 5 metri dalla cancellata. Poi avvisi l'ufficio legale di interrompere il contratto e di avviare una causa penale contro questi signori. Bravo BigD, ottima segnalazione, ci hai fatto risparmiere tempo e denaro, me ne ricordero' a fine mese.

NEL MONDO REALE

BigD: .... e quindi il software e’ una chiavica

BD: (sudando copiosamente mentre guarda SL1 e SL2 freschi come rose ed imperturbabili come due statue di budda) No, scusatelo, non voleva dire quello che ha detto, provvedero’.... puniro’..... lo mettero’ a risolvere gratuitamente il vostro software, lavoreremo per voi.... non abbandonateci, vi prego (qui si mette a piangere come un bimbo)

-- Anonymous coward

Mauro Pietrobelli

@ Anonymous coward Di Mauro Pietrobelli postato il 02/09/2010 08:14

<NEL MONDO REALE

BigD: .... e quindi il software e’ una chiavica

BD: (sudando copiosamente mentre guarda SL1 e SL2 freschi come rose ed imperturbabili come due statue di budda) No, scusatelo, non voleva dire quello che ha detto, provvedero’.... puniro’..... lo mettero’ a risolvere gratuitamente il vostro software, lavoreremo per voi.... non abbandonateci, vi prego (qui si mette a piangere come un bimbo)>

Sei un menagramo ma ahinoi è proprio così......

-- Mamo

filippo

Di filippo postato il 03/09/2010 10:08

Sei un menagramo ma ahinoi è proprio così......

Ma no sei tu che come me sei coglione (senza offesa) cioè ti aspetti che prima o poi qualcuno capisca. Dovevi dire come faccio da un po' di tempo, non c'è problema, per voi va bene che il programma restituisca errore ok allora è perfetto così.

Se io dico A rava fava e voi capite solo ultima riga in fondo $(cifretta)= troppo.

Non vi potete lamentare che il software faccia schifo o non faccia ciò per cui è stato (se come no) progettato.

Tra un po' sarò il capo di me stesso, non che io non faccia cavolate (o peggio) ma almeno se dico a faccio cappellate saprò chi è il colpevole senza essere sempre il capro espiatorio.

Con questa ci faccio un cartello all'ingresso dell'ufficio:

Credo che la differenza tra un professionista e un utOnto sia il fatto che quando uno ti dice "No, le cose per bene si fanno così", tu non chiudi le orecchie ed il cervello, ma ascolti quello che ha da dire, valuti se in quello che dice l'altro c'è del buono ed accetti i suggerimenti che migliorano il tuo modo di fare.

-- Un colpo di fulmine tra noi ha preso te ...
Da me che vuoi ?


17 messaggi this document does not accept new posts

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira