On 11/11/09 14:34, Glenn Knickerbocker wrote:

STATE can suppress the messages for both conditions, though, which is
why I was surprised that PIPE DISK didn't.

CMS has a venerable convention that "address COMMAND" issues
no message:

 rexx trace R; address command state q q q
     1 *-*  address command state q q q
       >>>    "STATE Q Q Q"
       +++ RC(36) +++
Ready; T=0.01/0.01 14:39:13

... it's up to the caller to analyze the return code and
issue a message.  Whereas "address CMS" issues a message:

 rexx trace R; address cms     state q q q
     1 *-*  address cms     state q q q
       >>>    "STATE Q Q Q"
DMSSTT069E Filemode Q not accessed
       +++ RC(36) +++
Ready; T=0.01/0.01 14:39:23

Does CMSTSO PIPELINES respect this convention?


However, when the operands of the command are syntactically
invalid, "address COMMAND" issues a message, regardless:

 rexx trace R; address command state q.q q q
     1 *-*  address command state q.q q q
       >>>    "STATE Q.Q Q Q"
DMSSTT062E Invalid character . in fileid Q.Q Q
       +++ RC(20) +++
Ready; T=0.01/0.01 14:40:19


I used to believe that VALIDATE was to test and suppress such
messages, but apparently not:

 rexx trace R; address command validate q.q q q
     1 *-*  address command validate q.q q q
       >>>    "VALIDATE Q.Q Q Q"
DMSSTT062E Invalid character . in fileid Q.Q Q
       +++ RC(20) +++
Ready; T=0.01/0.01 14:40:42

(Hmmm.  DMSSTT...?  Is VALIDATE a synonym for STATE nowadays?)


Of course, nowadays PIPE provides a good way to capture such
messages for analysis (I wish PIPELINES provided a construct
for grouping commands other than by redefining the separator
character.  I'll pretend):

PIPE COMMAND { PIPE < Q.Q Q Q | HOLE } | STEM MESSAGES.

-- gil

Reply via email to