Swing, dwie różne bazy DB2

Odpowiedz Nowy wątek
2011-08-03 08:14
0

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.

Pozostało 580 znaków

2011-08-03 10:22
0

Pokaż kod łączący z bazą danych, bo coś czuję, że drivery gryzą się przy tworzeniu połączeń.

Pozostało 580 znaków

2011-08-03 12:22
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.

Pozostało 580 znaków

2011-08-03 12:28
bo
0

A zamykasz gdzieś połączenie z bazą?

Transakcyjnosc, zwalnianie zasobow, zamykanie połączeń też jest. Tu pokazałem tylko kawełek kodu do nawiązania samego połączenia, a nie pełnej obsługi bazy. Pozdr - ramius 2011-08-03 13:56

Pozostało 580 znaków

2011-08-03 12:39
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 - ramius 2011-08-03 13:59

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0