LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

error 1101 sometimes when reading Datasocket, default reader is everyhost

I am testing a new version of code using DataSocket to transfer large arrays (640 x 480 16-bit integers from images) between machines. Three machines serve these images to a fourth, each of the three hosting its own DataSocket server. With identical code, only one of the three gives this error, and less than half the time. The stated explanation for the error ("Insufficient priviliges to read, write, or create an item in the DataSocket Server.") cannot be correct, since the default reader is everyhost, and since it works more than half the time. Are there other issues (networking?) that can cause this error? Note that the older version of the code runs without this error, on the same machine, but since the error arises in the DataSocket Read vi, I don't see how it can make much difference what version of the code is running. I would suppose that the remote computer is rejected by the DataSocket manager, not by the specific vi that is running.
0 Kudos
Message 1 of 12
(5,059 Views)
Hi Alan,

It's hard to say what exactly is causing this issue. However, from your explanation, it sounds like one of the clients is already accessing the DataSocket server when the failing machine tries to. Do you see the same issues with only one or two clients (including the failing PC) passing data to the server? What is the timing mechanism of the application, which makes sure that multiple clients are not writing to the server at once?

Thanks!
- Philip Courtois, Thinkbot Solutions

Thinkbot Solutions
0 Kudos
Message 2 of 12
(5,057 Views)

First, I should add that the machines are all running Labview 6.1 on XP platforms. The machine that is causing the trouble is running XP SP2, while SP1 runs on the others. The firewall is off, since this is all on a closed network.

Only one machine ever reads the Datasocket servers of the other three, and so there cannot be a conflict of multiple readers. And each of these three machines only writes to its own server, never to the other two. However, I did observe that there are no faults of this type when only one of the three servers is in use. Starting up the second can make this error 1101 happen a bit, and then the third introduces a strong chance of seeing it. It does appear that there is some sort of conflict, but I don't understand the cause.

I also don't understand why I don't see the same problem when I run the older code on the same machines. This writes up to 4 images at once, rather than in 4 operations with the newer code. The reader wants only one of the 4, and so by splitting up this data, I thought I would reduce the busy time of the server, lessening the chance of a conflict.

Also, the Datasocket Read routine has a timeout setting, suggesting that it can wait for access, and so avoid such conflicts. I set this delay to 5 seconds, but the error can occur much faster.

0 Kudos
Message 3 of 12
(5,053 Views)
Hi Alan,

Please submit a simplified version of the new and the old code. I'm not sure I understand what you mean when you describe how the old VI wrote up to 4 images at once.

Hopefully, looking at the code will give us some ideas on what can be wrong, thanks.
- Philip Courtois, Thinkbot Solutions

Thinkbot Solutions
0 Kudos
Message 4 of 12
(5,047 Views)
The first attachment has the old code, in which the images are attached to a single Datasocket write by making them each attributes of another item. In the second attachment, each is written separately. Using either method, my fourth computer can read this data from two other computers every time, and half the time on the one I am worrying about. (The other half, of course, it gets error 1101.)
I am not attaching Autoshutter.vi, because it is not essential to the flow of the program. You can also ignore the testing for the presence of the digital I/O card used by the Autoshutter program.
0 Kudos
Message 5 of 12
(5,046 Views)
Hi Alan,

You only attached one VI with the previous post, but you are mentioning two in the post. Please reduce the code to a simple example that doesn't require additional hardware, so we can easier troubleshoot the VI. Also, use highlight execution to find which function that creates the error.

Thanks!
- Philip Courtois, Thinkbot Solutions

Thinkbot Solutions
0 Kudos
Message 6 of 12
(5,033 Views)

Hi Alan,

Is your problem resolved? The post is quite old now, but just came across it while finding solution to similar datasocket issue.

 

From the nature of your problem it appears that not only "DefaultReaders" should be "everyhost" but also "Creators" should be "everyhost" too, since you have multiple applications pointing to the same datasocket node, you don't know which one is approaching first, and perhaps that's the reason sometimes you get error and sometimes not.

 

I hope this helps (if not solved already).

 

 

Vaibhav
Message 7 of 12
(4,596 Views)

 


I hope this helps (if not solved already).

 

 

Just curious to know "what made you dig this out" after 4 years?

0 Kudos
Message 8 of 12
(4,571 Views)

Hmm...

the thing is last year I had made a video broadcasting system using LabVIEW and I had used several "standby" datasocket servers (in case one fails) since it was an international conference that I was a co-organiser for (things must not fail while the whole world is watching, u know).

So that thing required me to have "Windows firewalls turned off" and also the Creators "everyhost" (since in runtime, the video source application can set it's datasocket server for "writing") and all the receiving clients would change a "channel" 😉 in their front panel to match with the change that was made on video source.

 

OK, all this story told me one thing that windows firewall must be turned off in order to allow other machines access datasocket server (this is an issue, though, I cannot just let it open like that)

 

Well, after one year, now while making another application with all those "stand by" DS Servers, I remembered to turn off the firewall, and somehow the program still didn't work, and showed error "1101" and I remembered those lessons, and I checked the firewall. And it was as it should be. then I just checked the permissions, and in that in the Creators, was "localhost" (I have "everyhost" for all the permissions on the main DS Server computer, but not on the standbys) and I changed it to "everyhost" (because there are several applications that access these datasocket connections, and the one that runs first, is the "creator" and it needs permission to create that node).

 

In this thread, Alan writes to have set "DefaultWriters/Reader" as "everyhost," but doesn't say about Creators, and as he said he got problems sometimes (less than half the times) I strongly believed that he might have that "Creators" role left as given only to "localhost". So thought to put the comment. Since he didn't write here if he solved the problem or not, I thought to write down if someone comes in future, like me.

 

Because these "small" issues eat up crucial time while in the middle of a development process, and usually such checks come during the time when we're actually starting to Test the system (or atleast parts of the system).

 

Message Edited by Vaibhav on 09-10-2009 01:51 PM
Vaibhav
Message 9 of 12
(4,564 Views)

 


Because these "small" issues eat up crucial time while in the middle of a development process, and usually such checks come during the time when we're actually starting to Test the system (or atleast parts of the system).

 

 

Absolutely I agree and thanks for completing the thread!!!

Message 10 of 12
(4,561 Views)