More for less is the inherent attribute of Oracle technology. Although Oracle is resource hungry software but once it is installed it can be made to use its resources optimally. One of the prime examples of this is shared server architecture. I am not going to discuss the shared server architecture anymore or how it works here. But rather I am going to point out how Oracle optimizes its resources when it sees too many external routines users are connected to the database. Well Oracle does not do this automatically but it can be made through multithreaded agent. The configuration of multithreaded agent is complex but once done then it can be shared between multiple user sessions.
The default behavior of Oracle is to fork a new Extproc agent for every new user session. The default works but consumes too many resources very quickly. Therefore it is recommended that you use multithreaded agent when too many user sessions are expected to be connected to your Oracle database. Regardless of how it is configured here it is how it works. When the multithreaded agent is configured the incoming requests first come to a monitor thread. The monitor thread puts them in a FIFO queue. Monitor thread actually maintains the load balancing information about the dispatcher threads and puts the request in appropriate queue. Here dispatcher thread picks the request and puts it in another queue. Task threads get the request from this queue and accomplish the task and return the result of the request to the appropriate user session.
No comments:
Post a Comment