Dynamic pool limit exceeded. Make file cache C6.3.9058

Hi,

I hope someone has a solution for this error in C6.3.

I added a new table to my DCT and now get this error.
I deleted all my clw, obj, etc.
Restarted my computer.
This app has to stay in C6.3 for a long time still.

I get this error on my DataDll if I compile it.

Nothing seems to work.

Any ideas or solutions will be appreciated.

Regards

Johan de Klerk

Try compiling a small app with a different dictionary first. If that compiles, then try the app you’re having a problem with.

–David

Hi David,

Thanks for the reply.

That was one one of the things I tried.

I eventually got my DataDll compiled, without changing anything - weird.

My C6.3-9058 is still a rock solid development tool.

Regards

Johan de Klerk

Hi Johan,
I believe I encountered something like this a very long time ago in a very large medical application. If I’m remembering right, I had added a new table or possibly even just added enough to an existing table in that large dictionary and encountered what you presented.

I ended up creating a second separate dictionary and moved a few tables that were not related to any other to that second dictionary thus freeing enough space in the primary dictionary to keep related files together. Having two dictionaries did not present a problem. They were completely independent. I believe there is a 64k limit on the dictionary space.

Now my memory could be getting a bit fuzzy on this as it could have been maybe 15 years ago or more.

I still use c63-9058 for a very large veterinary application and agree with you on its solidity.

Hi Doug,

How did you do this?
Are you using two dictionaries in the same application?

Regards

Johan de Klerk

Good Morning Johan,

I had to dig back through my archives attempting to find what I did. It took me awhile. The most recent version of that medical app that I did find was dated April 2008. It is no longer being used by anyone but I still have all or at least most of what I did archived. That said, I reloaded it and CW55 onto an older computer to see if I could bring it up. I appear to be missing a registered PowerBrowse template. I didn’t think I was using PB any longer by then. My usage of PB went back to CW 2003 but that’s ancient history.

It appears that I mis-stated creating two dictionaries. What I see that I did was create two Data apps separating references to one dictionary into two independent pieces that contained no files that referenced the other. I just don’t remember the details very well now ten years+ on.

I wanted to reply to your response. I may yet poke at it out of curiosity. If I find something to further clarify what I did I will get back to you. Please don’t hesitate to ask anything. It may trigger my memory on this.

Best regards,

Doug Selzler

Hi Doug,

Thanks for the reply.

No problem, I just though you found a way to do it and it would help a lot.

It is a long time to remember anything. :slight_smile:

I would really appreciate it.
I think it would sort out a lot of my problems.

Regards

Johan de Klerk

Hi Doug,

Poking your memory just in case you found the solution.
I had to change my DCT for the first time in 3 years.
Running into the same dynamic problem.

I have tied many things in the meantime.
What I have found is that if I delete the NetTalk Template from my Data DLL it compiles without the Dynamic problem.
However NetTalk is used extensively in this Multi-Dll app.
I can remove NetTalk completely from this app and replace most of it it with LibCurl but that is going to take me weeks.

Not sure if there might be another way to put the NetTalk template in somewhere where it could still be used as is.

Regards

Johan de Klerk

sure, if you make your data dll smaller, then it compiles…
you can remove other things, not just nettalk.

If the DataDll does not use NetTalk, just exports the class, you could try putting NetTalk in its own DLL and see if that will compile. It uses several other classes that also should be moved to the NTExport DLL. If that works then it should just require the Apps that use NetTalk to import from the NTExport.DLL

E.g. I put the Capesoft Message in its own DLL alone. That lets me add it to any project easily by just importing that DLL to the EXE then calling a Procedure in it to Init the MessageBox class and Hook the message.

I could be wrong, but I vageuly remember something like Tom Moselys Dictionary Enhancement Foundation did something to the dct which got around this problem.

Cant find it online now, although there is a reference to it here
Clarion, Dictionary Enhancement Toolkit v2.0 is released! (computer-programming-forum.com)

Yes I used DET (Dictionary Enhancement Toolkit) extensively back in the late 90’s to get around big dictionary problems.

It was a different template chain, although based on legacy templates (which Tom had a lot to do with).

They later came out with DEF templates (based around ABC) but I never used those and not sure what happened to them.

Well as the template code can be viewed, maybe they can give a clue in to how they tackled that problem. Maybe Johan can find a copy for sale?

I looked and searched everywhere to see if the DEF templates can be purchased somewhere, no luck.

I removed NetTalk from my Data Dll.
My Data Dll compiles 100%.
I put NetTalk into a new Dll, as suggested by Carl.
The dll where I have put the Global NetTalk template gives a lot of errors, I think all related to NetTalk.
I have no idea how to resolve these 257 errors:
Unresolved External CONSTRUCT@F7_NETALL
Unresolved External CONSTRUCT@F7_NETALL
Unresolved External LOG@F7_NETALLsbsbl
Unresolved External INTERPRETERROR@F7_NETALL
Unresolved External _WAIT@F7_NETALLl
Unresolved External _RELEASE@F7_NETALLl
Unresolved External _LOGGINGSETUP@F7_NETALL
Unresolved External _LOGGINGFIRSTTIME@F7_NETALL
Unresolved External _TRACE@F7_NETALLsb
Unresolved External TRACE@F7_NETALLsb
Unresolved External INIT@F16NETFTPCLIENTDATAUl
and a lot more.

Any help would be appreciated.

Regards
Johan de Klerk

You’re making a DLL with the NetTalk code exported so it cannot be external.

I would guess the NetTalk Global Extension Multi-DLL or Build Settings are set to External. You need it Not External and Exported. I don’t use it so cannot give you specifics

NetTalk is an ABC Complaint Class (our only one) so it cannot be separated from the data dll. Pretty much all our other classes can be, but not the NetTalk classes.

There is not a switch for dll like the other CS tools.

Is there any solution you can think of.
I tried removing a lot of the other templates in the Data Dll, still the same error.
The only one that makes a difference is if I remove the NetTalk template, probably because it is the biggest one with the most dependencies and all the nice functionality.

I thought there was a setting that would split up the file declarations, but I’ve never used it and don’t recall the name.

What I’ve done in the past is removed file definitions from the dct which were used for importing or exporting data, ie txt, csv type files and then just declared those files in their import/export procedure(s), its not a big deal to define a dct table in the data declaration part of a procedure, you can copy it from the data dct source code clw very easily.

The main reason for doing those is because you dont have a file relationship with this files and typically they are only ordered by the record order, so they dont need to be tied into the filemanager class, hence they dont need to be in the dct.

This ?

image