×
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.
Il 15/04/2026 22:48, smith5646midrange@xxxxxxxxx ha scritto:
If I have PgmA and it repeatedly calls PgmB, I know not setting on LR makes
the process faster because it doesn't have to reload PgmB into memory every
time.
The argument that we are having is related to PgmA submitting PgmB to enable
multi-thread processing. Does not setting on LR help in this case because
they are different jobs?
For example,
PgmA
Do until shutdown
Read Invoice Header File for unprocessed invoices
If a new invoice is found
Mark the invoice as In-Process
Submit PgmB to process the invoice
PgmB
Process invoice based on invoice number received
Mark invoice as Processed
** Note: no *INLR logic here
Return
VS
Process invoice based on invoice number received
Mark invoice as Processed
*inlr = *on
Return
don't know how many invoices you process and how big is your box, if the PgmA
and PgmB are both OPM, ILE or mixed, also don't know if there's any concurrent
job on the same files and tables as all these information would be helpful on
planning the best way to make your pgms work, anyway in some of the systems
where i worked there are ten of thousands of invoices processed per day, simply
thousands in the smallest ones, a great benefit came from introducing service
programs and implementing ile architecture and full sql access delegating al I/O
and reading from files to procedures within a srvpgm's object.
Let's say that instead of submitting PgmB (is an interactive or a batch job?)
you defined it as a procedure of a service program exported, so lets's say you
did something this way:
returnCode=processInvoice(invoiceNumber);
if returnCode='ok'; //it all went well
//do something or nothing
elseIf returnCode<>'ok';
//do something else
endif;
and in another module:
dcl-proc processInvoice export;
dcl-pi *n like(returnCode);
invoiceNumber int(10);
end-pi;
dcl-s retCode char(35);
//marck the invoice as in process
invoiceInProcess(invoiceNumber);
//then process the invoice
//then mark the invoice as processed
invoiceProcessed(invoiceNumber);
return retCode;
end-proc;
in really big volumes this saves some resources, i've seen it happens with my eyes
As an Amazon Associate we earn from qualifying purchases.