2011-10-28 2 views
0

J'envoie un fichier d'UNIX au serveur MAINFRAME via connect direct. Je suis en mesure de télécharger le fichier avec succès.A l'hôte de destination, lorsque le fichier est reçu, il n'est pas lisible et pas dans le même format que j'ai envoyé à partir du serveur UNIX.Envoi de fichiers via connexion directe d'UNIX à MAINFRAME

Ci-dessous le travail de transmission

Direct> Enter a ';' at the end of a command to submit it. Type 'quit;' to exit CLI. 

     submit maxdelay=unlimited TINIRS process snode=b1ap005 
         TRANSMIT copy from (file=myFile.txt 
               pnode 
               sysopts=":datatype=text" 
              ) 
              ckpt=1k 
             to (file=myFile.txt(+1) 
               snode 
               DCB=(DSORG=PS,RECFM=VB,LRECL=1500) 
               disp=(new) 
              ) 
     pend ; 

S'il vous plaît laissez-moi savoir les valeurs DCB doit être mis à jour. Le fichier que j'envoie a 3 enregistrements de longueur variable et la longueur maximale d'enregistrement est 1500.

+0

Je ne suis pas sûr que ce soit une question de programmation. Vous pouvez vouloir Serverfault. Vous pouvez "signaler" votre propre question à l'attention du modérateur pour lui demander d'être déplacé. – derobert

+0

Avez-vous besoin de faire quelque chose au sujet de la conversion de caractères ASCII/EBCDIC? – NealB

Répondre

1

En fait, cela semble presque correct. Mais si votre longueur maximale d'enregistrement est de 1500 caractères (à l'exclusion de NL à la fin de la ligne), votre LRECL devrait être d'au moins 1504. Mais ne lésinez pas sur le maximum - il n'y a pas de coût ou de pénalité 32767). Et NealB est correct - s'il s'agit d'un fichier texte, vous devrez peut-être spécifier une traduction de jeu de caractères - mais je ne sais pas comment faire cela dans CONNECT: Direct.

+0

Du côté d'Unix, 'dd' gère ASCII: EBCDIC - donc vous pouvez assez facilement reformater le fichier avant de l'envoyer. – BRFennPocock

+1

Oh, si seulement c'était si facile :-) Il y a beaucoup de pages de codes EBCDIC, et vous devez vraiment savoir de quel (s) dont vous parlez. J'ai perdu beaucoup de cheveux sur cette question il y a des années :-) –

0

C: D convertit automatiquement ascii en EBCDIC lorsque DATATYPE = TEXT est utilisé. Pour être positif, vous pouvez utiliser ": datatype = text: xlate = yes:".

Questions connexes