mO SharemO Share

"A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)" error message displayed while running data sync at POS

SYMPTOMS


The data synchronization in POS is showing the error message while running the data sync 

"A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)" 

CAUSE


The common reasons for the above error message are

  1. No connectivity to the web database
    This happens when connectivity to your web database is broken due to an issue with the internet connection of your ISP, installation of any new security / Anti-virus / Firewall software.

  2. Degraded network quality to the web database 
    Another probable cause of the appearance of the error message is a degraded internet network quality at client's end to allow upload of binary data from the web database in large blocks. The cause is primarily due to intermittent loss of network connectivity to the internet while reading or writing the blocks from the web database.

  3. It has also been observed that the issue also may occur due to presence of third party Antivirus
     

RESOLUTION


In the first case use this guide to check your web database connectivity How To: Check web database connectivity from GINESYS HO or GINESYS POS.

If the first test succeeds but you still face this error, try the given steps:

  1. Open the GINESYS POS application folder in your system by right clicking the GINESYS POS icon on your desktop and selecting Open File Location.
  2. Locate the GinApps.Config file.

  3. Open the GinApps.Config file in any text editor of your choice (e.g. Notepad).

  4. Scroll down to the end. 

  5. In the AppSettings section, check if you have the WebDBBufferLength key. 
  6. If the key is present, put the value at 32768.
    (This value indicates how many bytes are to be read from the web database in one block. A value of 32768 means 32 Kilobytes are to be read in one block. Since this issue is typically caused while reading and writing large blocks of data from web database we will be trying to reduce the block size and test against different block sizes for stability.)
  7. If the key is absent, please copy and paste the following line in the GinApps.Config file in the AppSettings section. Refer the following image to understand where the line should be added.
    <add key="WebDBBufferLength" value ="32768" />


     
  8. Save the change and close the file.
  9. Open the POS and run sync manually once.
  10. Check if sync is working smoothly. 


IMPORTANT

Please note the following:

  • If the key WebDBBufferLength is not present clearly in GinApps.Config, then it takes on the default maximum value of 65536.
  • It is recommended to keep the value at half of the default length, however depending on the network connection quality it may be necessary to lower the value further to 16384 or 8192 or 4096 or 1024 in extreme cases.

Get Your Internet Checked

Since this is primarily a network quality issue, it is recommended that you get your internet connection checked and stabilized so that large blocks of data can be read or written to the web database. Lowering the block size to address this issue will ultimately cause your sync to run slower.


If the two previous solutions fail,

  1. Disable the Antivirus,
  2. Run the sync at POS.

These steps should resolve the issue. In case the issue still persists, please log a ticket in our Support Portal - http://support.ginesys.in/