Recently, I wrote a simple JavaCOG program which makes use of the globus middleware installed on gridfarm001. Four kinds of objects in the program are important:
- Task--abstraction of the work you want to execute on remote machines.
- JobSpecification
- Service--local representation of remote service.
- TaskHandler
To appropriately set
Service object, other two objects are necessary:
- ServiceContact -- specifies endpoint (host and port) you want to interact with.
- SecurityContext--specifies the credential you will use to do the authentication by server.
Because
Service is local representation of remote grid service,
provider must be specified to complete the translation between upper abstraction and underlying infrastructure. In my case, the underlying infrastructure is Globus. However I don't know the version of Globus. At first, I used
provider GT4. However, the program seemed not to have effect before being terminated antomatically. I added additional debugging and logging statements, but nothing was generated. I debugged it step by step, I found that the program was terminated when the handler submitted the task. Then I tried the command line tool provided by JavaCOG and it worked. So I ensured that some configurations in my program were incorrect. Finally, I found that it was because of the version of Globus. Gridfarm installs GT2. I didn't know that and assumed it was GT4. So I used GT4 as the service provider. Then you know the result... One bad thing is that my program didn't give any useful information before being terminated. No exception could be caught. I don't know why.
1 comment:
GF1 has GT2 installed so use that provider.
Post a Comment