pavelbonev
We are using SmartFtp Lib in over 500 locations which are checking and downloading updates every 10 minutes. In many cases we have bad communication conditions - high latencies, wireless connection breaks or satellite connection lost.
The software retries every time there is a problem to destroy the ftp connection object and create a new one. In rare cases (we have 3-4 a week) we see an exception dialog box containing "Socket Notification Sink Error" and followed by other exception dialog which are not created by our software.
We found the following explanation of the problem if you are using CAsyncSocket class from MFC in SmartFtp lib:
Socket Notification Sink Error Being Generated By Windows
SYMPTOMS
Windows randomly generates a "Socket Notification Sink" error and aborts the program or waits to shutdown the computer.
CAUSE
There is not a lot of specific information available as to why Window's will sometimes generate this error so we will relate our personal experience concerning this event. Individuals finding additional information concerning this matter can forward the information to support@apteryx.com so that we can update this record.
In our experience, this error can be generated by utilizing sockets in secondary threads and is more commonly seen in threads invoked by applications running as Window's services. This error is typically generated by the secondary thread when creating or attaching socket handles to a socket class object while more than one process is engaging in network communications at the same time.
More specifically, the "Socket Notification Sink" error actually relates to a failed window creation for use by a MFC socket class object. Since the MFC socket classes actually create and utilize a window to control the MFC socket object, failure to generate this window results in a detrimental application error. This windows generation failure is more commonly seen in Window's services since they typically have restricted UI creation rights (even if the service has the "interact with desktop" attribute).
RESOLUTION: Programmers
To date, the only resolutions to this problem have been the following:
1. Rewrite the application/thread/service so that it only opens a socket at the beginning of execution. The more times you create or even bind a socket, the greater the chance you will have of generating this error.
2. Rewrite the application to utilize the socket layer directly and remove all instances of the MFC derived socket classes.
3. Recompile your application using VC.NET. Apteryx has received reports that recompiling the project under VC.NET has helped correct the problem with MFC derived socket classes (thanks Ramasubramanian J).
Does any SmartFtp Lib user experience similar errors?
SmartFtp developers team- does this error apply to SmartFtp Lib?
For screen shots of the error please email to: pbonev@optecdisplays.com
The software retries every time there is a problem to destroy the ftp connection object and create a new one. In rare cases (we have 3-4 a week) we see an exception dialog box containing "Socket Notification Sink Error" and followed by other exception dialog which are not created by our software.
We found the following explanation of the problem if you are using CAsyncSocket class from MFC in SmartFtp lib:
Socket Notification Sink Error Being Generated By Windows
SYMPTOMS
Windows randomly generates a "Socket Notification Sink" error and aborts the program or waits to shutdown the computer.
CAUSE
There is not a lot of specific information available as to why Window's will sometimes generate this error so we will relate our personal experience concerning this event. Individuals finding additional information concerning this matter can forward the information to support@apteryx.com so that we can update this record.
In our experience, this error can be generated by utilizing sockets in secondary threads and is more commonly seen in threads invoked by applications running as Window's services. This error is typically generated by the secondary thread when creating or attaching socket handles to a socket class object while more than one process is engaging in network communications at the same time.
More specifically, the "Socket Notification Sink" error actually relates to a failed window creation for use by a MFC socket class object. Since the MFC socket classes actually create and utilize a window to control the MFC socket object, failure to generate this window results in a detrimental application error. This windows generation failure is more commonly seen in Window's services since they typically have restricted UI creation rights (even if the service has the "interact with desktop" attribute).
RESOLUTION: Programmers
To date, the only resolutions to this problem have been the following:
1. Rewrite the application/thread/service so that it only opens a socket at the beginning of execution. The more times you create or even bind a socket, the greater the chance you will have of generating this error.
2. Rewrite the application to utilize the socket layer directly and remove all instances of the MFC derived socket classes.
3. Recompile your application using VC.NET. Apteryx has received reports that recompiling the project under VC.NET has helped correct the problem with MFC derived socket classes (thanks Ramasubramanian J).
Does any SmartFtp Lib user experience similar errors?
SmartFtp developers team- does this error apply to SmartFtp Lib?
For screen shots of the error please email to: pbonev@optecdisplays.com