× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 07-Jan-2014 10:38 -0800, Pascal Polverini wrote:

I get an escape message.
I/O error CPF5037 was detected in file MYDSPF(C G D F).

<<SNIP>>

The CPF5037 is almost surely sent as a /notify/ message, for which an ILE Condition Handler likely is required to avoid that RPG run-time handler from intercepting the condition [and sending the inquiry if necessary error handling is not in effect for what I infer is a 1299 condition; error RNX1299 with inquiry RNQ1299]. Spool the joblog [and\or review the actual logged CPF5037 with the F1=Help and with F9=Details and\or output from F6=Print] to verify that is the case, and to see the originator. Do the same for the [default] reply.

Some doc references that might help. Do not /get hung-up on/ the references to CL in the drill-down or supporting text in my snippets-only doc references; visit each link for complete details:

http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rbam6/enmsg.htm
IBM i 7.1 Information Center -> Programming -> Control language -> Messages -> Commands used to send messages from a CL program
_Escape and notify messages_
"...
A notify message tells the caller about a condition under which processing can continue. The calling program or procedure can monitor for the arrival of the notify message and handle the condition it describes. If the caller is an Integrated Language Environment® procedure, it can perform the following functions:

• It can handle the condition.
• It can send a reply back to the caller.
• It can allow the sending procedure to continue processing.

If the caller is an original program model (OPM) program and is not monitoring for the message, the sender receives a default reply. If the caller is an ILE procedure, then the message percolates to the control boundary. When finding no monitor, the system returns a default reply to the sender. The sender then resumes processing.
..."


http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rzasc/sc092507345.htm
IBM i 7.1 Information Center -> Programming -> Programming languages -> RPG -> ILE RPG Programmer's Guide -> Debugging and Exception Handling -> Handling Exceptions
_ILE Condition Handlers_
"ILE condition handlers are exception handlers that are registered at run time using the Register ILE Condition Handler (CEEHDLR) bindable API. They are used to handle, percolate or promote exceptions. The exceptions are presented to the condition handlers in the form of an ILE condition. You can register more than one ILE condition handler. ILE condition handlers may be unregistered by calling the Unregister ILE Condition Handler (CEEHDLU) bindable API.

There are several reasons why you might want to use an ILE condition handler:

• You can bypass language-specific handling by handling the exception in your own handler.

This enables you to provide the same exception handling mechanism in an application with modules in different ILE HLLs.
..."


http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/apis/CEEHDLR.htm
_Register a User-Written Condition Handler (CEEHDLR) API_
"...
The Register a User-Written Condition Handler (CEEHDLR) API registers a user-written condition handler for the current call stack entry.
...

_ILE Condition Handler Interface_

Following is a description of the interface that the system uses to communicate with ILE condition handlers.
...

result_code (output)

This field contains the instructions from the condition handler to the system regarding the actions that the system should take.

ILE condition handlers get control for all *ESCAPE, *STATUS, *NOTIFY, and function check messages. Not all result code actions are valid for all types of messages.

If the message is handled by the ILE condition handler, the result-code action is not performed.

...
Valid result codes are:

Resume
This result code can be used for all exception types.
10 Resume at the resume cursor, and handle the condition, as follows:
...
*NOTIFY The default reply is sent and the message appears in the job log.
..."

http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rbam6/ntmsg.htm
IBM i 7.1 Information Center -> Programming -> Control language -> Messages -> Monitoring for messages in a CL program or procedure
_Monitoring for notify messages_
"...
Notify messages are sent to tell your procedure or program of a condition that is not typically an error. By monitoring for notify messages, you can specify an action different from what you would specify if the condition had not been detected. Very few IBM-supplied commands send notify messages.

Monitoring for and handling notify messages is similar to monitoring for and handling escape messages. The difference is in what happens if you do not monitor for and handle notify messages. ...
..."


http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rzasc/sc092507348.htm
IBM i 7.1 Information Center -> Programming -> Programming languages -> RPG -> ILE RPG Programmer's Guide -> Debugging and Exception Handling -> Handling Exceptions
_Problems when ILE CL Monitors for Notify and Status Messages_
"...
... if the ILE RPG procedure writes a record to a printer file and the actual printer file has a shorter record length that was declared in the RPG procedure, notify message CPF4906 is sent to the RPG procedure. The RPG exception handling percolates this message which causes the default reply of 'I' to ignore the message. This should allow the output operation to continue normally, and the RPG procedure should proceed to the next instruction.
...
If you encounter this problem, you have two possible ways to avoid it:
...
2. Enable an ILE condition handler in the RPG procedure. In the handler, if the message is one that you want to ignore, indicate that the message should be handled. Otherwise, indicate that it should be percolated.
...
Figure 147 shows an example of a ILE condition handler that ignores CPF4906.
..."



As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.