Provided by: gridengine-drmaa-dev_6.2u5-7.3_amd64 bug


       drmaa_init, drmaa_exit - Start/finish Sun Grid Engine DRMAA session


       #include "drmaa.h"

       int drmaa_init(
              const char *contact,
              char *error_diagnosis,
              size_t error_diag_len

       int drmaa_exit(
              char *error_diagnosis,
              size_t error_diag_len


       The  drmaa_init()  function  initializes  the  Sun  Grid  Engine DRMAA API library for all
       threads of the process and creates a new DRMAA session. This routine must be  called  once
       before  any  other  DRMAA  call, except for drmaa_version(3), drmaa_get_DRM_system(3), and
       drmaa_get_DRMAA_implementation(3).  Except  for  the  above  listed  functions,  no  DRMAA
       functions  may  be  called before the drmaa_init() function completes.  Any DRMAA function
       which  is  called   before   the   drmaa_init()   function   completes   will   return   a
       DRMAA_ERRNO_NO_ACTIVE_SESSION  error.  Contact is an implementation dependent string which
       may be used to specify which Sun Grid Engine cell to use. If contact is NULL, the  default
       Sun  Grid  Engine  cell  will  be  used.  In  the  1.0 implementation contact may have the
       following   value:   session=<session_id>.    To    determine    the    session_id,    the
       drmaa_get_contact(3)  function  should  be  called  after  the  session  has  already been
       initialized.  By passing the session=<session_id> string  to  the  drmaa_init()  function,
       instead  of  creating  a  new  session,  DRMAA  will  attempt  to reconnect to the session
       indicated by the session_id.  The result of reconnecting to a previous session is that all
       jobs  previously submitted in that session that are still running will be available in the
       DRMAA session.  Note, however, that jobs which ended before the call to  drmaa_init()  may
       not be available or may have no associated exit information or resource usage data.

       The  drmaa_exit()  function  closes  the  DRMAA session for all threads and must be called
       before process termination.  The drmaa_exit() function may be called only once by a single
       thread  in  the  process  and  may  only  be  called  after  the drmaa_init() function has
       completed.  Any DRMAA function, other  than  drmaa_init(3),  which  is  called  after  the
       drmaa_exit() function completes will return a DRMAA_ERRNO_NO_ACTIVE_SESSION error.

       The  drmaa_exit()  function  does necessary clean up of the DRMAA session state, including
       unregistering from the qmaster(8).  If  the  drmaa_exit()  function  is  not  called,  the
       qmaster  will  store  events  for the DRMAA client until the connection times out, causing
       extra work for the qmaster and consuming system resources.

       Submitted jobs are not affected by the drmaa_exit() function.


       SGE_ROOT       Specifies the location of the Sun Grid Engine standard configuration files.

       SGE_CELL       If set, specifies the default Sun Grid Engine cell to be used. To address a
                      Sun Grid Engine cell Sun Grid Engine uses (in the order of precedence):

                             The name of the cell specified in the environment variable SGE_CELL,
                             if it is set.

                             The name of the default cell, i.e. default.

                      If set, specifies that debug information should be written  to  stderr.  In
                      addition  the  level  of  detail in which debug information is generated is

                      If set, specifies the tcp port on which  the  sge_qmaster  is  expected  to
                      listen  for communication requests.  Most installations will use a services
                      map entry instead to define that port.


       Upon successful completion,  drmaa_init()  and  drmaa_exit()  return  DRMAA_ERRNO_SUCCESS.
       Other  values  indicate  an  error.   Up  to  error_diag_len  characters  of error related
       diagnosis information is then provided in the buffer error_diagnosis.


       The drmaa_init() and drmaa_exit() functions will fail if:

       Unexpected or internal DRMAA error, like system call failure, etc.

       Could not contact DRM system for this request.

       The specified request is not processed successfully due to authorization failure.

       The input value for an argument is invalid.

       The drmaa_init() will fail if:

       Initialization failed due to invalid contact string.

       Could not use the default contact string to connect to DRM system.

       Initialization failed due to failure to init DRM system.

       Initialization failed due to existing DRMAA session.

       Failed allocating memory.

       The drmaa_exit() will fail if:

       Failed because there is no active session.

       DRM system disengagement failed.