LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Disabling Nagle's algorithm?

How do I disable Nagle's algorithm graphically in a vi?

 

I'm not too hot on property nodes and the VISA manual refers to c code, which I don't see / use in LabVIEW.  

0 Kudos
Message 1 of 15
(6,679 Views)

Have you had a look at the following article:

Do LabVIEW TCP Functions Use the Nagle Algorithm?

Adnan Zafar
Certified LabVIEW Architect
Coleman Technologies
Message 2 of 15
(6,675 Views)

Hi, I tried that but get error 1 "GetRawSocketFromConnectionID.vi - invalid connID" coming out of that vi. I'm using LabVIEW 8.5.1, on win xp pro.

 

 

0 Kudos
Message 3 of 15
(6,629 Views)

Hi Grahamwebb,

 

Good Morning and I hope your well today.

 

I have notified of your issue by NI UK Support and I would like to try and help you to resolve your issue.

 

Error one can be caused by resource conflicts. I would make sure your opening and closing your port references correctly and that your only making one connection to the port at any one time. 

 

Could you maybe post some example code that generates the error so I can help you further to debug the error?

 

I would also suggest making sure your communication loops for TCP/IP are seperate to the rest of your code - you do not want time delays in your communication generated by other parts of the code.

 

Please let me know if you have any questions,

Kind Regards
James Hillman
Applications Engineer 2008 to 2009 National Instruments UK & Ireland
Loughborough University UK - 2006 to 2011
Remember Kudos those who help! 😉
0 Kudos
Message 4 of 15
(6,622 Views)

I have been using the TCP_NoDelay vi in the knowledge base article linked above for a couple years without any problems. I recently upgraded to LV 2011 64 bit, though, and now it won't work. I get the same error 1 that grahamwebb mentioned. Is this a known problem and is there any way to fix this? Before I have used it on LV 2009 and LV 2010 32 bit, and I suspect that the problem is due to using 64 bit LV. The sub vi that is producing the error, GetRawSocketFromConnectionID.vi, is password protected so there's not really anything I can try to do to debug it.

 

Also, I get this error even if I use the demo program that comes with the library provided in the knowledge base article. I should also probably mention that I'm on Win 7 and am currently running both sides of the TCP connection on localhost, but again everything worked in the exact same configuration I'm trying now before the switch to LV 2011 64 bit.

0 Kudos
Message 5 of 15
(5,973 Views)

More likely than not Win7 has changed the library you need to call. I would check Microsoft's web site for enabling/disabling the Nagle algorithm on a Win7 64-bit machine. Once you know the call to make you can modify the TCP_NoDelay VI appropriately.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
0 Kudos
Message 6 of 15
(5,967 Views)

Everything works perfectly on Win 7 64-bit, just not with LV 2011 64-bit. Also GetRawSocketFromConnectionID is where the error is produced, which is password protected so I have no way of making any modifications to it. Thanks for the speedy reply, though

0 Kudos
Message 7 of 15
(5,960 Views)

I found this link

which shows a DotNet method to disable the Nagle algorithm. Someone from NI would have to chime in on whether the VI to get th esocket reference is valid on a Win7 64 bit machine.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
0 Kudos
Message 8 of 15
(5,955 Views)
0 Kudos
Message 9 of 15
(5,950 Views)

@Ben wrote:

This link to the MS knowlege base may help you.

 

Ben


Ben, the link may be bad. I get an error when I try to go to the link.

 

An Unexpected Error has occurred.
  • Sorry, your request failed. A notification has been sent to the development team to investigate.

    Exception ID: 15C18E89

    Please click the Back button on your browser.



Mark Yedinak
Certified LabVIEW Architect
LabVIEW Champion

"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot
0 Kudos
Message 10 of 15
(5,942 Views)