Hello! That’s me again!
Sorry, but the problem with busy channel still exists and I don’t have a clue how to solve this! I need urgent your help!
I’ll try to describe how the busy channel problem occurs:
Client (some 3d party application written not by me and wich doesn’t know anything about RemObjects): it is a C# application which sends to the Server XML-RPC requests throuh HTTP and as I have just said it doesn’t use any RO components.
Server (written by me): a service based on Remoting SDK and uses TROClassFactory. This service executes SQL queries and some routines need a couple of minutes to be executed.
The problem is that somhow the above mentioned C# application is able to send two and more XML-RPC requests so they are coming REALLY AT THE SAME TIME on the server and produces the error busy channel because the service execute the SQL query routine.
In order to find out when the requests are coming in, I have logging in the event TRORemoteDataModule.OnActivate.
I have also saved the ClientID and it is in each XML-RPC request different!
I did also load tests with postman, soapui (https://www.soapui.org/) and could not reproduce the error.
I have also tried # TROSynchronizedSingletonClassFactory, but then nobody can access or should wait the service until it has finished the executing something.
Using the # TROPooledClassFactory produces also the busy channel error.
My questions are:
Why the error busy channel occurs in case of different ClientIDs and independent HTTP requests?
How does ROChannel work exactly? E.g. in my case is it busy only during a long-running SQL query is being executed? Or is it just responsible for the bypassing of a HTTP request and after that the channel is still available for other requests? It seems actually it is busy
Should I maybe configure the Factories, TRORemoteDataModule on some other way?!
I hope, you could help us! We have a big issue in production with this busy channel error!
Thank you in advance!