[MVS] datasets en ftp

Pagina: 1
Acties:

  • jos707
  • Registratie: December 2000
  • Laatst online: 05-02 22:33
hoi, ik heb een klein programma geschreven in c++, deze gaat een ftp connectie opbouwen met onze mainframe. Op deze mainframe draait een MVS IBM os. De bedoeling is dat het programma cammando's verzend om zo datasets via TSO te kunnen oplijsten of downloaden. Wanneer ik het commando 'get 'dataset.x' c:\test.txt' opgeef zegt de mainframe dat het commando niet herkend wordt.
Wanneer ik een ftp connectie maak in een dos - venster dan werkt dit commando wel en haalt hij het bestand af en zet de inhoud in c:\test.txt.
Blijkbaar gaat de ftp API van windows dus het commando 'get' vertalen naar iets dat
het MVS os verstaat. De vraag is nu naar wat ? Zodat ik dit kan implementeren in mijn eigen applicatie.
Heeft iemand ervaring met ftp commandos voor het MVS besturingssysteem ? Blijkbaar is deze informatie op het internet vrij schaars.

[ Voor 4% gewijzigd door jos707 op 17-02-2006 12:55 ]


Verwijderd

Werkt je C progje wel met een FTP server op een "gewone" server? Probeer 'm daar eerst eens aan de praat te krijgen. Dan werkt-ie zeker ook met een FTP server onder MVS. Ik heb ervaring met MVS waar een bepaalde job-step bestanden uitwisselt met een HP/UX FTP server.

Wat specifiek is aan MVS is de EBCDIC code, maar als je bestanden als ASCII uitwisselt, dan vind er automatisch een vertaling plaats. Alleen oppassen dat er geen binaire of packed-decimal informatie in de records zit.

  • jos707
  • Registratie: December 2000
  • Laatst online: 05-02 22:33
Mijn progje werkt met een gewone ftp server, commando's zoals LIST,PUT,CWD,.. werken zonder probleem. Het progje werkt zeker ook met een MVS server want commando's zoals STAT,HELP,PWD werken ook zonder probleem. Alleen weet ik dus niet welke commando's ik moet gebruiken om bestanden af te halen. Ik vermoed iets met RETR 'dataset.x' c:\test.txt , maar wanneer ik dit probeer krijg de vermelding dat er wel een aantal kilobytes zijn verzonden maar onder c:\ vind ik dus geen test.txt.
Dus waarschijnlijk zit het in de aanroep van de juiste parameters icm RETR.

Maar wat bedoel je met 'oppassen dat er geen binaire of packed-decimal informatie in de records zit' ? Mijn overdrachten gebeuren trouwens altijd in ASCII mode omdat ik alleen met tekst bestanden werk dus BINARY mode gebruik ik zowieso niet.

[ Voor 4% gewijzigd door jos707 op 17-02-2006 14:45 ]


Verwijderd

Je geeft zelf 't antwoord: je werkt met tekst bestanden. Daar zit alleen maar leesbare tekst in? Dan heb je geen last van binaire en/of packed-decimal velden.

Als je vanuit een dos-box of een shell een ftp sessie start met het mainframe, dan kan je met een ? alle commando's opvragen. Daar staan toch gewoon 'get' en 'put's bij? En hoe zit het met je userid/passwd en je RACF profiel? Heb je wel rechten op die bestanden?

  • Sendy
  • Registratie: September 2001
  • Niet online
Je kan altijd met een packetsniffer (gewoon lokaal) het verkeer afluisteren en zien waar de z/OS Unix (welke versie z/OS is het?) de fout maakt.

Probeer je datasets of PDS(E)'s te lezen? Het is altijd een beetje lastig om de commando's goed te krijgen (//HLQ.DSN (of waren het backslashes?)), met/zonder quotes (voor de HLQ).

Maar zoals gezegt, sniff eens het verkeer met ethereal. Je kan makkelijk vergelijken tussen interactieve FTP en je automatische programma. Ethereal kan ook EBCDIC lezen trouwens :)

Weet je trouwens of dat C:\test.file werkt? Probeer het eens zonder deze parameter en kijk dan in de huidige directory.

[ Voor 12% gewijzigd door Sendy op 17-02-2006 23:50 ]


  • jos707
  • Registratie: December 2000
  • Laatst online: 05-02 22:33
Als ik alle commandos opvraag van de mainframe staat hier geen 'get' bij, en dit is nu juist wat ik moet hebben. Hier staat wel 'retr' bij en volgens mij moet dit commando hetzelfde doen als 'get' alleen zal ik verder moet uitzoeken hoe ik het moet gebruiken.

Ethereal ken ik niet en weet ook niet hoe dit mij zou kunnen helpen maar ik zal er even achter googlen.

  • Sendy
  • Registratie: September 2001
  • Niet online
Hoe kom je dan aan dat "klein(e) programma geschreven in c++"? Kan je het niet gewoon aan je systeemprogrammeur vragen?
Pagina: 1