PDA

View Full Version : Linked Server von SQL2008 zu AS400 zeigt keine Bibliotheken



Seiten : 1 2 [3]

camouflage
04-07-12, 13:17
Das ist schlecht, ist im Feature Pack für SQL Server 2008 enthalten. Denke der kann aber auch sonst heruntergeladen werden. Dann fehlt Dir vermutlich auch das Data Access Tool mit dem Du die erforderlichen Connection-Strings leicht erstellen kannst.

Bei mir funktioniert's jedenfalls tipp- topp (allerdings auf V7.1 - aber ohne CA-Driver.)

Fuerchau
04-07-12, 13:18
Dann hilft halt wirklich nur das Joblog und Debug Modus.

Was den genannten DB-Provider angeht siehe hier:
Microsoft OLE DB Provider for DB2 V3.0 is available - Stephen's Host Integration Server Blog - Site Home - MSDN Blogs (http://blogs.msdn.com/b/sjackson/archive/2010/06/11/microsoft-ole-db-provider-for-db2-v3-0-is-available.aspx)

Allerdings scheint der kein V5R2 mehr zu unterstützen. Aber ein Versuch wäre es wert.

hs
04-07-12, 13:51
Jetzt geb ichs langsam auf.

Wenn ich die MS-Treiber installieren möchte, bekomme ich die Meldung:

[14:39:25 Info] Found SQL Server Standard Edition.
[14:39:25 Info] Not the correct edition.

Habe auch keine Treiber gefunden für die Standard Edition.

Das bringt mich nochmal zu meiner Frage oben:

Wie komme ich ans Joblog?

Danke

Fuerchau
04-07-12, 14:00
MS möchte nun mal Geld verdienen, und da ist die kostenlose Standardversion halt nicht geeignet.

Joblog:
ODBC-Konfig aufrufen
Register Diagnose
DEBUG anklicken
Joblog anklicken

Im SQL-Server muss ggf. der Linked-Server neu erstelt werden, da die verbindungseigenschaften vom SQL-Server aus der DSN entnommen werden.

"Select" ausführen und anhalten.

Auf der AS/400 dann per obigem WRKOBJLCK den Job wieder ermitteln, das hast du ja schon mal gemacht, und dann dort ins aktive Joblog mal reinschauen.

hs
04-07-12, 14:11
Ich probiers mal, danke.

Und wie kommst du darauf, dass die Standard Edition kostenlos ist - ich hab da 5000,- Euro in Erinnerung ;)

Fuerchau
04-07-12, 14:15
Ja entschuldige bitte, da habe ich mich mit der Express-Edition vertan :).
Aber die Voraussetzung ist die Version 2005 oder höher.

Und was die Kosten angeht, so muss man da manchmal einen Umweg machen.
Ich hatte mir damals VisualStudio 2005 (ca. 800€) gekauft, da war der SQLServer 2005 kostenlos dabei.

hs
04-07-12, 14:44
Es kommt aber nichts mehr an im Testsystem.
Ich führe auf dem SQL-Server den Select aus und bekomme auch die Tabellenstruktur angezeigt mit leeren Inhalten.

Parallel habe ich eine AS400 Sitzung offen. Ich sehe dort aber keinen QZDASOINIT Job, weder als QUSER noch unter dem Usernamen, mit dem ich verbunden bin.

Habe auch mal
WRKACTJOB SBS(QUSRWRK)
versucht, aber da steht auch nichts drin.

Ist das im ODBC jetzt anders, bei OLE konnte ich den Job doch sehen heute morgen?

Fuerchau
04-07-12, 17:03
Normalerweise sollte da kein Unterschied bestehen.
Ich weiß auch nicht, was der SQL-Server da treibt.
Wenn er allerdings keine Daten bekommt, könnte er ja ggf. die Verbindung wieder schließen.
Andererseits sollte die Verbindung eigentlich offen bleiben, es sei denn du hast (ich weiß aber nicht wo), den Connection-Pool abgeschaltet.

Die QZDASOINIT's laufen normalerweise im Subsystem QSERVER.

Wenn du korrekt das Joblog aktiviert hast, müsste auch nach der Verbindung in der OUTQ QEZJOBLOG ein Spool zu finden sein.

Nur mal so als dumme Frage:
Bist du sicher auf dem richtigen System geprüft zu haben?

Wenn du MS-Access zur Verfügung hast, prüfe mal ob du per "verknüpfter Tabelle" oder SQL-Pasthru über die ODBC-Verbindung zur AS/400 durchkommst.
Wenn das klappt, klappts auch mit dem SQL-Server.

Alternativ ggf. auch über Excel->Externe Daten->MS Query.

hs
04-07-12, 20:03
Bin schon auf dem richtigen Server und die Einstellungen sind auch korrekt.

Habe den Job jetzt auch mal erwischt, aber Fehlermeldung sehe ich keine (vom STRTRC mal abgesehen):

Job 051212/QUSER/QZDASOINIT im Subsystem QSERVER in QSYS am 04.07.12 um
20:53:18 gestartet. Job im System am 04.07.12 um 20:53:18. angekommen.
Benutzer INFO an Client 192.168.2.24 ist mit dem Server verbunden.
PREPARE für Anweisung QZ96705FD5A6F435C8 beendet.
Keine Berechtigung für Befehl STRTRC.
Fehler von Auslöserprogramm oder externer Routine erkannt.
DESCRIBE für vorbereitete Anweisung STMT0002 beendet.
PREPARE für Anweisung STMT0002 beendet.
DESCRIBE für vorbereitete Anweisung STMT0002 beendet.
Abfrageauswahl aus Datei QAQQINI in Bibliothek QUSRSYS abgerufen.
****: Debug-Nachrichten des Optimierungsprogramms für Abfrage werden
gestartet.
Der Zugriffsplan von OS/400 Query wurde wiederhergestellt.
Abfrageauswahl aus Datei QAQQINI in Bibliothek QUSRSYS abgerufen.
Abfrageauswahl aus Datei QAQQINI in Bibliothek QUSRSYS abgerufen.
Abfrageoptionen zur Erstellung des OS/400-Abfragezugriffsplans verwendet.
Zugriff nach Eingangsfolge für Datei TESTTAB verwendet.
Abfrageauswahl aus Datei QAQQINI in Bibliothek QUSRSYS abgerufen.
****: Debug-Nachrichten für Abfrage werden beendet.
ODP erstellt.
Blockung für Abfrage.
Cursor SQL_CUR0270B670 eröffnet.
DESCRIBE für vorbereitete Anweisung STMT0002 beendet.
240 Zeilen aus Cursor SQL_CUR0270B670 abgerufen.
Cursor SQL_CUR0270B670 geschlossen.

Joblog bekomme ich aber immer noch keins :mad:

Hier mal die Einstellungen:
http://www.treffbilder.de/images/41428568/unbenanntwuy0.jpg

hs
05-07-12, 08:08
Moin,

unser Programmierer auf dem SQL Server hatte parallel auch mal gegoogelt und einen Tip gefunden, dass man am Server die Option "IN process zulassen" aktivieren soll.

Er hat dann wieder eine OLE-Verbindung angelegt und die Option aktiviert. Ging auch nicht. Dann hat er diese wieder rausgenommen, und jetzt geht es mit dieser OLE -Verbindung :):):)

Ich verstehe es nicht, wir haben weder im Testsystem noch auf dem SQL-Server Jobs über Nacht beendet oder neu gestartet. Alles war noch wie gestern?

Aber auch wenn es keine plausible Erklärung dafür geben sollte, man ist ja schon zufrieden, wenn es endlich funktioniert :)
PS:
Auf unserem 2000-Server ging es übrigens sofort.