cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic call

SOLVED
Go to solution
Yyrkoon
Advisor

Dynamic call

Hi all,
I'm wondering how to do a real dynamic call if it is possible.
The former time I worked with COBOL I was able to modify a subrutine and after compile it changes took effect inmediately without relink caller rutine (I worked with RUMBA).
Now I use Open VMS and I'm not able to do so, if I don't relink the caller rutine it doesn't take any change done on the subroutine.

Is there any way to do that??
7 REPLIES
Wim Van den Wyngaert
Honored Contributor

Re: Dynamic call

You can produce a shareable image with the subroutine and link the main program with this. But if you put too many subroutines in the shareeble imgae, this link could take as long as the main image link.

Wim
Wim
Robert Gezelter
Honored Contributor
Solution

Re: Dynamic call

Yyrkoon,

Indeed, this is a straightforward technique that is one of the most powerful in OpenVMS.

I described this approach in "A Case Study in OpenVMS Shareable Libraries" at the Fall 1996 DECUS Symposium. The notes from that presentation can be found via: http://www.rlgsc.com/decus/usf96/index.html

Hoff and others have also published information on this approach. Note that the details of creating the transfer vector differ between VAX and Alpha/Itanium.

- Bob Gezelter, http://www.rlgsc.com
Wim Van den Wyngaert
Honored Contributor

Re: Dynamic call

But I do miss the HP MPE XL features. A dynamic library where you can update your modules. Little bit slow on initial program load but easy to maintain.

Wim
Wim
Robert Gezelter
Honored Contributor

Re: Dynamic call

Note:

The URL I posted earlier had an error.

It should have been at http://www.rlgsc.com

If the moderators can correct the error in my earlier post, it would be appreciated (and then this posting can be deleted).

- Bob
Hoff
Honored Contributor

Re: Dynamic call

>A dynamic library where you can update your modules.

The Mach and Erlang environments inherently provide this, and there are some powerful message-passing environments I'm working with now; where you can implement late linking and even upgrades.

This approach can be implemented on OpenVMS, but it's comparatively heavyweight given the process-level mechanisms present on the platform; you need to create your own middleware, or use one of the existing packages.
Yyrkoon
Advisor

Re: Dynamic call

That's perfect, thank you all.
Dennis Handly
Acclaimed Contributor

Re: Dynamic call

>Wim: I do miss the HP MPE XL features.

(That's MPE/iX.) And it has little to do with MPE, it was COBOLII/XL that did the work.

>A dynamic library where you can update your modules. Little bit slow on initial program load but easy to maintain.

I don't think we ever allowed you to unload the XL.