We have a C/C++ NI-DAQmx 20.1 openSUSE Leap 15.1 application that is basically a data acquisition server that runs 24/7/365. The executable waits for a client to connect, does what is requested, then exits. The executable is called in an infinite loop from a shell script.
While this runs fine for the first few days and hundreds of connections, it eventually exhibits stability problems, so I would like to insure that each invocation of the executable has a fresh NI-DAQmx environment. What is the best practice for resetting NI-DAQmx to its initial state short of rebooting the controller? I can do this in the executable via the C API or in the shell script.
I'm currently calling DAQmxClearTask() for each task before exiting the executable. I've tried using DAQmxResetDevice() to reset all the boards but that doesn't seem to help. The documentation implies DAQmxResetDevice() can be used to reset the chassis but I can't figure out what deviceName to supply.