Quality Center OTA problem with .Net Apps
I am working on an application which use QC OTA to run automated tests out of QC. I submit multiple jobs(each job will have one or more test sets) from my application. These jobs will run in a separate threads. Each thread will make a new connection object to QC, login to project and run the tests. Once execution is complete it will disconnect, logout and release the object.What the problem is that sometime when one thread complete, all other die with a message "COM objects has been separated from its underlying RCW and can not be used" or similar message related to COM.
This does not happen all the times but does happen which makes my application unreliable
HP Response on this
1. “That does sound like it makes sense. I would wonder what specifically they are trying to drive from the API to see if it’s dropping threads cause they are timing out or what, but I would say the app interface they built controls the access so if they are dropping threads, it’s on their side (IMO)”
2.OTA is not thread safe. Customer has to write code so that the OTA code is always single threaded. Meaning the 2nd thread starts working only after the 1st thread completes. It is very easy to accomplish this in .NET but probably defeats the purpose of multi threading. Remember – the OTA dll is a *client side* dll and it is designed for client side. You can use it for server side requirements but don’t blame it when it does not scale up.”
Does anyone have any other thoughts about this.Is there any other way to make this work.
Re: Quality Center OTA problem with .Net Apps
You could try Side-by-side technology for .NET. In few words - you create several application that will take OTA from different places (where you put OTA dll before). .NET application will look inside theirs manifest file where path to the proper dll is written and should work with own OTA copy.
I never did this, but you could try.
PS. Note, OTA really do not thread safe COM dll... So you get all "As Is".