# DB2/AS400 Verbindung



## Curan (14. Sep 2009)

Hallo!

Ich versuche momentan auf eine DB2 zu verbinden, welche auf einer AS400 läuft.
Hab mir den JDBC Treiber geladen (db2jcc.rar), allerdings hänge ich leider etwas.


```
try {

			Class.forName("com.ibm.db2.jcc.DB2Driver");
			String url = "jdbc:db2://ip:port/datenbank";
			
			// Daten
			String user = "usr";
			String password = "pw";
			
			Connection con = DriverManager.getConnection(url, user, password);

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
```

Ich weiß einfach nicht, welche Datenbank ich in der URL angeben soll??
Die relat. Datenbank welche ich auf der AS400 auslesen kann? (Befehl DSPRDBDIRE)

lg


----------



## robertpic71 (14. Sep 2009)

1. Der DB2-Treiber für die AS400 ist der freie jtopen.jar oder jt400.jar (auf der Maschine zu finden) - du dürftest einen Unix/z-Series-Treiber haben.

2. Die Treiberklasse lautet: com.ibm.as400.access.AS400JDBCDriver
Javaprogramme, welche auf der AS/400 laufen (64Bit-Java) können auch die Nativetreiber 
om.ibm.db2.jdbc.app.DB2Driver nehmen - das ist aber eher ein Auslaufmodell.

3. die Url lautet:
jdbc:as400://SystemOrIP/Bibliothek
SystemOrIP = Netzwerkadresse
Bibliothek = die AS/400 kennt eigentlich nur eine Datenbank, die zusätzliche Datenbank-Id wird bei der AS/400 als Bibliothek (= Verzeichnis) umgesetzt

Du kannst auch jdbc:as400/SystemorIP/          angeben.

Derjenige, welcher dir die Dateien vorgibt, muss auch die dazugehörige Lib wissen.
Sonst auf der AS/400 mit
WRKOBJ OBJ(*ALLUSR/MFIR) OBJTYPE(*FILE)       
die Bibliothek suchen.

Mit qualifizierten Angaben, kann man aber jederzeit auf alle Bibltiotheken zugreifen, also z.B. mit
select * from lib.datei

/Robert


----------



## sim (15. Sep 2009)

Der Treiber liegt im Root der iSeries - QIBM\ProdData\HTTP\Public\jt400\lib\jt400.jar

Die Treiberklasse wie bereits im anderen Posting erwähnt: com.ibm.as400.access.AS400JDBCDriver

Die Tabellen müssen Standardmässig qualifizerit angesprochen werden (SQL Sysntax mit .)

Du kannst jedoch auch folgende Eigenschaften bei der Verbindung angeben:
naming = system
libraries = *LIBL

Dadurch wird auf Systemnaming gewechselt. Weiterhin wird die Bibliotheksliste des angemeldeten Users verwendet. D.h. eine qualifizierte Angabe der Tabellennahmen könnte man sich dadurch sparen.


----------

