"WARNING: -D limit has been exceeded". How to reso

Posted by jpatel7 on 11-Feb-2020 23:19

I have implemented a third party web service which is heavily used. HTTP calls to that web service give below warning messages few times a day:

20/02/10@11:00:45.033-0500] P-063394 T-2426058528 1 AS -- (Procedure: 'InitializeRegistry OpenEdge.Net.HTTP.Filter.Writer.BodyWriterRegistry' Line:58) WARNING: -D limit has been exceeded; automatically increasing to 150. (5410)
[20/02/10@13:07:26.874-0500] P-063375 T-3554514720 1 AS -- (Procedure: 'Iterator OpenEdge.Core.Collections.EntrySet' Line:38) WARNING: -D limit has been exceeded; automatically increasing to 150. (5410)
[20/02/10@13:35:27.888-0500] P-011960 T-3884009248 1 AS -- (Procedure: 'InitializeRegistry OpenEdge.Net.HTTP.ClientBuilder' Line:69) WARNING: -D limit has been exceeded; automatically increasing to 150. (5410)
How can I resolve this?

Posted by Matt Baker on 12-Feb-2020 01:25

the message is complaining about the -D startup parameter being too small.  it is a "soft limit" so it gets auto increased if necessary. Add a -D 1000 to your command line for your application and you won't get these (at least until you hit the limit again).  -D is "directory entries".  Basically, it refers to the number of unique piece of r-code that can be loaded in memory.  HTTP client package has a lot of different classes it needs which is why you are seeing this message because it needs more than 150 different classes.  

All Replies

Posted by Matt Baker on 12-Feb-2020 01:25

the message is complaining about the -D startup parameter being too small.  it is a "soft limit" so it gets auto increased if necessary. Add a -D 1000 to your command line for your application and you won't get these (at least until you hit the limit again).  -D is "directory entries".  Basically, it refers to the number of unique piece of r-code that can be loaded in memory.  HTTP client package has a lot of different classes it needs which is why you are seeing this message because it needs more than 150 different classes.  

Posted by Ken McIntosh on 12-Feb-2020 13:01

You could also use the -noincrwarn parameter to avoid seeing this along with a couple other soft limit messages, like -mmax and -l.

Cheers,

Ken Mc

Posted by jpatel7 on 12-Feb-2020 22:42

[mention:59d592551ddf45caaa167dcdfa95b29f:e9ed411860ed4f2ba0265705b8793d05]  That's a good suggestion. But, we are not using -noincrwarn parameter because we want to see those warning messages on server side logs just so we know that there is an issue.

Posted by Ken McIntosh on 13-Feb-2020 01:25

Hi [mention:75fda27b2d784899b063953f9bea3faf:e9ed411860ed4f2ba0265705b8793d05] ,

In that case, Matt's suggestion is your best bet.

Cheers,

Ken

Posted by slegian-bva on 13-Feb-2020 04:51

You can programatically add 5410 to the SESSION:SUPPRESS-WARNINGS-LIST in your startup program (say activate procedure if this is the appserver)

Cheers,

Simi

This thread is closed