|
David Gibbs wrote: >I've got a particularly perplexing problem with a MCH3601 exception. > >I understand that this error is often caused by a missing, or incorrectly >specified, parameter on a program call. Unfortunately, I can't figure out >where the parameter error is. I've looked at everything near the failure >point, both RPG and CL, and everything jives with the docs. David, the coding error could have happened long before the MCH3601, maybe even in an earlier program. What operation are you doing when the MCH occurs? Try copying the exact operation to earlier in your code. If it works ok, move it later until you track down where the problem start from. (It's not always possible to move operations around, but often it is, even if you have to hardcode key values etc.) Another technique we've used is to add huge amounts of padding to the ends of variables used as parameters. If that makes the problem go away, all you have to do is set the padding areas to some value like all 'z' or something, and when the failure occurs, see which padding area has been changed. Then track down where that variable is changed, using the debugger watch command. A common source of MCH3601 is misusing the receive-data-queue API, thinking that the third(?) length parameter is for you to say how long your receiver is. Actually, it's for the API to pass back how much it gave you, so you have to declare the receiver at least as long as the maximum queue entry. Barbara Morris +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
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.