Navision Financials Server at 100% CPU Usage?

Okay guys, you’ve all been very helpful so far, and I need you again. Here’s the version info of what I’m running: 2.01b clients 2.01b server Here’s the catch…the database was a 1.x Database before I had to reconfigure the server. I exported the database, and then reinstalled the Navision server with the 2.01b Financials Server. I then imported the old database, and everything was working fine…or so I thought. The server has crashed 3 times in the past three weeks. I say crashed…actually, it didn’t crash. The server.exe program took the processor load to 100% and caused the server the creep to a near halt. I know this has happened, when I get the error as follows: The following message came from the server. The database can not be accessed while already in use. (I can’t currently recreate the error exactly, but it’s similar to that.) The database is not corrupt, because I’ve exported and reimported it to test it. Any ideas what might be causing this? It had only happened on the weekends the first two times, but today, it did it before I got to work. So that cancels any notion of automated tasks on the weekend being a source of problem. Oh, I’m left with no option but to reboot. Even if I take the 20-30 minutes it takes to get to the services menu, I can’t stop the service. It errors out saying it can’t stop the program.

Hi Michael, you should end the navision-service and delete the CPUMONI.EXE in your server-directory. That will not cause any problems or error-messages. The only thing that will not work after doing this, is displaying the CPU-load of the server in your Navision-Clients. You should do that, because CPUMONI.EXE and the NT-performance-monitor do not work properly togehter. Then check out: 1. On the drive where your navision-server is running, there should be enough free space. Your server needs to create temp-files on that drive. There is no standard-size i can recommend - that depends your database. How much space free do you have there and how big is your database ? 2. What percentage of your database-size is used ? If you have more than 10% left, then that should not be the problem. 3. What size is your cache ? Sizing the cache too big, may cause problems, if you have’nt got enough free RAM. 4. Are there any other programms running on that server ?

I’ve already ran into the CPUMONI.exe problem about a month ago. I took care of that easily enough. This problem is more severe than that though. When I check the performance monitor, server.exe is the process that’s hanging up the system. As for the other issues, this is what I have: 1: 1.66 Gigs free on that drive. (more than that on the other 7 drives) The total size of the database is 13 Gigs…only 9 of that is being used. 2: Less than 70% of the Database is being used. 3: I have 245760 Kb of DBMS Cache, and 2000 Kb of Object Cache. Total amount of RAM in the system is around 400 Megs. 4: Navision is the only program running on this server. It’s also set as a Backup Domain Controller, but it was like that before the server was reconfigured, and there was never a problem. If there’s anything else I can tell you…then help me, help you, help me. :wink: Thanks!

Hi Michael, that all sounds good to me. Your cache-size should be no problem, but you should anyway try to work with 100 MB database-cache for a couple of days. That will not kill the performance too much, but this way you can cross out the problem that your cache could be too big. Give it a try. When it happens, are there any clients connected ? And what do that clients do then ? I’ve been searching our support-database for such a problem and the only thing i found is this (i had to translate that … so be patient with my english): “server.exe is something like a link between the dbms and the network. If there is quite often a CPU-load of 100%, then there could be also a networking problem” I don’t know if that’s any help, but like i said, that’s the only thing i found.

I just realized something. I’ve been checking the DBMS Cache under File->Database->Information. However, when I go to Tools->Options, my DBMS Cache is set to 500. Can I set that to 100 without damaging the system in anyway? If there are any clients connected, I am not aware of it. So far, it’s only happened when the database is not being used. It’s always crashed late at night, or on the weekend. There are some that use it then, but not many. I’m a little skeptical about the network being an issue, but I won’t discount anything at this point. If it happens again, I’ll try disconnecting the server from the network, and see if there’s any type of reaction. I hadn’t thought about it, but I suppose it’s reasonable to believe that one client could grab the processor like that. Thanks for all your help.

Hi Michael, there are two different locations where you can set the size of the cache: 1. At the server: this is the cache-size you saw at the client under File/Database/Information. When running in client-server-mode (what you do), then this is the database cache we are talking about. The only way to change it is to uninstall the server-service (see manual) and then to reinstall the service with your new cache-size. That one you should set to 100MB. There will be no problem with your database doing that. Just end the server-service, uninstall it and the reinstall it with the new cache-size (cache=100000). 2.At the client: in Tools/Options you can set the cache-size, that is used if you are running a local database (without having a server). In your case (client-server)it does not matter what value is entered at that place. The only cache you can set in this form is the object-cache, which always has to be set at the client (and should have no influence on your problem). Btw. - I agree - it does not sound like a networking problem. That was just info from the support-database.

I’m running Windows NT 4.0 with the High Encryption Service Pack 6.

Hi Changing the Cache on the NF server…


The only way to change it is to uninstall the server-service (see manual) and then to reinstall the service with your new cache-size.

This not entirely true if you use regedit and edit the KEY below, several options for the NF Server is available. Including Cache. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NFSERVICE\ Substitute NFSERVICE with the name of your service. The service must be restarted before changes take effect! Regards Janus

Man, the server’s crashed twice in the past two days. I’m gonna try that registry hack and see if that’ll help the problem some. I have another theory. I think there may be a report that’s causing this problem. We have someone who runs reports and such late at night, and that’s usually when the server crashes. Here’s my question, is there a program or report, or ANY way to view what people are doing in Navision?

Try lower the cache so You have something like 250 Mb free for th OS to work with. I had exactly the same problems at a client who was running a 1.20 database on 2.60 C/SIDE. After setting the cache to 250Mb (of a total of 500Mb RAM) there have not been any crashes. There we have 35 users and a 6Gb database. //Lars

Maybe a bit off track, but following Michael McNeil’s thoughts… Report running activity is interesting, because a report can be anything from huge filtering running through tables to manipulating data in any conceivable way. There is a lot of standard reports, and we probably create at least as many for various purposes, because it is so simple to do it (and it is quite fun). But we lose control of if/how they are used, and get a lot of work i.e. when version updating. I have been contemplating a method of keeping track of report running, like a creating records in a simple table when reports are run, with info like Date, Time, UserID, ObjectId to resume control of what is happening. Has anyone around implemented this kind of information collecting? Pelle

That would be a blessing. We’ve been trying to determine what reports are used in our system. We had a Navision programmer here for two years, who customized our database to the extent that we can’t upgrade. (at least not cheaply). We’ve been trying to free up some report licenses so that we could create more, and something like that would be an incredible help.

OK, I’ll do it. Quick analysis shows that I have 583 reports, of which 199 are in in the 5000 - 7199 range. Copy - paste simple code in 583 reports makes close to 3 hours of work at 15 seconds a report. The 200 non-standard reports could be done in less than one hour with luck. Not worth automated code modifying. Typical weekend job. I’ll report the progress. Pelle

Just my remark. Early in forum you can find my help message about server crashes 1-10 times per day. Nothing helped:( Processor load memory up to 100% and DrWatson kill Server.exe. Realy nothing help until… We upgrade just client and server from NF2.01 to NF2.6e, database is 2.0 about 4 GB. Now more than month no one crashes and server use less memory (it seems):slight_smile: RGDS Gedas

Okay, so there’s another option. Maybe the 2.01 server is buggy. Here’s a question though, would I be able to upgrade my system to a 2.6 database? According to Datahoue, the two versions aren’t really compatible.

Hi, the “Report Usage” mini-mini-granule: One table: Entry No., User, Entry Date, Entry Time, Report, Company. In the reports: One global variable, One line of code. Very simple, no special multi user handling code. Use it for checking usage of the odd reports that you consider to delete. Should I upload the table oblect? Pelle

If you don’t mind. I’d like to use it in our system here. Oh, and I THINK my problem’s been solved. It turns out that a guy from datahouse has been compiling some reports and such on our database late at night and on the weekends. I have reason to believe that this is the reason it’s crashing. I’m going to make sure he doesn’t do anything this weekend, and we’ll see if it crashes again.

Michael asked: "Here’s a question though, would I be able to upgrade my system to a 2.6 database? According to Datahouse, the two versions aren’t really compatible. " The answer is that so long as you keep the executables in synch (i.e. same version of clients and server), you can upgrade these independently of the objects. To quote from last year’s Passport presentation by John Nozzi on upgrading: “For example, you could upgrade the Executables portion of a Major Release one weekend, and not schedule the upgrades for the Objects or Data for another 2 or 3 months.” So if you want to use the V2.6 executables, you just need to upgrade all clients and ther server simultaneously. You do not need to upgrade your objects (i.e. the customized code). John’s entire upgrade presentation in PowerPoint format is available to your NSC on the Navision web site. Dave Studebaker das@libertyforever Edited by - daves on 1999 Sep 09 20:27:16

If you want to keep a track of all the reports used and wich user did, you can do it in a 15 minutes work, without having to just touch any report: Way of making the changes: 1) Create a new table where to store the logs: usually it will contain these fields at minimum: - No (integer) key of the log table - User_id (code) related with the user’s table - Report_id (integer) - Time_usage (time) - Date_usage (date) 2) Modify codeunit 1’s (Application’s Mannagement) code for changing the function findprinter as follows: VAR rTest1 : myLogtable; rTestAux : mylogtable; FindPrinter(ReportID : Integer) : Text[80] // >> WC - report usage control // by Alfonso Pertierra :stuck_out_tongue: // Variable initialization CLEAR (rtest1); rtest1.RESET; rtest1.INIT; := aux; rtest1.User_id := USERID; rtest1.ReportNo := ReportID; rtest1.Time := TIME; rtest1.Date := WORKDATE; // We obtain the number of the log record CLEAR (rtestAux); rtestAux.RESET; rtestAux.LOCKTABLE; IF (rtestAux.FIND(’+’)) THEN := rtestAux +1 ELSE := 1; // and insert it into out table rtest1.INSERT; // making a commit for ensuring it’s stored. COMMIT; // here continue with the standard code… Regards from California – Alfonso Pertierra Spain Western Computer Los Angeles, California

Alfonso, I just know that there was a better way to go (There usually is). Thank you for clarifying this! Pelle