-
Java und die Verbindung von außen über eine Dataq
Hi *all
da ich kein Java kann, bitte ggf. falsche Formulierungen einfach in richtige Übersetzen
Ein PC-Pgm greift mit Java auf die AS400 zu und liest aus einer DataQ
Am Wochenende wird die Lib der Dataq umbenannt und eine neue Lib mit Dataq erzeugt.
Das PC Pgm beendet seinen Java zugriff auf die AS400 und baut Ihn neu auf.
(mit fest verdrahteter, richtiger Lib)
Trotzdem liest der PC-Java-Job Daten aus der umbenannten Lib, nicht aus den neuen.
Vermutung:
All die vielen Jobs auf der AS400, die sich starten wenn ein Java Pgm auf die AS400 zugreift sind nicht beendet worden, merken sich den "Zugriffspfad" und kommunizieren später auch mit dem neuen Job.
Frage: Was sag ich dem PC-Java Entwickler? Wie kann er seinen Job so beenden, das all die dazugehörigen Jobs auch verschwinden und eine neue Verbindung auch auf neue Daten zugreift.
Zus. Hinweis: das PC Java arbeitet mit dem Apache Camel / Spring Framework
Hoffe ihr habt das verstanden
Danke
Robert
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
... wenn das alles stimmt, was Du da schreibst, dann ist die DataQ Koponente der Dollschachtel Buggy. Ich vermute allerdings eher, dass da jemand in diesem Gestrüpp von rename auf der einen Büchse und restart auf der anderen Büchse über die eigenen Füße fällt.
D*B, dem schon wieder übel wird
-
Tja, so ist nunmal das Konstrukt.
Eine externe Firma liest Daten aus eine Dataq (vom PC, aus der Testumgebung)
Die Testumgebung wird jeden Samstag(da arbeitet keiner) aus der Echtungebung neu erstellt.
Die alte Testumgebung wird für 1 Woche gerettet als Test_old (rename)
Und Montag morgen konnten die PC-Firma keine Daten aus der Dataq lesen, bis wir Daten in die test_old/dataq geschrieben haben. Angeblich haben die Ihre PC-Pgmme morgens beendet und neu gestartet.
Und nun brauch ich ne Idee, da andere Java Pmme, die via Dataq mit uns (RPG) kommuinizieren dieses Problem nicht haben. Und das alles ohne Java Kentnisse
-
Raten im Nebel ist da unproduktiv.
Ohne den Quellcode kann dir da wohl keiner was sagen.
-
Zitat von Robi
Angeblich
... da hammers doch ...
-
@Dieter,
ja, aber das ist schon relativ sicher, alles andere wäre Betrug!
@Baldur
Code einsicht bekommen wir Montag, wenn unser Java-Pgmmr wieder da ist.
aber bis Montag ist noch lang ... und der Fehler ein 2. mal da!
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Mittels ENDPJ kannst du die Java-Servicejobs beim Umhängen der Lib ja killen (allerdings sind dann alle betroffen) und per STRPJ wieder starten.
-
Die Vermutung ist wohl richtig (siehe die Anmerkungen zu "Library name" der Send Data Queue" (QSNDDTAQ) API und Receive Data Queue (QRCVDTAQ) API). Es sind also wahrscheinlich die APIs auf der AS/400, die sich die Speicheradresse der umbenannten Datenwarteschlange gemerkt haben und über diese Speicheradresse weiterhin auf diese zugreifen.
-
Ja, danke.
Deshalb suche ich ja nach einem
'Beende die Verbindung zur AS/400 und alle von mir benutzen Zugriffswege' - Befehl im Java
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Das hat nichts mit der Verbindung zur AS/400 oder Java zu tun.
Das ist eine Eigenschaft der Datenwarteschlangen-APIs der AS/400.
Da hilft vielleicht nur ein IPL.
-
Jain,
Es ist ja der JavaJob, der die zusätzlichen Jobs in dem Q*WRK Subsystem verursacht.
Also soll das beenden des Javajobs auch diese dinger zumachen.
Aber ich vermute, das das nicht geht und wir alle Jobs des Users abschießen müssen.
Blöd ist nur, das ggf. gerade in dem Moment andere User diese 'Datenzugriff'-Jobs verwenden, der Job aber weiterhin das USEPRF aus dem Javajob sperrt.
(War der Tipp von Baldur, mit "WRKOBJLCK usrprf *USRPRF" die Jobs zu finden
Im Joblog eines solchen Jobs haben wir jedenfalls schon Meldungen gefunden, die mit dem Java-dataq-lesen überhaubt nix zu tun haben, sondern aus unserer GUI kommen.
Robert
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Das soll verstehen wer will.
Wenn ich gezielt eine DTAQ YYY in der Lib XXX auswähle, sollte nichts anderes genommen werden.
das Standard-API QRCVDTAQ/QSNDDTAQ cached da überhaupt nichts.
Auch wenn ich Remote per API da direkt was angebe wird nichts gecached.
Es kommt nun auf die verwendeten Methoden in dem Java-Programm an, ob dieses selber irgendwo die Objektbeziehung zur DTAQ cached bzw. in einer Variablen hält und daher die Änderung nicht mitbekommt.
Hier wird ggf. zur Laufzeit das DTAQ-Objekt bei Verbindungstrennung nicht zerstört um es neu aufzubauen.
Da hilft auch kein IPL.
Ohne Quelle geht da nichts.
Similar Threads
-
By fred2 in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 15-05-03, 16:38
-
By vogeste0 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 30-04-03, 10:09
-
By Antonio in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-02-02, 17:20
-
By delphix in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 23-01-02, 14:02
-
By Klaus Rotering in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 23-11-01, 12:01
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks