PDA

View Full Version : AS/400 und SQL Server 2000



rcauchy
31-05-05, 08:19
Hallo zusammen,
ich suche Tipps und Möglichkeiten, um zwischen einer DB2 DB und einer SQL Server 2000
DB in beide Richtungen transaktionsgesteuerte Datentransfers zu bewerkstelligen. Was ist da am geeignetsten ? In Richtung AS/400 möchte ich Access Data Projects laufen lassen, von der DB2 aus sollen Datenmanipulationen später ebenfalls per Transaktion auf dem SQL Server aktualisiert werden. Wie bekommt man das optimal hin ? Reicht schnödes ODBC ? Oder braucht man unbedingt den AS/400 OLE DB Support ? Danke für jeden Hinweis !

Fuerchau
31-05-05, 08:36
Der AS/400-OLEDB unterstützt leider keine Transaktionen. Um auf der AS/400 mittels SQL Transaktionen auszuführen ist der ODBC-Treiber erforderlich. Natürlich kann auch der MSDASQL mit DSN für die Verwendung über SQL-Server verwendet werden.

Ein Zugriff von der AS/400 aus auf den SQL-Server ist technisch nur mittels Java möglich.
Ansonsten kann von einem PC aus mittels ODBC auf die AS/400 zugegriffen werden.

Auf der AS/400 muss allerdings eine Tabelle journalisiert werden um Transaktionen ausführen zu können.

rcauchy
31-05-05, 09:47
Hallo und danke für die schnelle Antwort ...
Also der OLE DB Provider entfällt, so wie ich das sehe.
MSDASQL kenne ich nicht. Lesenden Zugriff auf die AS/400 habe ich über ODBC.
Wie kann ich die Einstellung der Journalisierung auf der AS/400 überprüfen (kenne die AS noch nicht so gut ...) Klingt aber logisch, ohne Transaktionslog könnten ja die Aktionen nicht ggf. zurückgefahren werden.
Ich stelle mir ein Transaktionsmodell per IPC vor - beide Systeme sollen sich eigentlich nicht physisch gegenseitig 'beschreiben'. MQSeries ? Was gibt's da evtl. noch ?
Was für Möglichkeiten gibt es über die SQL Server 2000 Data Transformation Services ?



Der AS/400-OLEDB unterstützt leider keine Transaktionen. Um auf der AS/400 mittels SQL Transaktionen auszuführen ist der ODBC-Treiber erforderlich. Natürlich kann auch der MSDASQL mit DSN für die Verwendung über SQL-Server verwendet werden.

Ein Zugriff von der AS/400 aus auf den SQL-Server ist technisch nur mittels Java möglich.
Ansonsten kann von einem PC aus mittels ODBC auf die AS/400 zugegriffen werden.

Auf der AS/400 muss allerdings eine Tabelle journalisiert werden um Transaktionen ausführen zu können.

Fuerchau
31-05-05, 10:01
Den SQL-Server kenne ich dazu nicht gut genug.
Was den MSDASQL angeht, so ist das der Standard-OLEDB-Treiber für ODBC-Verbindungen.

Um auf der AS/400 zu journalisieren verwendet man am besten direkt SQL:

STRSQL

CREATE COLLECTION MYDB
COMMIT

legt automatisch eine Bibliothek mit Journalen an.
Anschließende
CREATE TABLE ....
COMMIT
Werden dann auch aufgezeichnet.

Was ist IPC ? InterProcessCommunication ?

rcauchy
31-05-05, 10:48
Hallo schon wieder,
MSDASQL - schon wieder was gelernt ...
Wie kann man die Journaleinstellungen einfach nur checken ?
Ich habe eine existierende DB2 DB, die momentan nur lesend im Zugriff ist, ich wollte (und kann wohl auch nicht) neue Tabellen anlegen.
IPC = Inter Process Communication, ich meine damit Message Queuing mit Transaktionssicherheit. Am DTS des SQL Servers beisse ich mir gerade die Zähne aus ...



Den SQL-Server kenne ich dazu nicht gut genug.
Was den MSDASQL angeht, so ist das der Standard-OLEDB-Treiber für ODBC-Verbindungen.

Um auf der AS/400 zu journalisieren verwendet man am besten direkt SQL:

STRSQL

CREATE COLLECTION MYDB
COMMIT

legt automatisch eine Bibliothek mit Journalen an.
Anschließende
CREATE TABLE ....
COMMIT
Werden dann auch aufgezeichnet.

Was ist IPC ? InterProcessCommunication ?

Fuerchau
31-05-05, 10:53
DTS wird mit AS/400 nicht unterstützt.

Auf der AS/400 wird eher selten mit Journalen gearbeitet.
Mit DSPFD kannst du nachsehen, ob eine Datei aufgezeichnet wird, suche nach "aufgezeichnet".

BenderD
03-06-05, 18:35
Hallo,

eine einfache Möglichkeit in beide Richtungen ist Java; die erforderlichen Treiber sind frei verfügbar und unterstützen eigentlich alles, außer verteilten Transaktionen.

mfg

Dieter Bender



Hallo zusammen,
ich suche Tipps und Möglichkeiten, um zwischen einer DB2 DB und einer SQL Server 2000
DB in beide Richtungen transaktionsgesteuerte Datentransfers zu bewerkstelligen. Was ist da am geeignetsten ? In Richtung AS/400 möchte ich Access Data Projects laufen lassen, von der DB2 aus sollen Datenmanipulationen später ebenfalls per Transaktion auf dem SQL Server aktualisiert werden. Wie bekommt man das optimal hin ? Reicht schnödes ODBC ? Oder braucht man unbedingt den AS/400 OLE DB Support ? Danke für jeden Hinweis !

Fuerchau
05-06-05, 18:31
Da müsste man dem M$-SQL-Server auch noch Java beibringen.
Da ist es schon einfacher mittels "MSDASQL;DSN=MYAS400;" und den DSN als Systemdsn über die ODBC-Verwaltung eingerichtet, Tabellen zu verknüpfen.
Den Rest erledigt (so gut oder Schlecht eben) der M$-SQL-Server.

rcauchy
06-06-05, 09:38
Hallo und guten Morgen alle,

es müsste doch mit einer entsprechend eingerichteten und befugten DSN möglich sein, per SQL Server 2000 (stored procedure z.B) auf einer DB2 der AS/400 auch zu SCHREIBEN. Geht aber nicht. Sind das immer noch ODBC-Einstellungen oder gibt es noch ganz versteckte 'Schalter', die rein technisch das Schreiben blockieren ? Bin (noch) nicht so der AS/400-Kenner ...

MfG
rcauchy

Fuerchau
06-06-05, 10:24
Der SQL-Server lehnt selber das Schreiben in die Datenbank ab, wenn keine Journalisierung durchgeführt wird. Schließlich könnte ja im Ernstfall kein Rollback stattfinden was eine Inkonsistenz der DB nach sich zieht.

Die einzige Möglichkeit ist im SQL-Server eine externe Prozedur zu definieren, die ein eigenes C++/VB-Programm aufruft. Dieses wiederum kann mittels ADO/ODBC auch auf der AS/400 schreiben.