David Stephens wrote:
Hi Art,

I didn't find any noticeable performance degradation using DLLs vs static binding. However I haven't done any serious testing.

Some other thoughts off the top of my head:

- DLLs have to be re-entrant - no problem with C modules, but your Assembler modules may need some tweaking. - XPLINK and non-XPLINK really don't mix. So if one module is called by both, you'll either need two flavours (XPLINK and non-XPLINK), or write an Assembler 'glue' routine that somehow gets around the problem. Two flavours is much easier. - If you're writing an Assembler module DLL to be called by an XPLINK module, you'll need to use the EDCXPRLG and EDCXEPLG macros in place of the normal LE CEEENTRY and CEETERM macros. - If you have a C module with functions (no mainline code), I found that you still need a main() statement to create a CEEENTRY entry point for your module. Without this, LE won't play with your module. - It took me some time to figure out side files, and that you need to include them when binding the modules that will call your DLLs. - It sounds like you've only got C programs calling DLLs, which is fine. If you have COBOL or PL/1 programs, it's a lot harder.

Why do you say that? We have a couple of courses on creating
and using DLLs in multiple languages (Assembler, COBOL, PL/I,
and C) and it works fine. We have avoided XPLINK issues so I
can't comment on that; but in the non-XPLINK world I have had
no problems with DLLs.

See "Secrets of Inter-Language Communication in z/OS", a 3.5
day course that covers: declaring elementary items, structures,
and arrays; passing and receiving arguments, including return
values; static, dynamic, and DLL linkages, in Assembler, COBOL,
PL/I, and C; plus a lot more. Details:

  http://www.trainersfriend.com/Language_Environment_courses/m520descr.htm

We also offer a one day extract of this course, "Creating and
Using DLLs in z/OS". Details:

  http://www.trainersfriend.com/Language_Environment_courses/m525descr.htm




If you haven't found it already, the article at http://www.ibm.com/developerworks/aix/library/au-bordercrossing/?S_TACT=105AGY06&; talks a lot about DLLs and XPLINK, and has other handy links.

David

Art Celestini wrote:
We have a variety of "CSECTs" that are statically bound into several different load modules. These are mainly IBM C programs with a smattering of Assembler. We are considering moving these into a set of DLLs to reduce redundancy and simplify maintenance. I am interested in any guidance list contributors might be willing to offer in terms of dos and don’ts, gotchas, etc. regarding DLLs, especially as it may apply to performance. One consideration is that many of these modules are used in both batch and CICS, and in both XP- Link and non-XP-Link environments. We are not opposed to the notion of creating multiple DLLs for these different environments, if necessary.
Thanks in advance,
Art





==================================================
Art Celestini       Celestini Development Services
Phone: 201-670-1674                    Wyckoff, NJ



Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

  z/OS Application development made easier
    * Our classes include
       + How things work
       + Programming examples with realistic applications
       + Starter / skeleton code
       + Complete working programs
       + Useful utilities and subroutines
       + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to