Error in xp_ndo_enumusersid, Help

Hi and thanks for reading: One of our customers in Iceland is getting system errors from the xp_ndo_enumusersids when clients try to connect to the server. The clients are unable to log on using windows authentication and the query analyser shows the following error when it is used to connect to the server Msg 50500, Level 1, State 50500 Internal error : a Win32 function returned error code 1008 (0x3f0) They are running win2k sp2, sql server 2000 sp1 and navision 2.60.E They are using windows login into the database and after a reboot their server answers with the error below. This has happended on their development server before and was solved by reinstalling the SQL server, which is not acceptable solition this time. The version of the xp_ndo.dll on the server is I have sent them the version of xp_ndo.dll from navision attain 3.01 to see if that helps. Has anyone seen this error before and has a solution from it? Spörri - System Administrator Landsteinar Iceland

Unfortunately, I have seen the problem before. The solution after a week of trying different things was to back up the information that we wanted from that one computer having the problem. Format and reload everything.

Is your server set up to use fibers? Look in Enterprise Manager, right click the server for properties. Look in the Processor tab. Is “Use NT Fibers” checked? The extended storied procedure will generate your error if it is.

The server was both set up to use NT fibers and to “boost SQL Server Priority” by removeing the options we got it back up and running. Navision tells me still to use NT Fibers and I want both options checked as the make big difference in using the server

Out of interest, what measured performance benefit have you seen from enabling NT fibers? Until the problem with this setting affecting the security impersonation has been solved you’ll have to leave this option un-checked.

Do NOT use NT Fibers if using SQL 2000. This is a change from what the US taught and I believe what other countries also mentioned. Here’s a comment from a Navision US FAQ "In Microsoft SQL Server 7.0 we recommended to always to use ‘Windows NT fibers’ for the SQL Server properties to increase performance. This is not true anymore with Microsoft SQL Server 2000 running on a Windows 2000 Server. Checking ‘Windows NT fibers’ for the SQL Server properties requires a security context swap between fibers and threads. This swap does not validate a Windows Login user and the user will receive the general error message: “The combination of user ID and password entered is invalid. Try again” Therefore to use Windows Login on a Microsoft SQL Server 2000 running on a Windows 2000 Server, ‘Windows NT fibers’ has to be disabled. "

This is just the symptom of the error. The security context is associated with threads, not fibers and the error is in obtaining a security token using OpenThreadToken(). There is still a benefit from using fibers when this error is resolved, assuming it will be, since Attain does not make use of stored procedures of OLEDB providers which require OS context switches. I will post more info later on.

Navision has reported this to Microsoft; however, you might have to wait until the release of SQL XP before you see a fix.