![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I have a command file containing the following line: $ write sys$output f$getqui("DISPLAY_JOB","LOG_SPECIFICATION",,"THIS_JOB") When submited without a /LOG qualifier, on OpenVMS VAX V6.2, it writes the fully specified log file name to the log file. On OpenVMS Alpha V7.1, it writes nothing (which is what you would expect from reading other Ask the OpenVMS Wizard entries). I like the VAX 6.2 behavior better, though. I have old VAX code that seems to expect the Alpha behavior. Why the difference? The Answer is : The F$GETQUI LOG_SPECIFICATION itemcode is defined to be: the log file specification that was provided to the $SNDJBC service to create the job. Therefore, if you do not provide one -- which is what happens if you omit /LOG=file -- then LOG_SPECIFICATION is and should be null. While there may be a reasonable preference for the OpenVMS V6.2 behaviour, that doesn't necessarily make it correct nor appropriate. The OpenVMS Wizard has found that all versions of OpenVMS -- both VAX and Alpha -- except OpenVMS Alpha V6.2 -- are consistent in that they all return a null string for SJC$_LOG_SPECIFICATION if the log file name is omitted from the /LOG qualifier. This is also consistent with the OpenVMS documentation. Checks were performed with OpenVMS VAX V5.5-2, V6.1, V6.2, V7.2, V7.3, and OpenVMS Alpha V6.1, V6.2, V7.2, V7.3. Note too here that OpenVMS VAX V6.2 behaviour is consistent with all other releases tested, and only OpenVMS Alpha V6.2 behaves as you have described. Why is this the case? Does that really matter? The central issue here is that OpenVMS Alpha V6.2 is and was an anomoly, and the behaviour is unlikely to be changed on all other releases to match that behaviour. To change such behaviour can and would cause problems -- and clearly, the unusual behaviour of OpenVMS Alpha V6.2 was noticed and corrected. All this being the case or not, you can find the log specification with the following DCL: $ log_specification=f$getqui("display_job","log_specification",,"this_job") $ IF log_specification.EQS."".AND.- .NOT.f$getqui("display_job","job_log_null",,"this_job") $ THEN $ log_specification=f$parse("",- f$getqui("display_job","job_name",,"this_job"),"sys$login:.log") $ ENDIF Note too that this code also takes into account JOB_LOG_NULL -- it will return a null string if the job was submitted with /NOLOG Existing discussions of the f$getqui lexical include the following topics: (813), (1240), (2159), (3951), (4546), (4568), (4903), (5188) (5471), (5567), (5651), (5793), (5982), (6315), (6877), (9130), (9863), etc.
|