none
An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue

    Question

  • Hi Guys,

    Can anyone help me with this error

    An OLE DB error has occurred. Error code: 0x80004005.
    An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Protocol error in TDS stream".
    An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Protocol error in TDS stream".
    An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Protocol error in TDS stream".
    An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Communication link failure".
    An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "TCP Provider: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue
    was full.
    Tuesday, July 18, 2006 7:35 AM

Answers

  • Hi Larry,

    Since you are using PAE, it is not recommended you still turn on /3GB switch.

    As we know, using /3GB will cause the OS to have only 1GB memory for system use. The paged pool and non-paged pool size will be half the default size. These memory pools are used by OS to store network buffers, etc. Thus, when /3GB is turned on, it is more likely that OS will run out of non-paged pool and be unable to serve socket calls.

    OleDB Provider relies on socket calls to communicate with the remote server. In this case, you may see the error.

    As you are using /PAE, the user application already can use the additional 4GB memory. It is recommended to turn off /3GB so that OS could run more smoothly.

    Thx, -Justin

    Wednesday, July 19, 2006 6:26 AM

All replies

  • The error can occur if OS is running out of non-paged pool.

    Are you using the /3GB switch on the machine? Please turn it off and try again.

    Tuesday, July 18, 2006 10:25 AM
  •  

    What do you mean by OS is running out of non-paged pool?

    Yes, we are using the /3GB/PEA switch on the machine because we want to maximize the memory we have right now which is 8 GB.

    Please advise why is there a need to turn it off?

    thanks,

    Larry

    Tuesday, July 18, 2006 11:34 AM
  • Hi Larry,

    Since you are using PAE, it is not recommended you still turn on /3GB switch.

    As we know, using /3GB will cause the OS to have only 1GB memory for system use. The paged pool and non-paged pool size will be half the default size. These memory pools are used by OS to store network buffers, etc. Thus, when /3GB is turned on, it is more likely that OS will run out of non-paged pool and be unable to serve socket calls.

    OleDB Provider relies on socket calls to communicate with the remote server. In this case, you may see the error.

    As you are using /PAE, the user application already can use the additional 4GB memory. It is recommended to turn off /3GB so that OS could run more smoothly.

    Thx, -Justin

    Wednesday, July 19, 2006 6:26 AM
  •  

    Thanks Justin, that was clear enough.

    Wednesday, July 19, 2006 7:51 AM
  •  

    I experienced, these errors from the Replication log reader agent errors:

    Error messages:

    ·          The process could not execute 'sp_replcmds' on 'ITCHY'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20011)
    Get help: http://help/MSSQL_REPL20011

    ·          TCP Provider: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. (Source: MSSQLServer, Error number: 10055)
    Get help: http://help/10055

    ·          Communication link failure (Source: MSSQLServer, Error number: 10055)
    Get help: http://help/10055

    ·          Protocol error in TDS stream (Source: MSSQLServer, Error number: 0)
    Get help: http://help/0

    ·          Protocol error in TDS stream (Source: MSSQLServer, Error number: 0)
    Get help: http://help/0

    ·          Protocol error in TDS stream (Source: MSSQLServer, Error number: 0)
    Get help: http://help/0

    The process could not execute 'sp_replcmds' on 'ITCHY'. (Source: MSSQL_REPL, Error number: MSSQL_REPL22037)
    Get help:
    http://help/MSSQL_REPL22037

    See:

     

    http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=564701&SiteID=17

     

    when I boosted my max sql memory from 6.5GB to 12GB (phsical memory from 8GB to 16GB) and had the /3GB in my boot.ini.  Once I removed the /3GB swtich, no further problems.

    Wednesday, February 27, 2008 12:22 PM
  • hmm: "when I boosted my max sql memory from 6.5GB to 12GB (phsical memory from 8GB to 16GB) and had the /3GB in my boot.ini.  Once I removed the /3GB swtich, no further problems."

    How do i even do this?
    Saturday, March 22, 2008 7:26 PM
  • Boot.ini can be located in the root of your C drive, you might have to tick the "Show hidden files and folders" in your Folder Options in order to see the file.  You'll also need to uncheck the read only propertie of the file, so that you can modify it.  Then simple open it in notepad, remove the /3GB switch and reboot.

     

    Thursday, March 27, 2008 10:44 AM
  • Hi,

     

    I am experiencing the same errors while sending large amounts over the wire (1/2 GB or more).

    The application is written in C# and the system is a 64-bit Windows 2003, 8GB of memory or more.

    Is there any way to increase the OS resources (pages/non-paged pool)?

     

    Thanks,

     

    Bill

     

     

    Monday, July 21, 2008 4:42 PM
  • Thanks, Justin.

     

    I made the changes, rebooted the server and the issue is gone.

     

    Thanks Again,

    Sachin

     

    Wednesday, August 20, 2008 12:07 PM
  • I too have the same error. But unable to fix even after doing the changes... Any other ideas???

    Thank you,
    Udaya kumar
    Monday, August 24, 2009 12:30 PM