To: Tweaker who wrote (9386 ) 4/30/1998 9:21:00 AM From: Qiang Lin Read Replies (2) | Respond to of 64865
Phil, In C or C++ programming, a programmer uses a lot of dynamic memory allocation. Then, he/she will use pointers to access the allocated memory. One thing the programmer has to remember: he/she has to release the allocated memory if the memory is not needed any more. The process of generating the unreleased memory is called memory leak. I believe NT Server 4.0 is written in C++ and it could have over million lines of code. If it is not thoroughly tested before its release, there will be some places memory was not properly released. You should have experiences with Microsoft's products. Then, you know the consequence - no body can use those unreleased memory since C or C++ compiler do not have garbage collector (which will automatically detect unused memory and release them). If it is a simple application, it may not use all NT Server features so that the NT Server may run fine. However, our application uses the Oracle Symmetric Replication to talk with more than 20 - 30 NT servers at the same time. If you are a system administrator, you can monitor the server memory usage. Then, you will notice that the memory usage goes up with time, very scary. Oracle reps at our project are trying to figure out what is the cause since they did not see these symptoms in Unix/Sun environment. The quickest, but the most undesirable measure to solve memory leak is to reboot the server. If you have a few users and they will not work on 24 hour shifts (or so called mission critical applications), the reboot is acceptable. But if the system supports telephone company, airline, etc., you can imagine the results of system reboot, even if may take 10 minutes to reboot a NT Server. But in many cases, the reboot takes longer since you have to start all applications properly. That is why system administrators always work on strange hours since nobody will use system (may be forced) by then. Hope this help. Lin