I have a very simple exec that has a pipe that, reduced to its simplest form, looks like this:
/* TEST EXEC */
ipaserver = 'IPSERV'
say 'IPSERV returned' getip()
exit
getip:
'CP SET MSG IUCV'
arg ipaddr .
'PIPE (end \ name GetIPA)',
'\ starmsg *msgall cp smsg' ipaserver 'GETIP' ipaddr,
'| pick substr w1 of 9-* == /'ipaserver'/',
'| take 1',
'| spec 17-* 1',
'| b: beat 15 /-99 Timeout waiting for the IP Address
server./',
'| fi: faninany',
'| take 1',
'| var ipresp',
'| pipestop',
'\ b:',
'| copy',
'| fi:'
parse var ipresp iprc ipresp
if iprc ¬= 0 then call exit iprc, ipresp
return ipresp
exit:
parse arg myrc, msg
if msg ¬= '' then say msg
exit myrc
If this EXEC is executed from the command line, the IP Address is returned as
expected. It is also returned if called by another simple exec. If another exec
is inserted into the mix, there is always an error that consists of the message
from IPSERV being displayed on the console and, some seconds later, a timeout
message from the above EXEC.
The two other EXECs do nothing other than call the next in line. Thus, TEST1
consists of a 'EXEC TEST' command'; TEST2 consists of a 'EXEC TEST1' command.
The 3 cases are:
1. TEST command entered from the command line. (works - message trapped by
the pipe)
2. TEST1 entered from the command line. (works)
3. TEST2 entered from the command line. (message is not trapped and a
timeout occurs approximately 15 seconds after the message is displayed)
Is this normal? Or even explainable?
pipe q
FPLINX086I CMS/TSO Pipelines, 5741-A05/5655-A17 1.0110 (Version.Release/Mod) -
Generated 11 Oct 2005 at 12:04:21
q cmslevel
CMS Level 22, Service Level 701
Regards,
Richard Schuh
