NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Sharing a string by a queue from Execution to execution on different machines

Solved!
Go to solution

Hi,

 

i try to share a string from one execution to other execution.

The problem is the executions are on different machines on the network

 

Running the stuff on same machine is working.

On other machine i got the error -17500 dcomcnfg.exe is configured wrong
I did all steps in  

http://digital.ni.com/public.nsf/allkb/157B530CE191D9348625700E003E9EA8?OpenDocument

 

Have you any idea ?

 

Greetings

 

juergen

 

 

--Signature--
Sessions NI-Week 2017 2016
Feedback or kudos are welcome
Download All
0 Kudos
Message 1 of 11
(6,173 Views)

Hi! 

 

For one TestStand application to access another TestStand application off the network you have to configure the NI TestStand AutoMgr DCOM object. You can access this object by typing dcomcnfg at the Run Menu. This opens up the Component Services window.  TestStand AutoMgr can be located under Console Root » Component Services » Computers » My Computer » DCOM config » NI TestStand AutoMgr.

Right-click on TestStand AutoMgr then click on Properties. Click on the Security tab and customize the access and configuration permissions. Add the user that will be logged on during the execution of the TestStand application. If the two computers are using a domain, then the format will be DOMAIN\USERNAME.

No Domain Configured for Either Computer

If a computer does not belong to a domain then it will reference a local database of trusted users. Having no domains configured can be problematic when setting up a OLE for Process Control (OPC) connection.

For example, computer A has an account called JoeSmith and computer B has an account called BillJones. How can an OPC client on computer A (running as JoeSmith) gain access to an OPC server on computer B (running as BIllJones)?

If the JoeSmith account is not registered with computer B's database then computer B will display an  "Access Denied" message when computer A tries communicating with it through an OPC client.

A solution to this situation is to create the exact same user account names and passwords on both computers. Computer A as well as computer B must have both JoeSmith and BIllJones accounts. This will configure the DCOM object and allow the TestStand applications to communicate with each other

 

Best regards

Ken

Message 2 of 11
(6,152 Views)

Setting up DCOM can be difficult and frustrating. Make sure you kill the TSAutoMgr.exe process after changing settings. Here are my recommendations for configuring computers to share synchronization objects.

 

1. Windows Firewall Settings. You must either disable the firewall on both computers or add the following exceptions:

  • On the computer that created the queue: Add a Program exception for the TSAutoMgr.exe application.
  • On the computers that use the queue remotely: Add a Program exception for the user interface application you are using (e.g. SeqEdit.exe)
  • On all computers add a Port exception for DCOM (TCP Port 135).


2. DCOM Settings. On the computer that creates the queue use dcomcnfg to make the following settings.

  • Computer-wide settings: On the COM Security tab of My Computer, use Edit Limits buttons to grant Remote Launch, Remote Activation and Remote Access permissions to ANONYMOUS LOGON
  • Application setting: On the Security tab of the NI TestStand AutoMgr item, grant Remote Launch, Remote Activation and Remote Access permissions to ANONYMOUS LOGON
  • Application setting: On the General tab of NI TestStand AutoMgr item, set the Authentication Level to None.


3. Disable COM authentication on your application. If your application on the computer that accesses the remote queue is not called SeqEdit.exe or TestExec.exe, you need this extra step. Add a registry setting that will disable COM authentication for your application (where APPLICATION.EXE is the name of your application, not a path):

 [HKEY_CLASSES_ROOT\AppID\APPLICATION.EXE]
        "AppID"="{C31FD07F-DEAC-4962-9BBF-092F0F3BFF3C}"

 

Message 3 of 11
(6,134 Views)

Hi Erik and Ken, 

 

I got it running within 10 Min!!! by setting up the DCOM stuff in TSAutoMgr.exe

So thanks to both answers. Well done.

 

But on startup TS will get an exception!

Note: before doing DCOM settings I have downgraded for TS4.1 to TS4.0 via VersionSeletor
so may be it will work on restarting the maschine. I am going to tell you tomorrow
now it is time for going home 🙂

 

 

Greetings

 

Juergen 

 

 

--Signature--
Sessions NI-Week 2017 2016
Feedback or kudos are welcome
0 Kudos
Message 4 of 11
(6,116 Views)

Good morning,

 

Well done after rebooting the maschine everything is working fine,

seems i have killed to much.

 

have a nice day

 

juergen 

--Signature--
Sessions NI-Week 2017 2016
Feedback or kudos are welcome
0 Kudos
Message 5 of 11
(6,102 Views)

Hi

 

well i got the server (TS that creates the queue) running in the production field.

I can access it with my development maschine an read and remove an element from the queue

But when i try it with an other maschine it will fail.

 

The strange thing is that "GetStatus()" is working because i will see that an element is in the queue.

on calling Dequeue() there will be an Error: -17205; Access Denied

 

Note: The development maschine was a server before and i did no changings on dcomcnf

 

Have you any idea ?

 

Juergen 

 

--Signature--
Sessions NI-Week 2017 2016
Feedback or kudos are welcome
0 Kudos
Message 6 of 11
(6,080 Views)

Did you do part 3 from Erik's post on your new machine? Basically, the communication in this case is in both directions (both the client and server have to access interfaces from each other's machine) thus the machines have to have permission both directions.

 

Hope this helps,

-Doug

Message 7 of 11
(6,073 Views)

Because the GetStatus operation works and Dequeue does not, I suspect the problem is that the server computer is unable to access the sequence context on your other computer.  You can verify this by specifying an array in the "Location to Store Array of Queue Elements" control in the Queue GetStatus step. It will likely give an Access Denied error also.

 

I know of two reasons why this might occur:

  1. DCOM settings on your other computer. If you are using the Sequence Editor or one of the NI User Interfaces, you should not have to use DCOMCNFG on your computer because TestStand adds registry entries to disable COM authentication for those applications. If you are running a different executable, then you'll need to add the registry entries I posted earlier.
  2. Firewall settings on your other computer. If you have a firewall enabled on that computer, you must add the program exception and port exception from my earlier post.

It's best to kill TSAutoMgr.exe process and restart the Sequence Editor after making changes.

 

Message 8 of 11
(6,072 Views)
Solution
Accepted by topic author j_dodek

Hi Doug and Erik

 

Sorry for my late response! I had higher priority task to slave away.

 

I check the dcomcnfg on both maschines.

 

Unless Erik said in last answer(1) the is no need of domcnfg on client maschine with use of SE,

I did his recommdation in frist answer(2 computer-wide) because the "not running system" differs

in that point that there was no ANONYMOUS LOGON. After doing this on the client maschine

Every was running as supected .

 

So thanks to the "blue-ones" for helping me

 

Greetings

 

Juergen 

 

 

--Signature--
Sessions NI-Week 2017 2016
Feedback or kudos are welcome
0 Kudos
Message 9 of 11
(5,980 Views)

Hello All,

there is an other important setting you should take care of.

In Windows Explorer --> "Folder Options" --> "View" --> "Simple Sharing (recommended)" must be OFF. (Might be slightly different, I have a German Windows)

Otherwise you also get the described error "...cound not connect to TSAutoMgr...".

 

Thanks for the good description above!

Thomas

0 Kudos
Message 10 of 11
(5,195 Views)