Enabling NetWare 3.12 to allow Set Maximum Short Term Memory to be more than the fixed 32MB to allow to handle more administation area thus use bigger harddisks/volumes.

Somewhere between 120 and 200GB you can run into a problem, that NetWare 3.12 will run out of Short Term Memory, thus won't be able to mount such a big volume. "Maximum Alloc Short Term Memory"'s range can be set between 50000-33554432, of course we run out of that even using the maximum (33554432) which is 32MB.

When I ran into this second time, I've became a bit annoyed and chosen to investigate this issue a bit deeper, "Because I'm the kind of guy that likes to live on the edge".

The solution was/is quite simple. Basically you just have to do the following steps:

- split server.exe as follows: splitser.com server.exe
  This will split server.exe into "loader.000" and "NNNuser.001" (the NLM part) files.

- unpack the NLM part (NNNuser.001) as follows: unpackr.exe 100user.001 unpacked.001
If unpackr is not available from the above link, extract from this 40MB file:
or google for, and extract unpackr.exe from "NFS153.EXE" (or contact me).
I finally ended up to locally provide this file, so here it is: unpackr.exe.

- use your favourite hexeditor to edit the resulting unpacked.001 file, find the parameter range (50000-33554432 = hex 50 C3 00 00 - 00 00 00 02), and "raise" 00 00 00 02 (32MB) to 00 00 00 7f (2GB) for example.
If you have no idea on how to do that, download the free hexeditor from http://www.physics.ohio-state.edu/~prewett/hexedit/hexedit.exe
Use hexedit.exe with unpacked.001, then use Find, change mode to Hex, type 50 C3 00 00 00 00 00 02 then press Ok.

Find range

There should be 1 occurrence, the range is highlighted below.

You should navigate to "02" then change to "7F", then select File/Save As, let's say "unpacked.mod".

- As for the last step, you have to "recreate" the server.exe, by copying loader and the modified NLM part, as follows:
  copy /b loader.000+unpacked.mod server.exe

  (You don't have to recompress the NLM part, it will be slightly bigger but will work as before.)

After starting the modified server.exe, you can/should see that the range for "Maximum Alloc Short Term Memory" setting has been changed, the Maximum should display 2130706432 (2GB) now.
Of course then you have to issue a proper SET in your startup.ncf, for example:
SET Maximum Alloc Short Term Memory = 67108864

Limit: ... - 2.130.706.432 [2GB]  More than 32MB in use

64MB seemed to be enough for me to mount a 2*200GB mirror pair, and it is running well since March of 2006 with heavy magic/btrieve database usage, no corruption.

At partitions above ~160GB the mirrorring status will produce "strange" values, it will displaying start from 88 percent then turns over 00 and so on, this is just a cosmetic issue, if I have some time to look into this, I'll patch this one too...
More technical details on this issue

Comments, suggestion, flame, praise to:

version - yyyy.mm.ddDescription
v1.00 - 2006.09.28First version
v1.01 - 2007.06.23Unpackr.exe availability update
v1.02 - 2008.04.07Due to popularity and unavailability at other places, I provide a local copy of unpackr.exe now
v1.03 - 2010.04.20Added link to the "88%" issue

BACK to NWUDMA main page