Hi Ryan,

the fix for that is already in a development branch
and will definitely go into 4.2.
I created a bug for that a while ago:
http://bugzilla.globus.org/globus/show_bug.cgi?id=5833

Martin

> Thanks Martin
> Is there a bug report for this or is it documented as a "must-have" for
> 4.2?
> Many thanks
> Ryan
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Friday, 29 February 2008 10:51 PM
> To: Fraser, Ryan (E&M, Kensington)
> Cc: [email protected]
> Subject: Re: [gt-user] resource lifetime
>
> Ryan,
>
> this is a bug, i found that myself a while ago.
> Lifetime handling of MultiJobs will be better in 4.2.
> If you can avoid MultiJobs i would recommend to do so.
>
> Martin
>
>
>> Hi
>>
>> I have a service that creates a multi job. It appears that there is
> only
>> an option to set the parent job's termination time and NOT the subjobs
>> of the multi. Currently I create each subjob (in a JobDescriptionType
>> object) and then they are added to a MultiJobDescriptionType which is
>> later associated with a CreateManagedJobInputType. The
>> CreateManagedJobInputType object then has its termination time set.
>> Setting this does not appear to set the termination time of the
> subjobs
>> - it ONLY sets the first subjob - is there a way to inherit or set the
>> termination time for ALL the subjobs? Am I using the wrong class or is
>> this a bug?
>>
>>
>>
>> Regards
>>
>> Ryan Fraser (SE)
>>
>> CSIRO Exploration & Mining ,
>> ARRC, 26 Dick Perry Ave,
>> Kensington, WA 6151 Australia
>> Phone +61 8 6436 8760 Fax +61 8 6436 8555
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>             private RunResponse submitBatchJob(
>>
>>                   RunResponse rr, MultiJobDescriptionType
>> jobDescription,
>>
>>                   int amountOfJobs) throws Exception
>>
>>
>>
>> String gramJobHandle = null;
>>
>>             SwFrameResource swFrameResource = getResource();
>>
>>
>>
>> .........................
>>
>>             // submit job
>>
>>
>>
>>
>>
>>
>>
>>             try {
>>
>>
>>
>>
>>
>> ..........................
>>
>>
>>
>>                   // prepare for job submission
>>
>>                   JobDescriptionType[] jobs = jobDescription.getJob();
>>
>>
>>
>>                   // set the default lifetime of the resource in
> seconds
>>
>>                   //int lifetime =
>> (SwFrameConfig.defaultGramLifeTimeLength *
>> 3600)+(int)(jobs[0].getMaxWallTime()/60);
>>
>>                   int lifetime =
>> (SwFrameConfig.defaultGramLifeTimeLength * 3600);
>>
>>                   logger.debug("Delegation Cert Resource lifetime in
>> seconds = " + lifetime);
>>
>>                   lifetime = lifetime +
>> (int)(jobs[0].getMaxWallTime()/60);
>>
>>                   logger.debug("Delegation Cert Resource lifetime in
>> seconds with walltime added = " + lifetime);
>>
>>
>>
>>
>>
>>                   // establish FULL delegation to client
>>
>>             .......................................................
>>
>>
>>
>>
>>
>>                   for(int i=0; i<amountOfJobs; i++)
>>
>>                   {
>>
>>
> jobs[i].setFactoryEndpoint(factoryEndpointSubs);
>>
>>
>> jobs[i].setJobCredentialEndpoint(credentialEndpoint);
>>
>>
>> jobs[i].setStagingCredentialEndpoint(credentialEndpoint);
>>
>>
>>
>>                         TransferRequestType stageIn =
>> jobs[i].getFileStageIn();
>>
>>
>> stageIn.setTransferCredentialEndpoint(credentialEndpoint);
>>
>>                         jobs[i].setFileStageIn(stageIn);
>>
>>
>>
>>                         TransferRequestType stageOut =
>> jobs[i].getFileStageOut();
>>
>>
>> stageOut.setTransferCredentialEndpoint(credentialEndpoint);
>>
>>                         jobs[i].setFileStageOut(stageOut);
>>
>>
>>
>>                         DeleteRequestType fileCleanUp =
>> jobs[i].getFileCleanUp();
>>
>>
>> fileCleanUp.setTransferCredentialEndpoint(credentialEndpoint);
>>
>>                         jobs[i].setFileCleanUp(fileCleanUp);
>>
>>                   }
>>
>>
>>
>>                   jobDescription.setFactoryEndpoint(factoryEndpoint);
>>
>>                   jobDescription.setJob(jobs);
>>
>>
>>
>>
>> jobDescription.setJobCredentialEndpoint(credentialEndpoint);
>>
>>                   //set the user cred for ANY staging
>>
>>
>> jobDescription.setStagingCredentialEndpoint(credentialEndpoint);
>>
>>
>>
>>                   //set up calendar to detail termination time for the
>> resource we are about to create, this needs to be longer than the
> total
>> (including staging) job itself, resource for job
>>
>>                   //will be destroyed at this time even if the job has
>> not completed!!!!
>>
>>
>>
>>                   // set up calendar to detail termination time for
> the
>> resource
>>
>>                   //    we are about to create, this needs to be
> longer
>> than the
>>
>>                   //    total (including staging) job itself, resource
>> for job will
>>
>>                   //    be destroyed at this time even if the job has
>> not completed!
>>
>>                   Calendar cal = Calendar.getInstance();
>>
>>
>>
> cal.add(java.util.Calendar.HOUR,100+(int)(jobs[0].getMaxWallTime()/60));
>>
>>                   logger.debug("Resource lifetime is 100hrs + walltime
> =
>> " + (100+(int)(jobs[0].getMaxWallTime()/60)));
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>                   //set up calendar to detail termination time for the
>> resource we are about to create, this needs to be longer than the
> total
>> (including staging) job itself, resource for job
>>
>>                   //will be destroyed at this time even if the job has
>> not completed!!!!
>>
>>
>>
>>                   //subscibe to the job
>>
>>                   Subscribe subscriptionReq = new Subscribe();
>>
>>
>>
>>                   //create the job input which includes everything
> setup
>> previously
>>
>>                   CreateManagedJobInputType jobInput = new
>> CreateManagedJobInputType();
>>
>>                   jobInput.setJobID(new AttributedURI("uuid:" +
>> UUIDGenFactory.getUUIDGen().nextUUID()));
>>
>>
>>
>>                   jobInput.setInitialTerminationTime(cal);
>>
>> jobInput.setMultiJob(jobDescription);
>>
>>                   //subscribe to the job
>>
>>
>>
>>                   //create the job and submit to gram
>>
>>                   CreateManagedJobOutputType createResponse
>>
>>                   = factoryPort.createManagedJob(jobInput);
>>
>>
>>
>>                   //create an endpoint to reference the job
>>
>>                   EndpointReferenceType jobEndpoint =
>> createResponse.getManagedJobEndpoint();
>>
>>
>>
>>                   ManagedJobPortType jobPort =
>> ManagedJobClientHelper.getPort(jobEndpoint);
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>


Reply via email to