Dear all, this discussion thread is intended to finalize the job sub-state discussion from the last phone conference. Quoting from the DRMAA2 Draft2: "The jobStatus() method SHALL return the job status, together with an implementation specific sub state. This is intended to be a more detailed description of the current DRMAA job state, for example the specific kind of HOLD state (user-triggered, system-triggered). It MUST be allowed by the language binding to not retrieve this information (e.g. by passing a NULL value). Applications SHOULD NOT expect this information to be available in all cases." Daniel T. did a great job in summarizing the current discussion status, which is about the data type for this sub-state information. We have three alternatives: integer, string, or untyped struct / object pointer. All three constructs are expressible in IDL. Strings require string comparison, which is only natural in scripting languages. Integers might look inappropriate if the language supports native enumerations. In all three cases, the returned information must be interpreted according to DRM-specific information (header file / type definition). This normally leads to a build dependency, e.g. in the form of DRM- specific string constants, numerical constants, or type definitions. In all three cases, moving a binary DRMAA application with sub-state usage to another DRM brings up a problem. With pointers, the application is likely to crash (ClassCastException, SEGFAULT). With integers, the application will perform wrong, since a wrong numerical match occurs. With a string, no match will occur in most cases, so the application will at least behave differently. Last remark: For implementation-specific JT attributes, we have a lengthly discussion in the document of how to deal with DRM-specific data types (introspection, late binding). This can be counted as consistency argument for the object pointer approach. /Peter.