The following is an except from oracle documentation.

Overview of User Processes

When a user runs an application program (such as a Pro*C program) or an Oracle tool (such as Enterprise Manager or SQL*Plus), Oracle creates a user process to run the user's application.


As my understand, an user process is a piece of software that can connect to an oracle server. You (the user) can start a piece of this kind of software, then connect to oracle. If so, why Oracle creates a user process to run the user's application?



an user process is a piece of software that can connect to an oracle server. You (the user) can start a piece of this kind of software, then connect to oracle.

Not quite. A User Process in Oracle is different than a client, which is what I think you are referring to. The user starts a client program (SQL*Plus, Pro*C, etc.), which runs on the client system. This program contacts the Oracle database server, typically either via TNS or IPC. It is the Oracle database that spawns the User Process. It's a bit confusing terminology in that a User Process from the database perspective is really just another process that Oracle starts, but it is specific to a user's connection to the database - it is a server process. It is outside of the user's direct control.

| improve this answer | |
  • So do you mean the user process in the context you mentioned is the server process described in Oracle documentation? – Just a learner Jul 6 '11 at 17:12
  • No. There are Oracle "server processes" that perform the general tasks associated with running the database, common to all users, such as physical I/O management, archiving, memory management, etc. Then there are Oracle "user processes", which are still managed and started by the Oracle database, but whose sole function in life is to manage a user session. – DCookie Jul 6 '11 at 18:02

This section of documentation uses the term “User Processes” to refer to the client processes that connect to an Oracle database. If you read down the page further it describes the two types of processes that run the Oracle database server code – Server Processes and Background processes. Like DCookie I have heard Server Processes referred to as User Processes, hence the confusion.

The 11.2 Concepts Guide uses much better wording (emphasis mine):

When a user runs an application such as a Pro*C program or SQL*Plus, the operating system creates a client process (sometimes called a user process) to run the user application. The client application has Oracle Database libraries linked into it that provide the APIs required to communicate with the database.

Client and Server Processes

Client and Server Processes Client processes differ in important ways from the Oracle processes interacting directly with the instance. The Oracle processes servicing the client process can read from and write to the SGA, whereas the client process cannot. A client process can run on a host other than the database host, whereas Oracle processes cannot. …

| improve this answer | |

A user process is a process that resides on the client side and the server process resides on the server side once the user process starts it takes address with it that address is to be authenticated and the address of the server process is provided this address is taken by the user process to the client side hence client gets connected to the service process directly.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.