JSV Verification Process

Grid Engine Home > Administering > Using Job Submission Verifiers >

JSV Verification Process

After you have configured the necessary JSV(s) and you submit a job, the verification process begins. All configured JSVs are executed in the order described below. Each configured client JSV instance communicates directly with the client process and each configured server JSV instance communicates directly with the master daemon process. For more information on how JSVs communicate with the client process or the master daemon, see the JSV Communication Protocol page. Using an example, the verification process is described in the below.

Order that the System Executes JSVs

Note
Only administrators can configure client JSVs in the global request file or server JSVs in the global configuration. These JSVs are always executed last.

Sun Grid Engine executes JSV instances in the following order:

Order of Execution JSV Type Configuration Location JSV Trigger Submitted by
1 client JSV command line -jsv jsv_url used with a submit client (qsub, qrsh, qsh, and qmon) any user
2 client JSV $cwd/.sge_request file -jsv jsv_url any user
3 client JSV $HOME/.sge_request file -jsv jsv_url any user
4 client JSV $SGE_ROOT/$SGE_CELL/common/sge_request file -jsv jsv_url administrator or user with administrative privileges
5 server JSV global configuration jsv_url parameter administrator or user with administrative privileges

Duration of of the JSV Verification Process

The verification process stops when one of the following occurs:

  • All configured JSVs deliver an accept result.
  • All configured JSVS deliver either an accept or accept with correction result.
  • One JSV delivers a reject or a reject later result.

Example – JSV Verification Process

For the purposes of this example, the following JSVs are configured:

Order of Execution JSV Type Configuration Location JSV Trigger Submitted By Description
1 client JSV $HOME/.sge_request file -jsv /home/Mike/jsvA.sh any user The script /home/Mike/jsvA.sh adds user Mike to each job specification (using -l attr=$USER) before it is accepted into the Grid Engine system.
2 client JSV $SGE_ROOT/$SGE_CELL/common/sge_request file -jsv /sge_root/jsvB.sh administrator or user with administrative privileges The script /sge_root/jsvB.sh rejects binary jobs (submitted with -b y). All other jobs are accepted.
3 server JSV global configuration jsv_url /sge_root/jsvC.sh administrator or user with administrative privileges The sge_root/jsvC.sh script accepts all jobs that don't contain a h_vmem resource request.
Scenario A
  1. A job is submitted using qsub script.sh.
  2. The first JSV instance, that contains the /home/Mike/jsvA.sh script, changes the job submission from qsub script.sh to qsub -l attr=Mike script.sh. The job is then passed to the second JSV instance.
  3. The second JSV instance, that contains the /sge_root/jsvB.sh script, accepts the job because it is not a binary job. The job is then passed to the third JSV instance.
  4. The third JSV instance, that contains the /sge_root/jsvC.sh script, also accepts the job because it has no h_vmem in its specification.
  5. The job is created.
Scenario B
  1. A job is submitted using qsub -b y.
  2. The first JSV instance, that contains the /home/Mike/jsvA.sh script, changes the job specification from qsub -b y to qsub -l attr=Mike -b y. The job is then passed to the second JSV instance.
  3. The second JSV instance, that contains the sge_root/jsvB.sh script, rejects the job because it is a binary job. The verification process stops.
  4. The user who submitted the job receives an error message.
Scenario C
  1. A job is submitted using qsub -l attr=PETER,hvmem=3G script.sh.
  2. The first JSV instance, that contains the /home/Mike/jsvA.sh script, changes the job specification from qsub -l attr=PETER,hvmem=3G script.sh to qsub -l attr=Mike,hvmem=3G script.sh. The job is then passed to the second JSV instance.
  3. The second JSV instance, that contains the /sge_root/jsvB.sh script, accepts the job because it is not a binary job. The job is then passed to the second JSV instance.
  4. The third JSV instance, that contains the /sge_root/jsvC.sh script, rejects the job because it contains hvmem.
  5. The user who submitted the job receives an error message.

Participate
Have a best practice to share? Questions? Suggestions? Comments?

Learn More
For more on this topic, check out the following resources:

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact