Midas application server block client access

The app server remote datamodule threading model is MultiInstance / Apartment,
and I connect to SQL server using ADO.

When a client connect to the app server and call a time consuming database query interface, then other clients all blocked until the query finished.

I have tried to connect using DCOM connection and Socket connection, same thing happens.

It seems that all job are queued by midas app server, and the server services client access one by one.

Why this happens? How to solve?
qdyoungAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

swift99Commented:
Your server is running a single thread.  To gain parallelism, you need to split the communications thread from the database connectivity thread, and actually run several concurrent database connection threads.  For an enterprise scale service with a robust back end, 100 to 200 connections might be a good range to support.  For a WIntel based DBMS back end (MS SQL, Interbase, etc) I generally suggest one or two database threads per CPU.

For something a bit more robust for the communications piece, check out Midware from overbyte.delphicenter.com.  Midware allows you to separate the command logic from the database logic so that you can serve long requests in a separate thread.  The TWSocket communication component itself is non-blocking, so you can serve several thousand users concurrently from one communications thread.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
swift99Commented:
Allow one connection for every 50 users
0
swift99Commented:
What is your back end DBMS - does it multithread?  if not, then you're in trouble.
0
qdyoungAuthor Commented:
My backend DBMS is Microsoft SQL Server 2000.

Any real parallelism solution for Delphi MIDAS?
0
swift99Commented:
I use the MIDAS piece in briefcase model, and use direct API calls to the DB2 system here.  The MIDAS provider interface was not scalable enough for my purposes.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.