WAITEVENT: "SQL*Net message from client" Reference Note

"SQL*Net message from client" Reference Note

This is a reference note for the wait event "SQL*Net message from client" which includes the following subsections:

See Note:61998.1 for an introduction to Wait Events.

Definition:

  • Versions: 7.3 - 11.2
    Documentation:10.1 10.2 11.1 11.2 
  • The Oracle shadow process (foreground process) is waiting for a message to arrive from the client process. This is generally considered as an "idle" event in that the Oracle shadow is idle waiting for the client process to tell it what to do. Time waiting in this state is attributable to the client process itself plus any network transport time. 
    Note that the remote end of a database link waits on "SQL*Net message from client" when it is waiting for the session which opened the database link to send it a packet as that is its "client" process.

Individual Waits:

  Parameters:

In Oracle8i onwards P1RAW can be decoded into ASCII characters to give a clue as to which Net driver is used.
Eg: P1RAW=0x62657100 = 'beq\0' , P1RAW=0x54435000 = 'TCP\0' etc.

In earlier releases the value here is the value of the disconnect function of the Net driver being used (which is not much use).

  • bytes# (number of bytes received)

The number of bytes we need to receive. This figure may be misleading it is often a "guess" of how many bytes might be sent in the next packet as opposed to the real number of bytes expected. (eg: It may be just 1 even though the expected packet will be much larger, or it may be a large number even if only a few bytes are needed)

  Wait Time:

This wait blocks until a message is received from the remote connection (or until an abnormal end of file condition occurs on the underlying Net transport layer). There is no Oracle timeout on the wait.

  Finding Blockers:

The blocker is the client process and any network delay.

Systemwide Waits:

This event is classed as an "idle" wait so should be ignored when looking at systemwide timings. See Note:61998.1 for more information about "IDLE" waits.

Reducing Waits / Wait times:

One should look at the client processes and determine if the time is due to:

·         the client process waiting for input ,

·         time in the client process itself ,

·         time in the network between the client and the server. 
(SQL*Net trace (with TIMESTAMPS) can be helpful to check out the time in the network between the client and server. See 
Note:16658.1 for details of Net tracing).

Related:

Tracing User sessions Note:62160.1 
Oracle8i bug (fixed in 8170) which can cause increased client times 
Bug:1239470


猜你喜欢

转载自blog.csdn.net/royjj/article/details/80898942