× 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.


  • Subject: Re: Quick ILE question about service programs
  • From: Jim Langston <jimlangston@xxxxxxxxxxxxxxxx>
  • Date: Fri, 27 Apr 2001 16:06:38 -0700
  • Organization: Pacer International

Okay, let me see if I have this straight...

I created 3 modules, CARTAGE, DATETIME, SYSTEM.  I then created 2 service
programs from these 3 modules, CARTAGE and GENERAL.  Then I created a binding
directory from these 2 service programs, CARTAGE.  

When I compile my program BSTORDADD it uses this header:
H DftActGrp( *No ) BndDir('CARTAGE') 

I am using 2 different methods to call the functions in the modules in my 
program:
C                   Eval      FileSuffix = GetNextSuffix(FilePrefix) 
C                   CallP     CloseCCOHD  

Eval when the function is returning a value, CallP when the function is not
returning a value.

Now.  What is included in my *PGM?  I was thinking the only thing that would
be included in the *PGM object would be the source file, BSTORDADD and that
the modules included in the 2 service programs would be loaded at run time.

Am I wrong?

Regards,

Jim Langston

Me transmitte sursum, Caledoni!

"DeLong, Eric" wrote:
> 
> Ok, here's my take.....
> 
> Module objects are bound directly into the program or service program. That
> is, since a module contains executable code (more or less), you've
> essentially done a /copy. You've made a bigger program because the
> executable code has been bound directly into the compiled program object.
> 
> Service programs are bound by reference only. As each service program has
> details about the public and private methods contained within it (binder
> language), the compiler retrieves the address and interface details of the
> exported procedure from the service program and binds that into the program
> rather than the actual executable code. This keeps the program object
> smaller since that executable code was not actually copied into the program
> referencing the exported method. You're really just calling an external
> proc, just like a dynamic call in RPG400. But because the address and
> interface of the program/procedure is determined at compile time, you save a
> heap of work involved in the dynamic call.......
> 
> That really didn't come out like I wanted it to. If this doesn't make any
> sense, let me know and I'll try to do better.
> 
> hth,
> Eric DeLong
> 
> -----Original Message-----
> From: Jim Langston [mailto:jimlangston@conexfreight.com]
> Sent: Friday, April 27, 2001 4:03 PM
> To: RPG400-L@midrange.com
> Subject: Re: Quick ILE question about service programs
> 
> When you use the C functions, you bind with the directory QC2LE.
> 
> I am a little fuzzy myself and when the modules are included in the *PGM
> object and when they aren't.  It is my understanding, which may be wrong,
> that when I CRTBNDRPG I am not including the modules into my *PGM file, but
> just linking to them at run time.
> 
> It should be the same with the QC2LE, these modules should just be linked
> so that at run time the OS will load the module and run the code.
> 
> Anyone have a different angle on this?
> 
> Regards,
> 
> Jim Langston
> 
> Slava Zharichenko wrote:
> >
> > Hi,
> > i am reading 'Who Knew you....' and finding it very helpful. It written in
> > the plain language and have a bunch of examples, i start reading it and
> > could not stop until reached Chapter 5.
> >
> > I have a question about service program and binding and i think i have an
> > answer but not 100% sure.
> >
> > If i create service program which includes some of system supplied
> > procedures like C math for example, will service program object contain
> > those procedures or it will just bind them the way CRTPGM does? I think i
> > understand correctly when program is created by binding Main procedure
> with
> > service program , service program itself is not 'added' to the Main PGM it
> > just being 'bind' to it for quick address resolution e.t.c
> >
> > Thank you
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-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 thread ...

Follow-Ups:
Replies:

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.