Operating System - OpenVMS
1829579 Members
5627 Online
109992 Solutions
New Discussion

Re: %RMS-F-DME, dynamic memory exhausted

 
da1nonly1
Advisor

%RMS-F-DME, dynamic memory exhausted

I have a problem that when I run a batch job that runs some FOCUS programmes I get the following error message:
%RMS-F-DME, dynamic memory exhausted
I get this when FOCUS process records. I guess FOCUS works above RMS. I don’t know how much it helps but if I do under my ID (which is different than the job user ID)
$SHOW RMS
I get this (I put in peices):

MULTI- |
BLOCK |
COUNT |
Process 0 |
System 16 |

MULTIBUFFER COUNTS
Indexed Relative

16 0
0 0

MULTIBUFFER COUNTS
Sequential |
Disk Magtape Unit Record |
16 16 16 |
0 0 0 |


| NETWORK
| BLOCK
| COUNT
| 0
| 8

Prolog Extend Quantity
0 0
0 0


What can be the reason and how it can be fixed?

Thanks for the answers.
5 REPLIES 5
Hein van den Heuvel
Honored Contributor

Re: %RMS-F-DME, dynamic memory exhausted

Did it ever work? What changed?

Tried google? : +rms +dme +site:itrc.hp.com

It points to a topic which appear very relevant:

http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=1079608

Tried VMS HELP? $HELP/MESS DME

About your RMS settings...

Is that output from an interactive session or a batch job submitted under the same username as the used for the focus job?

The multi blcok count is low @16.
The default these days is 32 and may well offer better performance.

The multi buffer count for sequential files setting o6 16 is non-standard, unlikely to help, and may cause the problem.
More than 1 buffers helps, but I've seen rapidly diminishing return for more than 4 buffers.
I suggest you try lowering those to 2 or 4.

Also, they are set at the process level in a (sy)login.com. Be sure to check that logic.

hth,
Hein.
labadie_1
Honored Contributor

Re: %RMS-F-DME, dynamic memory exhausted

Can you add some
$ sh proc/memory

in various places in your code and post the values ?
comarow
Trusted Contributor

Re: %RMS-F-DME, dynamic memory exhausted

I don't have time to look up a reference, but
I believe it could be related to pio_pages.

It has to do with RMS global buffering.
GuentherF
Trusted Contributor

Re: %RMS-F-DME, dynamic memory exhausted

By default local buffers start out in P1 space defined by a LINKER switch. If exhausted it automatically flows over to the top of P0 region. Eventually the epxand P0 region might fail and you get a DME error.

Global buffers always are mapped in P0/P2 region (never in PIOPAGES in P1 region).

Files opened by DCL commands have their RMS structures allocated in PIOPAGES in P1 space. This space is fixed sized by SYSGEN parameter PIOPAGES.

With DME error the process either has too many files opened by DCL. Or, too many files opened by the program. Or, files opened and closed not in a FIFO order thus expanding P0 region over-and-over again.

/Guenther
comarow
Trusted Contributor

Re: %RMS-F-DME, dynamic memory exhausted

See

http://vmsone.com/~decuslib/vmssig/vmslt00a/net/rms-tuning-and-piopages.txt

as but one example that supports contention. Also a recent similar problem

Just Google
%RMS-F-DME piopages
and you'll get a lot of hits.

Have fun...