Dsvolk > > Oracle > > Tuning > > Net8 Trace My Blog | Search | About
(Not Logged In)
[ welcome! ] [ news ] [ install ] [ jump-jet ] [ app ] [ rac ] [ papers ] [ dba ] [ dvp ] [ racdd4d ] [ oem ] [ statspack ] [ education ] [ tuning ] [ ias ] [ backup ] [ dataprotection ] [ security ] [ oid ] [ options ] [ integration ] [ sales ] [ sun ] [ linux ] [ consulting ] [ faq ]

Кое что о net8 trace

Соглашение о материалах на этом сайте

Мой oracle blog
true dsvolk!
 

Иногда можно услышать жалобы, что медленно происходит соединение клиентов с сервером. Важно, на мой взгляд понять, где проблема. Бывают случаи, когда из-за неверно настроенного сетевого окружения слишком долго определяются ip адреса по имени хоста. И тому подобные вещи. Надеюсь после прочтения этой статьи, будет ясно, как локализовать проблему.  

Конфигурация: Windows client 9.2,  Oracle DB 9.2 on Linux

sqlnet.ora на клиенте (см. также Где и в каком порядке ищутся файлы сетевой конфигурации клиента sqlnet.ora и tnsnames.ora ?):

NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16
TRACE_DIRECTORY_CLIENT = c:\tmp
LOG_DIRECTORY_CLIENT = c:\tmp
TRACE_TIMESTAMP_<CLIENT/LISTENER/SERVER> = ON

В качестве клиентского приложения используем sqlplus, будем выполнять  запрос:

select 'x' from dual;

Общий формат trace файла примерно такой: 

[21-APR-2004 19:39:12:984] nigini: entry

Для нас важно, что бы было проставлено время. Даже просто просматривая по времени trace файл, можно обнаружить скачок. Например, я указал у себя заведомо несуществующий хост. Получил понятное дело

ERROR:
ORA-12535: TNS:operation timed out

Но только благодаря trace файлу я узнал, что при моих настройках на определение этого факта требуется более 30 сек.

[22-APR-2004 15:13:27:984] nttcni: trying to connect to socket 668.
...

[22-APR-2004 15:13:50:937] ntt2err: soc 668 error - operation=1, ntresnt[0]=505, ntresnt[1]=60, ntresnt[2]=0

Итак, рассмотрим, что же мы можем увидеть в trace файле. Процесс подсоединения можно представить себе так:

 

Рассмотрим что же реально происходит (мой trace файл)

Обращаем внимание на те конфигурационные файлы что реально используются при соединении
[21-APR-2004 19:39:13:015] nigini: entry Точка входа
[21-APR-2004 19:39:13:015] nttbnd2addr: looking up IP addr for host: rac2pub Определяем IP адрес
[21-APR-2004 19:39:13:046] nttcni: connected on ipaddr 192.168.10.227

[21-APR-2004 19:39:13:046] nsopen: transport is open

Соединяемся с сервером
[21-APR-2004 19:39:13:046] nsnainit: entry Выбираем протокол шифрования
[21-APR-2004 19:39:13:171] nscon: sending NSPTCN packet Посылаем  Connect packet  database listener'у.
[21-APR-2004 19:39:13:187] nscon: got NSPTRS packet Получаем Resend packet 
[21-APR-2004 19:39:13:187] nscon: sending NSPTCN packet Отправляем  Connect packet серверному процессу
[21-APR-2004 19:39:13:187] nscon: got NSPTAC packet получаем Accept packet 
[21-APR-2004 19:39:13:203] nsdofls: sending NSPTDA packet Посылаем пакет Data (не знаю зачем)
[21-APR-2004 19:39:13:312] nioqsn: entry Точка входа процедуры логина 
[21-APR-2004 19:39:13:312] nsdofls: sending NSPTDA packet Посылаем пакет Data c информацией про себя

.%......
........
..IBMPC/
WIN_NT-8
.1.0.

Получаем в ответ пакет и информацией от сервера

|........
|.....Lin
|uxi386/L
|inux-2.0
|.34-8.1.
|0.......

[21-APR-2004 19:39:13:312] nsrdr: got NSPTDA packet Получаем пакет Data (не знаю зачем)
[21-APR-2004 19:39:13:500] nsrdr: got NSPTDA packet Посылаем пакет Data с дополнительной информацией:

..system
.....AUT
H_TERMIN
AL.....D
SVOLK...
......AU
TH_PROGR
AM_NM...
..sqlplu
s.exe...
......AU
TH_MACHI
NE.....D
SGROUP\D
SVOLK...
.......A
UTH_PID.
....3057
6:29944.

Получаем session key: 

..AUTH_S
ESSKEY..
...E561B
8F27A56B
D2DAE917
EB926DEC
8DA.....

[21-APR-2004 19:39:13:531] nsrdr: got NSPTDA packet Посылаем пароль в зашифрованном виде

..system
.....AUT
H_PASSWO
RD.....6

а также посылаем все NLS настройки

 

[21-APR-2004 19:39:13:687] nsrdr: got NSPTDA packet Получаем пакет Data (не знаю зачем)
[21-APR-2004 19:39:13:734] nsdofls: sending NSPTDA packet Отправляем пакет Data (не знаю зачем)
[21-APR-2004 19:39:13:687] nassky: exit
[21-APR-2004 19:39:13:687] nszssk: exit

[21-APR-2004 19:39:13:734] nsdofls: sending NSPTDA packet

На этом этапе мы уже точно подключены к северу, приылается banner для SQLplus 

......Or|
acle9i.E|
nterpris|
e.Editio|
n.Releas|
e.9.2.0.|
4.0.-.Pr|
oduction|
.With.th|
e.Partit|
ioning,.|
Real.App|
lication|
.Cluster|
s,.OLAP.|

Список аббревиатур пакетов в trace файле:

NSPTCN Connect 0x01

NSPTAC Accept 0x02

NSPTRF Refuse 0x04

NSPTRD Redirect 0x05

NSPTDA Data 0x06

NSPTNL Null - empty data, no flags 0x07

NSPTAB Abort 0x09

NSPTRS Resend packet 0x0B

NSPTMK Marker packet 0x0C

NSPTAT Attention 0x0D

NSPTCNL Control information 0x0E

NSPTHI Highest legal packet type 0x13

 

Ссылки:

  • Oracle Support Services: Examining Oracle Net Trace Files

  • Если Вы используете .ODBC Driver, OLE DB Provider, Oracle Objects for OLE (OO4O),  Oracle Data Provider for .Net (ODP.Net), Oracle Service for Microsoft Transaction Server (ORAMTS) читайте  Note:216912.1 How to Perform Client-Side Tracing of Programmatic Interfaces on Windows Platforms
 
Dsvolk > > Oracle > > Tuning > > Net8 Trace Last Modified: 22-04-2004 15:33