In general , AMD is more efficient and scalable than synchronized method dispatch.
I think, if the AMD operation don't call any other AMI operation, then the server can do like this:
1)One or more threads just get requests off the wire and cached it in a queue.
(Many further things can be done, such as : flow control, priority control, timeout control...)
(And it can solve this question:
http://www.zeroc.com/vbulletin/show...5&highlight=AMI)
2)Another AMDThreadPool's threads get a reqeust from the queue, process it and send back the response to the client.