-
OPENDIR, READDIR, CLOSEDIR
Hallo,
ich habe aktuell mit dem opendir auf der neuen TESTMaschine ein Problem.
Auf der PROD, 7.3 mit java 1.6 funktioniert das öffnen und lesen ohne erkennbare Probleme.
Auf der neuen Test, 7.4 mit java 1.8 scheitert es schon beim öffnen.
Lizenzprogramme sind geprüft und installiert . nichts zu erkennen .
Serviceprogramm QP0LLIB1 auf beiden Maschinen zu finden.
DSPLNK funktioniert auf beiden. Berechtigungen sind geprüft , voller Zugriff definiert.
Gibt es Einstellungen/Definitionen/Systemwerte , die dediziert einzurichten sind , an die möglicherweise nicht gedacht wurde ( z.b. /home/UserProfil , oder Systemwerte Q ) ?
Wir kann ich den Fehler bestimmen ? Im Programm wurde dazu ( leider ) keine Fehlerbehandlung integriert , nur ein Abfrage auf NULL . Wenn diese zutrifft , also das öffnen fehlschlägt , wird eine eigene Programm-Fehler-Meldung angezeigt , der ERRNO nicht ausgewertet .
Wie kann ich die ERRNO auswerten und über diesen Weg versuchen das Problem einzugrenzen ?
Gruß
Danke vorab für eure Hilfe ...
-
Dies sind C Funktionen und haben mit Java nichts zu tun.
Wenn ich das richtig verstehe ...
Ein Programm ruft ein anderes auf welches eine C-Funktion aufruft und diese wirft einen Fehler wo man nicht weiß was für ein Fehler (nichts im Jobog?, generierte Spools oder sonst was).
Ohne mehr Infos ist es schwer hier was sagen zu können.
-
Im LOG finde ich nichts , da hab ich schon geschaut .
Es muss etwas umgebungsspezifisches sein , denn , auf der PROD funktioniert es ja und dies seit Jahren . Da hat man auch nicht mehr rengeschaut , seit Urzeiten :-)))
Eine meiner Ideen war und ist , die ERRNO auszuwerten , aber Ergebnis offen ....
Die andere , dass durch die Tatsache , dass es sich um eine neue Maschine handelt , es sich , was ich glaube , um eine nicht komplett vollständige saubere Installation handelt , etwas im OS , oder etwas mit Rechten , hier das Problem auslöst . Womöglich dies schon jemand hatte und hier helfen kann ..
-
Folgendes müsstest du im Programm einbinden:
Code:
D get_errno pr * ExtProc('__errno')
D ptrToErrno s *
D errno s 10I 0 based(ptrToErrno)
D strerror pr * ExtProc('strerror')
D errno_val 10I 0 value
ptrToErrno = get_errno();
text = %char(errno);
text2 = %str(strerror(errno));
Wenn beim Opendir NULL zurück kommt, rufst du die get_errno() Prozedur auf und bekommst die Infos.
-
Wenn es wie du sagst seit Jahren läuft, kann es nur an Berechtigungen liegen.
-
Hallo Andreas ,
danke für das Script . Haben es integriert , hat auf Anhieb geklappt ( danke dafür ) und warten nun auf Feedback .. Der Admin prüft die Berechtigungen , denn laut Meldung ( Fehlercode 3025 ) würde kein Pfad oder Bibliothek mit diesem Namen zu finden sein .
-
Servus,
3025 schmeißt er immer raus, wenn es die Datei (Pfad) so nicht gibt.
Dieser Fehler kommt auch bei einem banalen CPYFRMIMPF, wenn man sich bei dem Namen der Datei im IFS vertippt hat.
Prüfe mal ob es den Pfad und Datei im IFS gibt
Gruß
Ronald
-
... oder falls ein relativer Pfad angegeben wird und jetzt ein anderes Current Directory gesetzt ist als zuvor.
... oder beim Pfad der Root Slash (/) vergessen wurde
... oder Blanks vorne oder hinten hinterlegt sind und nicht getrimmt wird
... oder das Verzeichniss hinten blanks im Namen hat und deshalb nicht gefunden werden kann
... usw.
Am Besten lässt du dir den Pfad (auf das Byte genau) ausgeben und probierst mit WRKLNK ganz genau diesen Pfad in Hochkomma aufzurufen.
lg Andreas
-
wie kann ich prüfen , ob das current directory , ein anderes ist ?
Slash ist gesetzt , sauber getrimmt ist auch , blanks hat das Verzeichnis nicht ,
denke das current directory , dies wirds sein ...
-
strqsh
pwd
fettich
(Auffüllung wegen 20 Zeichen ...)
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Zitat von Andreas_Prouza
Am Besten lässt du dir den Pfad (auf das Byte genau) ausgeben und probierst mit WRKLNK ganz genau diesen Pfad in Hochkomma aufzurufen.
Wie gesagt, am besten Copy-Paste und testen.
Und gibst vor und nach dem Pfad noch ein Zeichen mit aus um sicher zu sein, dass da nichts verstecktes dabei ist.
Wenn du den Slash am Anfang hast, dann ist das Current Directory hinfällig.
Im Benutzerprofil ist ein Home-Verzeichnis hinterlegt und ist beim Start einer Session das Current Directory und kann jederzeit geändert werden.
Meist ist zwas bei den Usern ein Home-Verzeichnis hinterlegt (mit /home/{username}) jedoch existiert dieses Verzeichnis meistens nicht.
lg Andreas
-
hab mit DSPCURDIR das Directory geprüft .. ist unterschiedlich ..
in der source ...
pfad ist in länge 70 definiert ,
dirname = 100
dirname als entry empfangen (/xxxxxxx/xxxxx/xxxxx);
pfad = %trimr(dirname) + null
der aufruf erfolgt mit opendir(%addr(pfad));
Similar Threads
-
By Frank ter Duis in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 17-09-14, 16:04
Tags for this Thread
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