NickTCR
29-01-2012, 23:32
Ciao a tutti,
ho un problema a stabile una connessione ad un server MySQL tramite JDBC non presente sulla macchina locale.
Per divertirmi un po' :D, ho la seguente situazione.
Ho virtualizzato due server Ubuntu (spesso usavo windows): sul primo, che ha come IP 192.168.56.101 c'è Tomcat 6 e sul secondo, con IP 192.168.56.102, c'è MySQL.
Se può essere utile, ho virtualizzato il tutto con VirtualBox e configurato in modo che il pc host vede i server guest, ed entrambi i guest si vedono tra di loro (ho pingato la macchina 102 dalla 101 e viceversa con successo).
Sul server tomcat ho una piccola applicazione JAVA ed il file context.xml che riporta la seguente configurazione JDBC in modo da utilizzare il MySQL presente sulla 102 (fin'ora ho sempre fatto prove con le classiche configurazioni che usano localhost):
<Resource name="jdbc/pbg_db" type="javax.sql.DataSource"
removeAbandoned="true" removeAbandonedTimeout="30"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.56.102:3306/test?autoReconnect=true"/>
Il problema: dalla macchina host mi collego all'applicazione presente sul server Tomcat (la macchina 101) dove compilo una form con dati che dovranno essere registrati sul DB presente sulla 102, ma quando effettuo la submit ricevo il seguente errore:
Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.)
È chiaro che il server Tomcat non riesce ad effettuare una connessione al server MySQL installato sulla macchina 192.168.56.102.
Dove sbaglio? Pensavo bastasse cambiare l'IP nel contex.xml invece di usare sempre localhost. Devo fare qualche altra cosa?
Grazie mille.
PS. Non so se l'errore potrebbe riguardare l'installazione di mysql-java-connector. Comunque ho messo il .jar nella cartella /usr/share/tomcat6/lib, dove sono presenti tutte le altre librerie così come facevo su windows.
EDIT
Ops.... ho rifatto una prova non so perché ma ora la 102 pinga la 101 ma non viceversa! D'oh!!! Mi sa che ora il messaggio va spostato, uff!
ho un problema a stabile una connessione ad un server MySQL tramite JDBC non presente sulla macchina locale.
Per divertirmi un po' :D, ho la seguente situazione.
Ho virtualizzato due server Ubuntu (spesso usavo windows): sul primo, che ha come IP 192.168.56.101 c'è Tomcat 6 e sul secondo, con IP 192.168.56.102, c'è MySQL.
Se può essere utile, ho virtualizzato il tutto con VirtualBox e configurato in modo che il pc host vede i server guest, ed entrambi i guest si vedono tra di loro (ho pingato la macchina 102 dalla 101 e viceversa con successo).
Sul server tomcat ho una piccola applicazione JAVA ed il file context.xml che riporta la seguente configurazione JDBC in modo da utilizzare il MySQL presente sulla 102 (fin'ora ho sempre fatto prove con le classiche configurazioni che usano localhost):
<Resource name="jdbc/pbg_db" type="javax.sql.DataSource"
removeAbandoned="true" removeAbandonedTimeout="30"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.56.102:3306/test?autoReconnect=true"/>
Il problema: dalla macchina host mi collego all'applicazione presente sul server Tomcat (la macchina 101) dove compilo una form con dati che dovranno essere registrati sul DB presente sulla 102, ma quando effettuo la submit ricevo il seguente errore:
Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.)
È chiaro che il server Tomcat non riesce ad effettuare una connessione al server MySQL installato sulla macchina 192.168.56.102.
Dove sbaglio? Pensavo bastasse cambiare l'IP nel contex.xml invece di usare sempre localhost. Devo fare qualche altra cosa?
Grazie mille.
PS. Non so se l'errore potrebbe riguardare l'installazione di mysql-java-connector. Comunque ho messo il .jar nella cartella /usr/share/tomcat6/lib, dove sono presenti tutte le altre librerie così come facevo su windows.
EDIT
Ops.... ho rifatto una prova non so perché ma ora la 102 pinga la 101 ma non viceversa! D'oh!!! Mi sa che ora il messaggio va spostato, uff!