giovedì 18 agosto 2016

JBoss failed to start (address already in use)

Capita che JBoss si "incatasti" ovvero che rimanga in esecuzione anche se dice di non esserlo e senza che ci siano processi relativi in esecuzione (tipo la sua istanza di javaw).

La soluzione e' abbastanza semplice, basta tramite netstat vedere chi c'e' in ascolto sulla porta che jboss ci segnala quando dice che non e' riuscito a partire.

Aprite una shell e vi fate un bel
netstat - ano | find "$NUMERO_PORTA"
dove $NUMERO_PORTA e' quel valore di cui parlavo sopra.

A voi interessa il pid (l'ultimo valore, quello che nell'immagine qua sotto ho evidenziato con un quadrato rosso)

Una volta che vi siete segnati il pid basta "ucciderlo". Come? con
taskkill -pid $PID
dove $PID e' il process id restituito da netstat.

Adesso potete riavviare jboss.

Alla prossima!

mercoledì 17 agosto 2016

Perl connessione ad oracle (con e senza tsanames)

Premessa

e' necessario usare il modulo DBI, e potrebbe essere necessario installare il driver per oracle (vedi cpan install per approfondimenti)

Primo modo (usando il tsanames)

semplicemente si passa soltanto il sid e dbi si va a leggere sul tsanames ip porta etc
my $sid = "";
my $dbh = DBI->connect("dbi:Oracle:$sid", "username", "password");

Secondo modo (senza tsanames)

E' necessario specificare nel connect che gli si sta passando l'host il sid etc nel nome host ci dev'essere solo il nome host e verra' usata la porta di default di oracolo, se per qualche ragione la porta dovesse essere diversa analogamente a come si specifica host e sid, si dovra' passare nell'indirizzi anche il parametro "port=" seguito dal valore e separato da ;
my $host = "";
my $sid = "";
my $username = "";
my $password = "";
my $dbh = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $username, $password);

Ora io non ho valorizzato le variabili, ma perche' mi sembrava chiaro cosa ci va dentro.