In a job descriptions you can use 'file:///...' only for the GridFTP server associated (or local) to the ws-gram server. file:/// will always be interpreted as local to the ws-gram server. That means: For a fileStageIn element you can use it only in the destinationUrl element and for a fileStageOut element you can use it only in the sourceUrl element. In sourceUrl of a fileStageIn element and in destinationUrl of fileStageOut you must provide 'gridftp urls'. ws-gram will substitute 'file://' by 'gsiftp://<gridftp-server:port>', according to the gram-gridftp file system mappings defined by the admin.
Check http://www.globus.org/toolkit/docs/4.2/4.2.1/execution/gram4/admin/#gram4-nondefaultgridftp and http://www.globus.org/toolkit/docs/4.2/4.2.1/execution/gram4/admin/#gram4-Interface_Config_Frag-filesysmap for more detailed information about the gram-gridftp mappings. If you want to transfer files as part of a job between 2 gridftp servers that are completely unrelated to the ws-gram server, you can do so. But you have to specify gridftp urls then. Martin Ufuk Utku Turuncoglu wrote: > Hi, > > I change the order and i got following error, > > at org.globus.exec.service.exec.RunThread.run(RunThread.java:85) > Can't do MLST on non-existing file/dir /Users/xyz/Desktop/dummy01.dat on > server fr0103ge.ncar.teragrid.org. Caused by > org.globus.ftp.exception.ServerException: Server refused performing the > request. Custom message: Server refused MLST command (error code 1) > [Nested exception message: Custom message: Unexpected reply: > 500-Command failed : System error in stat: No such file or directory > 500-A system call failed: No such file or directory > 500- > 500 End.]. Nested exception is > org.globus.ftp.exception.UnexpectedReplyCodeException: Custom message: > Unexpected reply: 500-Command failed : System error in stat: No such > file or directory > 500-A system call failed: No such file or directory > 500- > 500 End. > > I don't understand. The file /Users/xyz/Desktop/dummy01.dat is in my > local machine. Why it try to find in remote server. I just want to copy > local file to remote server. I also try to copy file using globus-url-copy > > globus-url-copy file:///Users/xyz/Desktop/dummy01.dat > gsiftp://gridftp.frost.ncar.teragrid.org/ptmp/xyz/dummy01.dat > > and it works. The newer RSL file as, > ... > <fileStageOut> > <transfer> > <sourceUrl>file:///Users/xyz/Desktop/dummy01.dat</sourceUrl> > > <destinationUrl>gsiftp://gridftp.frost.ncar.teragrid.org/ptmp/xyz/dummy01.dat</destinationUrl> > > </transfer> > </fileStageOut> > ... > > Thanks, > > --ufuk > > > Stuart Martin wrote: >> It looks to me like you may have the source and dest mixed up. For >> stage out, the source would typically be the file:/// url which would >> get replaced by ws gram with the service-side gridftp server host and >> port. Then the gsiftp url would be to the gridftp server running on >> the client-side. >> >> <fileStageOut> >> <transfer> >> >> <sourceUrl>gsiftp://gridftp.frost.ncar.teragrid.org/ptmp/xyz/dummy01.dat</sourceUrl> >> >> >> <destinationUrl>file:///Users/xyz/Desktop/dummy01.dat</destinationUrl> >> </transfer> >> </fileStageOut> >> >> -Stu >> >> On Feb 27, 2009, at Feb 27, 10:58 AM, Ufuk Utku Turuncoglu wrote: >> >>> Hi, >>> >>> I try to submit a globus job with file transfer but i got following >>> error. The local file appears as null in the log. >>> >>> Submission ID: uuid:af0a91f0-0494-11de-bdbe-fda4d1871b6e >>> delegation level: gsilimited >>> delegation level: gsifull >>> WAITING FOR JOB TO FINISH: >>> ========== State Notification ========== >>> State : Failed >>> Holding: false >>> ======================================== >>> Exit Code: 0 >>> Failed >Failed< >>> Fault: >>> fault type: org.globus.exec.generated.StagingFaultType: >>> attribute: fileStageOut >>> description: >>> Staging error for RSL element fileStageOut, from >>> gsiftp://gridftp.frost.ncar.teragrid.org:2811/ptmp/xyz/dummy01.dat to >>> null. >>> destination: null >>> faultReason: >>> faultString: >>> gt2ErrorCode: 0 >>> originator: Address: >>> https://fr0103ge.ncar.teragrid.org:8443/wsrf/services/ManagedJobFactoryService >>> >>> Reference property[0]: >>> <ns6:ResourceID >>> xmlns:ns6="http://www.globus.org/namespaces/2004/10/gram/job">cd2d9100-0494-11de-97de-d94967efe41a</ns6:ResourceID> >>> >>> >>> source: >>> gsiftp://gridftp.frost.ncar.teragrid.org:2811/ptmp/xyz/dummy01.dat >>> stackTrace: >>> org.globus.exec.generated.StagingFaultType: Staging error for RSL >>> element fileStageOut, from >>> gsiftp://gridftp.frost.ncar.teragrid.org:2811/ptmp/xyz/dummy01.dat to >>> null. >>> Timestamp: Thu Feb 26 23:06:41 MST 2009 >>> Originator: Address: >>> https://fr0103ge.ncar.teragrid.org:8443/wsrf/services/ManagedJobFactoryService >>> >>> Reference property[0]: >>> <ns6:ResourceID >>> xmlns:ns6="http://www.globus.org/namespaces/2004/10/gram/job">cd2d9100-0494-11de-97de-d94967efe41a</ns6:ResourceID> >>> >>> >>> I also check delegation level and it seems as full. I am using >>> gt4.0.8 java libraries. The jobs work correctly without data transfer >>> part. >>> >>> Any suggestion will be helpful, >>> >>> --ufuk >>> >>> RSL Script --- >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <job> >>> <executable>/bin/sh</executable> >>> <directory>/ptmp/xyz</directory> >>> <argument>-c</argument> >>> <argument>/bin/uname -a</argument> >>> <stdout>/ptmp/xyz/1235714747266.stdout</stdout> >>> <stderr>/ptmp/xyz/1235714747266.stderr</stderr> >>> <count>1</count> >>> <jobType>single</jobType> >>> <fileStageOut> >>> <transfer> >>> >>> <sourceUrl>gsiftp://gridftp.frost.ncar.teragrid.org/ptmp/xyz/dummy01.dat</sourceUrl> >>> >>> >>> <destinationUrl>file:///Users/xyz/Desktop/dummy01.dat</destinationUrl> >>> </transfer> >>> </fileStageOut> >>> </job> >>> >> >
