On 12-Feb-2014 11:37 -0800, CRPence wrote:
On 12-Feb-2014 11:23 -0800, Gqcy wrote:
I am trying to use the QMHSNDPM api, but sending a message to the
history log (creating a CPF9898 text message)...
If I use *EXT instead of *HSTLOG, I do get the message to break to
my screen, but I can't get *HSTLOG to work... <<SNIP>>
Given the special value *HSTLOG is an apparent attempt to direct the
message to the message queue object QHST in QSYS [though as I recall,
I had noticed that the OS may utilize incorrectly a value of QHST in
*LIBL], perhaps to circumvent an apparent issue with what presumably
is a supported special value, just code the value as?:
msgmsgq='QHST QSYS '
Although the CL command Send Program Message (SNDPGMMSG) supports
sending a message either to a program message queue [including the
"external" program message queue; aka *EXT] or to message queue (*MSGQ)
objects, the Send Program Message API has no extension similarly to
enable sending a message to an message queue (*MSGQ) object. Thus there
is no support for the special values *SYSOPR or *HSTLOG as in the Send
to non-pgm message queue (TOMSGQ) parameter of SNDPGMMSG, lacking any
means to specify an message queue object name. The variable named
MsgMsgQ is not a 20-byte argument to name an external message queue, but
is a variable size argument to specify the Call Stack Entry details:
<
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/apis/QMHSNDPM.htm>
_Send Program Message (QMHSNDPM) API_
"...
The Send Program Message (QMHSNDPM) API sends a message to a call
message queue or the external message queue. (The external message queue
is the part of the job message queue that handles messages between an
interactive job and the work station user. It is not associated with a
specific call stack entry.)
...
To send a message to a nonprogram message queue,
see _Send Nonprogram Message (QMHSNDM) API_
<
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/apis/QMHSNDM.htm>
...
_Call stack entry_
INPUT; CHAR(*) or Pointer
The call stack entry to send the message to, or the call stack entry to
start counting from when using a value other than 0 for the Call stack
counter parameter. The call stack entry you specify must be in the call
stack. You can also specify the external message queue.
You can specify a call stack entry by providing the name of the OPM
program or ILE procedure running in the entry, by providing an
invocation pointer to the call stack entry, or by using one of the
following special values:
* The current call stack entry (that is, the one in which the
program or procedure is using this API is running).
...
*EXT The external message queue. The Call stack counter parameter
is ignored. You cannot send escape or command messages to this message
queue. If you are sending an inquiry message, you must specify this
message queue. If you are sending a status message to *EXT in an
interactive job, the message is displayed at the bottom of the current
job's display station.
..."
As an Amazon Associate we earn from qualifying purchases.