Hello,
We're having problems with netdde dying on a Windows 2000 Server machine running InSQL. The computer is connected to a GCOM DDE Server which InSQL collects data from. Everything works fine except the DDE communication dies once or twice a month only to be recovered by a complete restart.
When the error appears, InSQL Control tries to connect but doesn't manage to. In Windows event log (system) we first get the following error:
And then the log fills up with another message and doesn't stop until you stop InSQL control (or restart the computer, I don't remember exactly):
I've done some resarch and the function DdeGetQualityOfService() lies in User32.dll (Windows API) but I can't find any documentation on this. Another function, DdeSetQualityOfService(), is on the other hand documented and it has the following definition:
A guess is that a failed function call result in raising a global error variable which is interpreted by the function DdeGetLastError(). The documentation of this function does not state any error with number 87. However, the general Windows API error code 87 means [FONT="]ERROR_INVALID_PARAMETER and is raised when you pass an invalid parameter when you make a function call. DdeGetLastError() has a similar error code [/FONT][FONT="]0x4006 DMLERR_INVALIDPARAMETER and I guess this is the error we actually get.
The documentation on this error says:
So. The problem seems to be that the NetDDE client suddenly dies. But I have no clue on how to debug this further. I have no experience with NetDDE programming. Does anyone out there on PLCTalk have any hints on what I could do?
The system is configured as follows:
Windows 2000 Server SP3 (5.00.2195)
InSQL 7.1.080
Microsoft SQL Server 7.00.263
XEON CPU.
If not software related, could this be a memory problem? Would it be advisable to run prime95 or similar?
Thank you in advance. Any help is very appreciated. I don't know to whom I should turn, since Windows 2000 is no longer supported and InSQL 7 is deprecated.
We're having problems with netdde dying on a Windows 2000 Server machine running InSQL. The computer is connected to a GCOM DDE Server which InSQL collects data from. Everything works fine except the DDE communication dies once or twice a month only to be recovered by a complete restart.
When the error appears, InSQL Control tries to connect but doesn't manage to. In Windows event log (system) we first get the following error:
Code:
Event Type: Error
Event Source: NetDDE
Event Category: None
Event ID: 14
Date: 2010-06-05
Time: 20:06:34
User: N/A
Computer: DUMBO
Description:
DdeGetQualityOfService() failed: 87
Code:
Event Type: Error
Event Source: NetDDE
Event Category: None
Event ID: 20
Date: 2010-06-05
Time: 18:50:38
User: N/A
Computer: DUMBO
Description:
Could not create client-side agent window for "" client
I've done some resarch and the function DdeGetQualityOfService() lies in User32.dll (Windows API) but I can't find any documentation on this. Another function, DdeSetQualityOfService(), is on the other hand documented and it has the following definition:
Code:
[FONT="]BOOL WINAPI DdeSetQualityOfService([/FONT]
[FONT="] __in HWND hwndClient,[/FONT]
[FONT="] __in const SECURITY_QUALITY_OF_SERVICE *pqosNew,[/FONT]
[FONT="] __out PSECURITY_QUALITY_OF_SERVICE pqosPrev[/FONT]
[FONT="]);[/FONT]
The documentation on this error says:
Another guess of mine is thatthe hwndClient suddenly blanks out, ie gets the value NULL. The other error message we receive in Windows event logger confirms this: "Could not create client-side agent window for "" client"[/FONT] A parameter failed to be validated by the DDEML. Some of the possible causes follow:
The application used a data handle initialized with a different item name handle than was required by the transaction.
The application used a data handle that was initialized with a different clipboard data format than was required by the transaction.
The application used a client-side conversation handle with a server-side function or vice versa.
The application used a freed data handle or string handle.
More than one instance of the application used the same object.
So. The problem seems to be that the NetDDE client suddenly dies. But I have no clue on how to debug this further. I have no experience with NetDDE programming. Does anyone out there on PLCTalk have any hints on what I could do?
The system is configured as follows:
Windows 2000 Server SP3 (5.00.2195)
InSQL 7.1.080
Microsoft SQL Server 7.00.263
XEON CPU.
If not software related, could this be a memory problem? Would it be advisable to run prime95 or similar?
Thank you in advance. Any help is very appreciated. I don't know to whom I should turn, since Windows 2000 is no longer supported and InSQL 7 is deprecated.