07-13-2009 06:00 PM
Hey all,
We're running a LabView 8.5.1 set up, with labview controlling a front end for all of our equipment. This ranges from actual device control, to data aquisition, to data analysis, and then it saves it to a MDSPlus server - and it all runs on DataSocket between several different workstations.
We've been recently getting a bout of Labview errors with nids.dll that crash the entire program, and requires Labview to restart entirely.
The exception information is provided below:
Code: 0x80000003
Flags: 0x00000000
Record: 0x0000000000000000
Address:0x0000000007458076
Attached is the logfile it generated.
Any help on resolving this issue would be greatly appreciated.
07-13-2009 11:11 PM
07-14-2009 12:15 AM
07-21-2009 09:27 AM
Hi Folks,
I'm another programmer working with cpowell (the starter of this thread). Thanks for the suggestions. I couldn't find much in the search, but muks, that thread you linked me to does open my eyes a bit. It seems like Peachy in that thread is having a similar problem. We are reading from data sockets and writing to a database once a minute. This nids.dll error seems to happen within a minute after one part of our system (that we are reading from via datasocket) is powered on. This suggests that the error happens when the program tries to take some kind of information from that datasocket and write it to the database.
I'd like to try and narrow it down within my program, but this thing is quite a monster that several people over years before me have developed. I guess I'll work on that for now.
Max
07-21-2009 12:11 PM
OK, so I've figured some more things out. We have two programs running simultaneously. One is the database save program, the other is the data streaming program. The data streaming program is constantly reading from a TCP port which is connected to a remote computer that does a lot of our data acquisition. As far as I can tell, the data streaming program is using information contained in the byte sequences it acquires from the TCP port to decide in which data socket on localhost to save the data it gets in these sequences. I am not sure whether the data streaming program gives the remote computer instructions as to which data it wants at what time or whether the remote computer simply cycles through the available data it has.
The database save program only runs once per minute. The database save program looks at each data socket individually, saves all the data collected in that data socket over the last minute to a database, then resets that data socket to a zero-by-zero array of zero.
My theory is that the crash is happening when the data streaming program and the database save program run in to each other while trying to use the same data socket. Any suggestions on how to avoid this? Is it possible to instruct both programs to wait until the other is done with a data socket before trying to use it?
07-22-2009 12:47 PM
09-02-2009 08:48 AM