Witam,
potrzebne jest mi połączenie w jednej aplikacji do dwóch baz DB2 (7.2 i 9.x) w celu okresowego synchronizowania tabel. Pojedynczo łączę sie z bazami bez problemu, ale jak najpierw połączę sie z bazą 7.2, to nie mogę potem połączyć się z bazą 9.x i odwrotnie: jak połączę się najpierw z 9.x, to potem nie połączę się z 7.2. Aby połączyć sie ponownie z bazą muszę wyrzucić proces programu z menadżera zadań windowsa. Do DB2 7.2 uzywam biblioteki db2java.zip, a do DB2 9.x db2jcc.jar.
- Rejestracja:ponad 16 lat
- Ostatnio:około 13 lat
0
- Rejestracja:ponad 16 lat
- Ostatnio:około 13 lat
0
Jest to zwykle załadowanie sterownika i połączenie się z bazą:
Główne części kodu:
DB2 7.2:
String server = "xxx.xxx.xxx.xxx";
String serverPort = "6789";
String dbName = "test7";
String user = "user7";
String pass = "pass7";
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");
Connection connection = DriverManager.getConnection("jdbc:db2://"+server+":"+serverPort+"/"+dbName, user, pass);
DB2 9.x:
String server = "xxx.xxx.xxx.xxx";
String serverPort = "50001";
String dbName = "test9";
String user = "user9";
String pass = "pass9";
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection connection = DriverManager.getConnection("jdbc:db2://"+server+":"+serverPort+"/"+dbName, user, pass);
Ogólnie to tak wygląda. Normalnie obsługe bazy mam w osobnych klasach, ale schemat ideowy jest identyczny.
0
Oba sterowniki rejestrują się do tego samego protokołu jdbc:db2 i DriverManager odrzuca jeden z nich. Alternatywą dla DriverManagera jest interfejs DataSource (przykładowo z pakietu Apache DBCP> http://commons.apache.org/dbcp/ ). Pozawala on na uzyskiwanie połączeń dla różnych wersji sterownika w ramach tego samego protokołu jdbc.
DataSource dataSource = new BasicDataSourceFactory().createDataSource(properties)
//...
dataSource.getConnection();
Dzięki za wskazówkę. Zaraz zacznę zapoznawać się z projektem. Pozdr
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.