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