Un po’ di silenzio, occupato da un’attività che racconto e che mi ha portato via un bel po’ di tempo e che vi racconto, pur essendo un po’ OT dato che è puramente applicativa (ma per risolverla serviva proprio un sistemista!!!)
Per un cliente importante ho dovuto mettere le mani alla configurazione del cluster della web-applications Confluence, un wiki scritto e distribuito da Atlassian, società di sviluppo australiana.
Ora, i cangurotti hanno gestito il loro sistema di clustering applicativo attraverso il prodotto Tangosol Coherence, prodotto da qualche tempo acquisito da Oracle e quindi “closed”. Il problema manifestatosi nell’installazione da noi fatta al nostro cliente, era l’impossibilità di effettuare più di una installazione cluster sulla stessa macchina.
Mi spiego: abbiamo due licenze cluster a tre nodi (ipotizziamo) e vogliamo installare entrambi i cluster applicativi sugli Application Server (nel nostro caso era Bea Weblogic) degli stessi tre nodi fisici. Effettivamente una volta effettuata una installazione del genere, quando andavi a tirar su il primo nodo del secondo cluster, l’applicativo tornava errore, si incastrava e non saliva più. I log erano piuttosto oscuri e non davano nessuna indicazione chiara:
2007-11-30 18:15:04,861 WARN [Logger@13630585 3.2/365 (RC3)] [Coherence] log 2007-11-30 18:15:04.860 Tangosol Coherence AE 3.2/365 (RC3) <Warning> (thread=Cluster, member=n/a): Received a discovery message that indicates the presence of an existing cluster that does not respond to join requests;
In pratica il nodo del secondo cluster, invece di istanziarsi come “nuovo” tentava una join al cluster già esistente cosa che, ovviamente, non poteva andare a buon fine. Tra l’altro,la cosa ancora più strana era mi ero preoccupato che i due cluster (volutamente) fossero installati su due eth differenti, ognuna su di una subnet diversa, proprio per evitare dell’entropia di segnale, dal momento che il metodo di join del cluster di confluence è proprio attraverso messaggi multicast.
Mmm tutto molto strano, quindi. Ci perdo un po’ di tempo, faccio qualche altra prova ma ottengo lo stesso risultato. Quindi mi chiedo: perchè? C’è sicuramente un’interferenza del primo cluster. Ma dove? Le cose sono due: o a livello di rete (ma le interfacce sono su subnet differenti e dai log lo vedo che le sta utilizzando correttamente) oppure il primo cluster apre qualche socket sospetta. E così è: ne apre due, nello specifico. Una porta cluster (con numero molto alto) e una porta unicast (8088). E’ chiaro che quelle sono impegnate: se dico al secondo cluster di andarne ad impegnare altre due che sono libere, dovrebbe funzionare.
E così è stato. Per la soluzione del problema (nel caso vi imbattiate nel mio stesso problema) vi rimando alla pagina del mio wiki
DUE CONFLUENCE CLUSTER SUGLI STESSI NODI






















No user responded in this post
Leave A Reply
Please Note: Comment moderation maybe active so there is no need to resubmit your comments