Newsgroup: it.comp.java
Titolo: Posso aprire 2 connessioni contemporanem. su 2 tipi di Database diversi?

Ciao a tutti,
mi è sorta l'esigenza in Java, di aprire 2 connessioni in
contemporanea però su 2 Database di TIPO DIVERSO: Sybase e DB2
(quest'ultimo su AS/400).
Volevo chiedere a qualcuno che ha già affrontato il problema, SE è
possibile farlo. Chiaro che in una query NON è possibile mettere in
join tabelle di database diversi perchè il Driver aperto per una query
deve essere unico (se qualcuno può smentirmi su questo mi farebbe
proprio piacere dato che l'intento iniziale sarebbe stato proprio
questo!), però speravo che si potessero aprire 2 connessioni con 2
Driver diversi, nello stesso tempo, ad esempio per leggere da una
tabella di un tipo DB e scrivere in un'altra tabella di un altro tipo
DB grazie appunto a 2 variabili connessioni diverse. Purtroppo però
non appena invoco il secondo metodo di creazione di connessione, mi
compare l'errore "no suitable driver" nell'istruzione
DriverManager.GetConnection(.....), e quindi mi è sorta la domanda
oggetto di questo messaggio.
Grazie fin d'ora a tutti coloro che sapranno dirmi qualcosa in merito.
Buon lavoro a tutti!
Davide

 compare l'errore "no suitable driver" nell'istruzione
tu come tradurresti "no suitable driver"


Probabilmente sbagli qualcosa nel driver:
Non ho possibilità di provarlo con sybase, ma l'esempio seguente funziona:
import java.sql.*;
import com.ibm.as400.access.*;
public class Test {
     public Test() {
     }
     public static void main(String[] args) {
         Test test = new Test();
         try {
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             System.out.println("Fase 1: Driver OK");
             Connection c = 
DriverManager.getConnection("jdbc:odbc:Esporta_collaudi");
             System.out.println("Fase 2: Connection OK");
             Class.forName("com.ibm.as400.access.AS400JDBCDriver");
             System.out.println("Fase 3: Driver OK");
             Connection c2 = 
DriverManager.getConnection("jdbc:as400://Sxxxxxxx;user=TuoUser;password=TuaPassword");
             System.out.println("Fase 4: Connection OK");
         } catch (Exception e) {
           e.printStackTrace();
         }
     }
}

 possibile farlo. 
Si', e' possibile.
I diversi driver devono essere registrati in precedenza con 
DriverManager.registerDriver(driver) o modificando la system property 
jdbc.drivers elencando tutti i driver disponibili o necessari, il metodo 
GetConnection tenta di utilizzare un driver già registrato in base all'url che 
gli passi nella forma "jdbc:subprotocol:subname". E' equivalente ad utilizzare:
DriverManager.GetDriver("jdbc:subprotocol:subname").connect(dburl, info)
-- 
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre
Spammers loop schijten/Spammers macht Euch vom Acker

Ciao Fez, grazie mille per l'esempio che mi hai mandato, mi ha fatto
capire dove sbagliavo(nel senso che ho visto che tu avevi scritto
proprio quanto avevo scritto io, con ad eccezione di quanto riporto
qui di seguito)! Praticamente la registrazione dei driver io l'ho
fatta correttamente anche perchè,non l'avevo scritto, ma provando le 2
connessioni singolarmente, erano OK! Ho sbagliato perchè, per rendere
il codice riutilizzabile, io andavo ad inserire i parametri di
connessione al DB,in 2 file .Properties, ma a quanto pare, java NON
vuole 2 file del genere,bensì UNO solo, così ho messo i parametri di
entrambe le connessioni nello stesso file .Properties.
Spero questo possa servire anche a qualcun altro.
Grazie ancora.
UNA DOMANDA FEZ: è questo il tuo indirizzo di POSTA : 
no...@nowhere.org
  ??
Tanto per sapere, perchè qui i messaggi compaiono dopo ore, ore e
ancora ore, quindi magari se una volta mi dovesse porti una domanda in
velocità, SE non ti secca magari te la scriverei anche direttamente in
posta.
Grazie anche al Dr. Gagliardelli per la sua risposta (che definirei in
perfetto stile accademico :-) ... ma molte volte è molto +
chiarificatore un esempio PRATICO).
Ciao a tutti e buon lavoro!
Davide

 posta.
Scusa per il ritardo della risposta ma ero im mezzo al trasloco di una 
ventina di utenti e gli elettricisti come al solito fanno dei bei casini 
  :((
No, e' solo un modo per cercare di evitare un po' di spam :))
Scrivi sul ng: mi fa piacere cominciare a parlare di java in questo ng 
dopo una quindicina d'anni di RPG (anche se cerco di programmare sempre 
di meno :-)   )
Stefano