Dear sir,
I modified IBM redbooks gt4 demo codes to submit a job to one grid
node (g3.grid.cn:192.168.1.179), but I got some error:
--------------------------------------------------------------
2007-12-19 11:20:36,838 DEBUG utils.WSStagingHelper
[RunQueueThread_6,setStagingStubSecurity:451]
[resourceKey:5d3455b0-ade1-11dc-8ea9-c19ea1c5a379] Using RFT
Authorization subject null
2007-12-19 11:20:36,838 DEBUG utils.WSStagingHelper
[RunQueueThread_6,setStagingStubSecurity:454]
[resourceKey:5d3455b0-ade1-11dc-8ea9-c19ea1c5a379] Staging Subject:
-->null<--
2007-12-19 11:20:36,838 DEBUG utils.WSStagingHelper
[RunQueueThread_6,setStagingStubSecurity:511] Found host and cert
configuration.
2007-12-19 11:20:36,839 DEBUG utils.WSStagingHelper
[RunQueueThread_6,submitStagingRequest:120]
[resourceKey:5d3455b0-ade1-11dc-8ea9-c19ea1c5a379] calling
RFTF.createReliableFileTransfer()
2007-12-19 11:20:37,279 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:460] Fault Class:
2007-12-19 11:20:37,280 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:461] Resource Key:
{http://www.globus.org/namespaces/2004/10/gram/job}ResourceID=5d3455b0-ade1-11dc-8ea9-c19ea1c5a379
2007-12-19 11:20:37,280 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:462] Description: Staging error for RSL
element fileStageIn.
2007-12-19 11:20:37,280 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:463] Cause: java.rmi.RemoteException:
Unable to create RFT resource; nested exception is:
org.globus.transfer.reliable.service.exception.RftException: Error
processing delegated credentialError getting delegation resource
[Caused by: org.globus.wsrf.NoSuchResourceException] [Caused by: Error
getting delegation resource [Caused by:
org.globus.wsrf.NoSuchResourceException]]
2007-12-19 11:20:37,280 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:464] State when failure occurred StageIn
2007-12-19 11:20:37,280 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:466] Script Command: StageIn
2007-12-19 11:20:37,280 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:467] GT2 Error Code: 0
2007-12-19 11:20:37,286 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:514] setting fault cause
2007-12-19 11:20:37,286 DEBUG utils.FaultUtils
[RunQueueThread_6,makeFault:519] Script Command: StageIn
2007-12-19 11:20:37,287 DEBUG
ManagedJobResourceImpl.5d3455b0-ade1-11dc-8ea9-c19ea1c5a379
[RunQueueThread_6,setFault:346] fault element name: StagingFaultType
2007-12-19 11:20:37,287 DEBUG
ManagedJobResourceImpl.5d3455b0-ade1-11dc-8ea9-c19ea1c5a379
[RunQueueThread_6,setFault:350] fault element name: StagingFault
2007-12-19 11:20:37,287 DEBUG
ManagedJobResourceImpl.5d3455b0-ade1-11dc-8ea9-c19ea1c5a379
[RunQueueThread_6,setFault:353] fault element name: stagingFault
-------------------------------------------------------------
my program (in part) is:
-------------------------------------------------------------
JobDescriptionType jobDescription = new JobDescriptionType();
List arguments = new ArrayList();
//System.out.println("WorkerDispatch.run(): argument string to
RenderWorker is '" + uriSourceService + "'" );
arguments.add( uriSourceService );
arguments.add( String.valueOf(boxNum) );
jobDescription.setArgument( (String[]) arguments.toArray(new String[0]));
jobDescription.setDirectory( "/tmp" );
NameValuePairType environment[] = new NameValuePairType[3];
javaHome.setName( "JAVA_HOME" );
javaHome.setValue( "/usr/java/j2sdk1.4.2_08" );
environment[0] = javaHome;
NameValuePairType libPath = new NameValuePairType();
libPath.setName( "LIBPATH" );
libPath.setValue( "/usr/local/globus-4.0.0/lib:/usr/lib:/lib" );
environment[1] = libPath;
NameValuePairType ldLibPath = new NameValuePairType();
ldLibPath.setName( "LD_LIBRARY_PATH" );
ldLibPath.setValue( "//usr/local/globus-4.0.0/lib" );
environment[2] = ldLibPath;
jobDescription.setEnvironment( environment );
jobDescription.setExecutable( "/tmp/runrenderworker" );
String sourcePath = "gsiftp://" + stagingFromHostField.getText() +
stagingFromPathField.getText() + "/";
String destinationPath = "gsiftp://" + nodeHostname + "/tmp/";
TransferType transfers[] = new TransferType[18];
transfers[0] = new TransferType();
transfers[0].setSourceUrl( sourcePath + "runrenderworker" );
transfers[0].setDestinationUrl( destinationPath + "runrenderworker" );
transfers[1] = new TransferType();
transfers[1].setSourceUrl( sourcePath + "RenderWorker.jar" );
transfers[1].setDestinationUrl( destinationPath + "RenderWorker.jar" );
... ...
transfers[16] = new TransferType();
transfers[16].setSourceUrl( sourcePath + "batik-xml.jar" );
transfers[16].setDestinationUrl( destinationPath + "batik-xml.jar" );
TransferRequestType transferRequestType = new TransferRequestType();
transferRequestType.setTransfer( transfers );
jobDescription.setFileStageIn( transferRequestType );
TransferType transfersBack[] = new TransferType[1];
transfersBack[0] = new TransferType();
String jpegName = jpegStub + "-" + boxX + "-" + boxY + ".jpg";
String jpegSource = destinationPath + jpegName;
String jpegPath = resultPathField.getText() + "/" + jpegName;
String jpegDestination = "gsiftp://" + resultHostField.getText() + jpegPath;
transfersBack[0].setSourceUrl( jpegSource );
transfersBack[0].setDestinationUrl( jpegDestination );
TransferRequestType transferRequestTypeBack = new TransferRequestType();
transferRequestTypeBack.setTransfer( transfersBack );
jobDescription.setFileStageOut( transferRequestTypeBack );
GlobusCredential userGlobusCred = GlobusCredential.getDefaultCredential();
ClientSecurityDescriptor secDesc = new ClientSecurityDescriptor();
secDesc.setGSITransport(Constants.ENCRYPTION);
secDesc.setAuthz(HostAuthorization.getInstance());
String
delegationUri="https://"+nodeHostname+":8443/wsrf/services/DelegationFactoryService";
EndpointReferenceType delegFactoryEndpoint =
AddressingUtils.createEndpointReference(delegationUri,null);
X509Certificate certToSign =
DelegationUtil.getCertificateChainRP(delegFactoryEndpoint,secDesc)[0];
EndpointReferenceType credentialEndpoint =
DelegationUtil.delegate(delegationUri,userGlobusCred,certToSign,1200,false,secDesc);
jobDescription.setJobCredentialEndpoint(credentialEndpoint);
jobDescription.setStagingCredentialEndpoint(credentialEndpoint);
TransferRequestType StageIn = jobDescription.getFileStageIn();
StageIn.setTransferCredentialEndpoint(credentialEndpoint);
TransferRequestType StageOut = jobDescription.getFileStageOut();
StageOut.setTransferCredentialEndpoint(credentialEndpoint);
DeleteRequestType CleanUp = jobDescription.getFileCleanUp();
CleanUp.setTransferCredentialEndpoint(credentialEndpoint);
jobDescription.setStdout( "/tmp/stdout" );
jobDescription.setStderr( "/tmp/stderr" ) ;
GramJob gramJob = new GramJob(jobDescription);
EndpointReferenceType factoryEndpoint = null;
try
{
factoryEndpoint =
ManagedJobFactoryClientHelper.getFactoryEndpoint("https://" +
nodeHostname + ":8443/wsrf/services/ManagedJobFactoryService",
ManagedJobFactoryConstants.FACTORY_TYPE.FORK);
}
catch(Exception e)
{
System.err.println("WorkerDispatch.run(): failure getting factory
endpoint for GRAM job: ");
}
try
{
gramJob.submit(factoryEndpoint, false);
}
--------------------------------------------------------------------------
I am a newbie in gt, so pls give me some help, thanks a lot.
---
Wan Lin