FUTURE TCP 와 SQL*NET V2 사용시 PERFORMANCE

제품 : SQL*NET
작성날짜 : 1995-05-04
Subject: Re: Know How..[ 2. Future/tcp 사용시]
두번째 항목의 경우 future/tcp 에서 Named Server를 잘못설정하면 Host의
Named Server를 다 찾고서, 없으면 Client의 host file을 뒤져서 자기 host
alias로 처리하는 경우가 있었습니다.(1-2초 걸리던 connection time이 12초
까지 걸렸음)
경남은행에도 SLIP으로 테스트를 하는데 SQL*Net을 통하면 엄청 늦다고 계속
불평 해서 가서 보니까 SQL*Net의 문제가 아니라 future/tcp의 Client host
file과 Named Server의 Host file의 불일치 때문으로 판명난 적이 있었습니다.
이런경우,
1. Client에서 future/tcp의 install program으로 Named Server를 없애든지
2. Host와 Client의 Host file을 일치 시키면 되었습니다.
sql*net v1 & v2 test 지원 중 발견된 사항입니다.
1.
아직도 많은 사용자가 sql*net v2 가 별 효과가 없다고 생각합니다. 이런
user는 주로 MTS 환경으로 setting은 하였으되 shared server와 dispatcher를
한개씩 뛰우고 사용하고 있었읍니다.
근본적으로 oracle의 mts는 FIFO 방식으로 SQL을 처리하기 때문에 server가
하나만 떠 가지고는 당연히 sql*net v1의 dedicated server 보다 느리게
처리됩니다.
따라서 mts 환경으로 setup 할 때에는 최소한 shared server와 dispatcher를
2개 이상씩 (3개이상 권유) 뛰워서 사용할 수 있도록 하기 바랍니다.
일부에서는 이런이유로 oracle mts 기능이 별볼일 없더라 라고 오해하며
옆사람에게도 전달하고 있습니다.
2.
future tcp/ip 사용시에 tnsnames.ora에 host name 을 사용하면 sql*net v2 가
v1보다 3배 정도 더 느리게 되는데 이때에는 ip address number를 직접사용하면
됩니다.
삼성전관 pdss test시 connection time : sql*net v1 --> 6-8초
sql*net v2 host name --> 25초
sql*net v2 ip number --> 2-3초

Yes, it seems to be a kernel bug. Previously, my wife used Windows for years and nothing like this happened. Now, she tells a lot about Linux systems :-)
An example of this very-ugly-workaround for somebody who'll find this topic struggling with the same problem:
$ cat /etc/pm/sleep.d/99_fix_time_shift
#!/bin/bash
# fixing https://bbs.archlinux.org/viewtopic.php?id=173487
case "$1" in
suspend)
date +%s > /tmp/suspend.log
resume)
was=`cat /tmp/suspend.log`
now=`date +%s`
# time shifts for 68 hours
if [ $now -gt `expr $was + 244800` ]; then
date -s "`date -R --date="-68 hours ago"`"
## sleep 30; ntpdate ntp.ubuntu.com
fi
esac
Last edited by shurup (2014-03-26 16:25:55)

Similar Messages

  • TCP/IP IN SQL*NET & SLIP / PPP

    제품 : SQL*NET
    작성날짜 : 1997-10-10
    SLIP (Serial Line Internet Protocol)
    SLIP 과 Ethernet 은 TCP/IP 을 구현하는 매체에 규정되어지는 두개의
    PROTOCOL 입니다
    SLIP은 serial/modem lines 에 사용되어지며, Ethernet은 Coaxial
    cable 에 사용되어집니다
    SQL*NET 에서는 이 두가지가 차이가 없으며, SQL*NET 은 이 두 가지를
    단지 TCP/IP 로 볼 뿐입니다.
    그림으로 보면 다음과 같읍니다
    | SQL*Net |
    | Tcp/ip |
    -------------------+
    | SLIP | Ether |
    -------------------+
    | Serial| Coax |
    SLIP 대신에 PPP 를 사용하는 것은 serial TCP/IP 통신을 하는 새로운
    방법입니다
    이러한 방법은 SQL*NET 과는 직접적인 관련이 없으며, SQL*NET 은
    Serial Line 을 통해 바로 접속이 됩니다.
    따라서 Serial line (Modem)과 Ethernet (Lan card) 을 통한 접속은
    TCP/IP 설정만 올바르게 되어있다면 SQL*NET 이상없이 접속할수
    있으며 이상유무를 SQL*NET 에서 볼수는 없읍니다

    When someone answers you, please forward the answer to my email. I am trying to connect to an Oracle db from Visual Basic, and need the component. I have downloaded software from this site, but it did not have the SQL Net.

  • JDBC, SQL*Net wait interface, performance degradation on 10g vs. 9i

    Hi All,
    I came across performance issue that I think results from mis-configuration of something between Oracle and JDBC. The logic of my system executes 12 threads in java. Each thread performs simple 'select a,b,c...f from table_xyz' on different tables. (so I have 12 different tables with cardinality from 3 to 48 millions and one working thread per table).
    In each thread I'm creating result set that is explicitly marked as forward_only, transaction is set read only, fetch size is set to 100000 records. Java logic processes records in standard while(rs.next()) {...} loop.
    I'm experiencing performance degradation between execution on Oracle 9i and Oracle 10g of the same java code, on the same machine, on the same data. The difference is enormous, 9i execution takes 26 hours while 10g execution takes 39 hours.
    I have collected statspack for 9i and awr report for 10g. Below I've enclosed top wait events for 9i and 10g
    ===== 9i ===================
    Avg
    Total Wait wait Waits
    Event Waits Timeouts Time (s) (ms) /txn
    db file sequential read 22,939,988 0 6,240 0 0.7
    control file parallel write 6,152 0 296 48 0.0
    SQL*Net more data to client 2,877,154 0 280 0 0.1
    db file scattered read 26,842 0 91 3 0.0
    log file parallel write 3,528 0 83 23 0.0
    latch free 94,845 0 50 1 0.0
    process startup 93 0 5 50 0.0
    log file sync 34 0 2 46 0.0
    log file switch completion 2 0 0 215 0.0
    db file single write 9 0 0 33 0.0
    control file sequential read 4,912 0 0 0 0.0
    wait list latch free 15 0 0 12 0.0
    LGWR wait for redo copy 84 0 0 1 0.0
    log file single write 2 0 0 18 0.0
    async disk IO 263 0 0 0 0.0
    direct path read 2,058 0 0 0 0.0
    slave TJ process wait 1 1 0 12 0.0
    ===== 10g ==================
    Avg
    %Time Total Wait wait Waits
    Event Waits -outs Time (s) (ms) /txn
    db file scattered read 268,314 .0 2,776 10 0.0
    SQL*Net message to client 278,082,276 .0 813 0 7.1
    io done 20,715 .0 457 22 0.0
    control file parallel write 10,971 .0 336 31 0.0
    db file parallel write 15,904 .0 294 18 0.0
    db file sequential read 66,266 .0 257 4 0.0
    log file parallel write 3,510 .0 145 41 0.0
    SQL*Net more data to client 2,221,521 .0 102 0 0.1
    SGA: allocation forcing comp 2,489 99.9 27 11 0.0
    log file sync 564 .0 23 41 0.0
    os thread startup 176 4.0 19 106 0.0
    latch: shared pool 372 .0 11 29 0.0
    latch: library cache 537 .0 5 10 0.0
    rdbms ipc reply 57 .0 3 49 0.0
    log file switch completion 5 40.0 3 552 0.0
    latch free 4,141 .0 2 0 0.0
    I put full blame for the slowdown on SQL*Net message to client wait event. All I could find about this event is that it is a network related problem. I assume it would be true if database and client were on different machines.. However in my case they are on them very same machine.
    I'd be very very grateful if someone could point me in the right direction, i.e. give a hint what statistics should I analyze further? what might cause this event to appear? why probable cause (that is said be outside db) affects only 10g instance?
    Thanks in advance,
    Rafi.

    Hi Steven,
    Thanks for the input. It's a fact that I did not gather statistics on my tables. My understanding is that statistics are useful for queries more complex than simple select * from table_xxx. In my case tables don't have indexes. There's no filtering condition as well. Full table scan is what I actually want as all software logic is inside the java code.
    Explain plans are as follows:
    ======= 10g ================================
    PLAN_TABLE_OUTPUT
    Plan hash value: 1141003974
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 259 | 2 (0)| 00:00:01 |
    | 1 | TABLE ACCESS FULL| xxx | 1 | 259 | 2 (0)| 00:00:01 |
    In sqlplus I get:
    SQL> set autotrace traceonly explain statistics;
    SQL> select * from xxx;
    36184384 rows selected.
    Elapsed: 00:38:44.35
    Execution Plan
    Plan hash value: 1141003974
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 259 | 2 (0)| 00:00:01 |
    | 1 | TABLE ACCESS FULL| xxx | 1 | 259 | 2 (0)| 00:00:01 |
    Statistics
    1 recursive calls
    0 db block gets
    3339240 consistent gets
    981517 physical reads
    116 redo size
    26535700 bytes received via SQL*Net from client
    2412294 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    36184384 rows processed
    ======= 9i =================================
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes | Cost |
    | 0 | SELECT STATEMENT | | | | |
    | 1 | TABLE ACCESS FULL | xxx | | | |
    Note: rule based optimization
    In sqlplus I get:
    SQL> set autotrace traceonly explain statistics;
    SQL> select * from xxx;
    36184384 rows selected.
    Elapsed: 00:17:43.06
    Execution Plan
    0 SELECT STATEMENT Optimizer=CHOOSE
    1 0 TABLE ACCESS (FULL) OF 'xxx'
    Statistics
    0 recursive calls
    1 db block gets
    3306118 consistent gets
    957515 physical reads
    100 redo size
    23659424 bytes sent via SQL*Net to client
    26535867 bytes received via SQL*Net from client
    2412294 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    36184384 rows processed
    Thanks for pointing me difference in table scans. I infer that 9i is doing single-block full table scan (db file sequential read) while 10g is using multi-block full table scan (db file scattered read).
    I now have theory that 9i is faster because sequential reads use continuous buffer space while scattered reads use discontinuous buffer space. Since I'm accessing data 'row by row' in jdbc 10g might have an overhead in providing data from discontinuous buffer space. This overhead shows itself as SQL*Net message to client wait. Is that making any sense?
    Is there any way I could force 10g (i.e. with hint) to use sequential reads instead of scattered reads for full table scan?
    I'll experiment with FTS tuning in 10g by enabling automatic multi-block reads tuning (i.e. db_file_multiblock_read_count=0 instead of 32 as it is now). I'll also check if response time improves after statistics are gathered.
    Please advice if you have any other ideas.
    Thanks & regards,
    Rafi.

  • SQL*NET for TCP/IP

    Where can i download SQL*NET for tcp/ip?

    When someone answers you, please forward the answer to my email. I am trying to connect to an Oracle db from Visual Basic, and need the component. I have downloaded software from this site, but it did not have the SQL Net.

  • How to decipher SQL*Net protocols/packets?

    hi,
    we have a customer that sells compliance solutions that basically track and audit information at the packet level. in order to expand their customer base they would like to offer their solutions to customer that have business systems built on Oracle Forms 6.x and Pro*C. to do this they need to understand how our network communication works. is this something that is generally available? here are some details for what the partner wants from us ...
    Their product intercepts the communication between a typical Db client and Db server at packet level, performs analysis on the packets and extracts the information required for SOX compliance. It's been successfully installed and working for various versions of Oracle servers and Clients, however it does not handle Oracle Forms and pro*C clients.
    It also wrks for pro*c client except for bind variables and arrays.
    We need information on packet formats during communication between Oracle database and Forms and pro*c clients. This will help our product to work for SOX compliance for the customers who have FORMS and pro*c clients without replacing them
    I know that form Forms to DB its SQL*Net, not sure what the protocol is for PRO*C to DB communication but do we have documentation on both?

    Assuming you are on Windows, you can download the client installable from
    http://download.oracle.com/otn/nt/oracle10g/10201/10201_client_win32.zip -- for Oracle 10g client
    http://download.oracle.com/otn/nt/oracle11g/win32_11gR1_client.zip -- for Oracle 11g client
    If you are looking for any other version, please mention the same.

  • TRACING IN SQL*NET V2

    제품 : SQL*NET
    작성날짜 : 1997-10-10
    Introduction
    ~~~~~~~~~~~~
    For most problems you need to identify the relevant parts of a
    connection to trace. To do this consider which scenario you are
    having problems with and where tracing needs to be enabled.
    Note that tracing produces a lot of output , especially at higher
    trace levels.
    There are 3 main areas of SQL*Net that can produce trace output:
    1 = the SQL*Net 'client'
    2 = the 'listener' process
    3 = the SQL*Net 'server'.
    a) Establishing a connection:
    Client ----> Listener ----> Server
    1 2 3
    b) An established connection:
    Client --------> Server
    1 3
    c) Opening a database link:
    Client ----> Server ----> Listener -----> Server2
    1 3 1 2 3
    Note here that the Oracle server process is also a SQL*Net
    client when it makes an outgoing call to a listener to
    open a database link. Database links are OPENED when first
    used. They should then remain open until closed.
    d) An established database link:
    Client ----> Server -----> Server2
    1 3 1 3
    In each case here there are several potential sampling points. You
    should be able to identify quickly which of these scenarios matches
    your setup. As these scenarios are likely to involve connections
    between different machines you should remember that tracing for any
    process is controlled by the configuration details that the process
    reads WHEN IT IS STARTED. This is especially important when looking
    at MTS connections as the SQL*Net server is the 'dispatcher' process.
    Some dispatchers are started when the database instance is started
    and others may start at a later time (on demand). Each dispatcher will
    read their SQL*Net configuration WHEN THEY START.
    7.2 Client Tracing
    ~~~~~~~~~~~~~~
    For client TOOLS edit or create the file $HOME/.sqlnet.ora and add
    the lines:
    trace_level_client=16
    trace_file_client=cli
    trace_directory_client=/tmp # Or a known directory
    trace_unique_client=true # Add '_pid' to trace filename
    This will turn on FULL tracing for your user account only producing
    output in a file called /tmp/cli_<PID>.trc .
    (For some SQL*Net versions the file will be just /tmp/cli.trc)
    For client 'ORACLE' process (as in the case of database links) put this
    same information into $TNS_ADMIN/sqlnet.ora file.
    On versions up to and including Oracle 7.0.16 client trace may not
    add a process ID to the name of the trace file. This means two
    processes may end up writing to the same trace file unless you
    take care to control which processes write trace output to each file.
    7.3 Listener Tracing
    ~~~~~~~~~~~~~~~~
    Listener tracing can ONLY be configured in the listener.ora file.
    Add the lines below to the listener.ora file:
    trace_level_listener=16
    trace_file_listener=listener
    trace_directory_listener=/tmp # Or a known directory
    This will define FULL listener tracing to the file /tmp/listener.trc.
    You can enable this tracing by either:
    lsnrctl reload
    OR
    lsnrctl stop;
    lsnrctl start;
    TCP/IP
    ~~~~~~
    It is often useful to confirm that a listener is listening on a
    specified address. Most Unix machines include a command called
    'netstat' (Often in /etc or in /usr/etc). The command netstat -a
    should list all TCP/IP end points on which a listener is listening.
    Eg:
    For a listener listening on HOST=... PORT=1580 there should be a
    netstat entry of the form:
    RecvQ SendQ Local Address Foreign Address TCP state
    0 0 *.1580 *.* LISTEN
    Note: Some versions of netstat will only list established connections
    and not listen end points. See the man page on your machine.
    7.4 Server Tracing
    ~~~~~~~~~~~~~~
    Server side trace is not required as often as the other two traces
    mainly because most problems are related to establishing a connection.
    Once a connection has been established the client and server processes
    are communicating. It is sometimes useful to see exactly what SQL
    commands have been received by the server, and what data it has sent
    back out.
    The file $TNS_ADMIN/sqlnet.ora controls the server side tracing. Add
    the lines below to this file:
    trace_level_server=16
    trace_file_server=server
    trace_directory_server=/tmp # Or a known directory
    Output should be sent to the file /tmp/server_<PID>.trc
    Note: Server side tracing acts on the SQL*Net server side.
    For dedicated connections this is the Oracle process on the
    server machine.
    For MTS connections this is the DISPATCHER and NOT the shared
    server. Data is passed between the dispatcher and the shared
    servers via the SGA and this does NOT involve SQL*Net.
    It is also important to note that as a dispatcher handles
    several client processes the dispatcher trace output can be a
    mix of trace from many client processes making it VERY difficult
    to follow. The general advice for such problems is:
    a) See if the problem reproduces WITHOUT using MTS - if
    so the trace is much cleaner
    b) If a problem ONLY reproduces under MTS ensure the machine
    is in a controlled environment so you can be sure that only
    YOUR process is using the dispatcher.
    7.5 Trace Summary
    ~~~~~~~~~~~~~
    1) Identify where you need to trace.
    2) Identify which files on which machines control tracing at these
    points. Tracing is controlled in the following files:
    Client Server Listener
    ~~~~~~ ~~~~~~ ~~~~~~~~
    Files: $HOME/.sqlnet.ora sqlnet.ora listener.ora
    sqlnet.ora
    3) Add in the relevant trace parameters (See Below)
    4) Restart any processes that need to read the new trace values.
    Reload the listener as required.
    5) Reproduce your problem
    6) Save all your trace output immediately
    7) Disable the tracing
    7.6 Main Trace Parameters
    ~~~~~~~~~~~~~~~~~~~~~
    trace_level_listener = off
    trace_file_listener = Filename *1
    trace_directory_listener = Directory *2
    *1 Unquoted (") filenames will be translated into lower case.
    *2 You CANNOT use environment variables in the Filename or Directory
    name.
    7.7 Diagnosing Trace output
    ~~~~~~~~~~~~~~~~~~~~~~~
    Trace output can be very difficult to follow. Before looking at a
    trace file make sure:
    a) You are familiar with the sequence of events in setting up
    a connection. SQL*Net connections follow a sequence of
    events - you will need to determin where in the sequence
    the problem occurs.
    b) Do not be misled by error reports in the trace files. You
    must follow the context of the errors - an error may be
    quite valid at that point in a sequence. Eg: For client
    connections a list of addresses to call is built - if the
    first address yeilds no response the next address is tried.
    This next address may yeild a response and the 'true' error
    occurs at this point in the sequence.
    c) Do not be misled by unusual 'Bequeath' connections in the
    trace. If an error is received over SQL*Net the client
    may use a "Bequeath" operation to spawn an oracle process
    which it then uses to get the TEXT of the error. A very short
    exchange of packets occurs and the bequethed process exits.
    The 'TRUE' problem is likely to be before this bequeath
    operation.
    Useful trace 'tags':
    The following are useful items to follow in trace files - these
    are not guaranteed to be valid across all SQL*Net releases and
    are for guidance only. Entries are assumed to be taken at trace
    level 16 to allow data packets to be seen. This will produce a
    LOT of trace output.
    -<ERROR>-
    Error information follows. Remember the error may be acceptable
    osntns: Calling address
    Shows address list constructed for a call OUT to a listener
    nricall: Making call with following address information: ...
    Shows the ACTUAL address being called from the above list
    nsopen: entry
    We are about to try and open a connection.
    nsopen: transport is open
    nsopen: error exit
    A connection to the called address has been made / failed.
    nsclose: ...
    An established connection is being closed - check nearby
    for errors.
    nscall: redirected
    The client has been redirected to a differenct address.
    The next step should be to call the new address. The address
    should appear in an earlier data packet.
    nspsend / nsprecv
    Outgoung / Incoming data

    This forum is for Oracle Migration Workbench issues, i.e. migration using the workbench from a non Oracle database to an Oracle database.
    Here are some pointers that may be useful, but you may need to get more information elsewhere, for example Oracle Customer Support.
    a Oracle 7.1 client (including your example) will connect to an Oracle 8.1.5 server.
    Is the server correctly configured (can a client connect from another machine)?
    Tracing can be turned on in the client, server and/or listener to get further information.
    Turloch

  • How to drill down the cause of "SQL*Net message from/to client"

    Pretty frustrated with my tune up using suggestions from many papers for Oracle 10g R2 on AIX 5.3 L system. My users told me that the system (including Baan 5c) still responds slowly in some processes, some even worsen.
    Using both queries such as
    SELECT sid, schemaname, status FROM gv$session ORDER BY 2;
    SELECT inst_id, seq#, event, p1, p2, p3, wait_time FROM v$session_wait_history WHERE sid=<sid from above>
    INST_ID SEQ# EVENT P1 P2 P3 WAIT_TIME
    1 1 SQL*Net message from client 1413697536 1 0 6419
    1 2 SQL*Net message to client 1413697536 1 0 0
    and others similar, I found very large numbers (almost 97%) of the sessions have events as “SQL*Net message to client” and “SQL*Net message from client” on their wait_time even the sids are in inactive status. After checking the meaning of those messages in Oracle Performance and Tuning document, the document states that mainly they are probably network problems. So How can I drill down to what status of network from my client (the users) to server by Oracle or AIX? In Baan, it has its own parameter sets in its db_resource file controlling the connectivity. In average, there are 4000 “opened cursor current”, but most of them inactives.
    So my colleague asked me rollback all th changes I did on OS level such as minperm%=5
    maxperm%=90
    maxclient%=90,
    lgpg_regions lgpg_size,
    sys0 maxuproc=512,
    aio0 maxservers='260'
    and many ioo parameters to system defaults.
    I even removed the mulitplex copy of the redo log.
    I tried to proof them that there maybe the problem of the Baan/Oracle connectivity, ie due to message above,

    http://docs.oracle.com ... read them for configuration information.
    http://tahiti.oracle.com ... read them for recommendations.
    http://otn.oracle.com ... find the best practices docs.
    http://metalink.oracle.com ... look for similar issues to yours.
    People that change things, on production boxes, without first determining that metrics indicate they are a good idea, and then determining their impact on a test box, should be sold to zoos as leopard food.
    PS: Slowly likely has absolutely nothing to do with anything you touched. First you tune the application. Then you tune the database. Then you tune the operating system. Get out of the way and make the DBAs do their job.

  • TNS: connection closed error with SQL*net

    Hi all,
    I've got a new installation of Oracle 11.1.0.6.0 enterprise (Linux). It works fine with direct sqlplus connections but I'm having problems with SQL*net and JDBC thin client connections.
    The database is built correctly and works fine:
    user@cthulhu bash[61]: sqlplus user/pwd
    SQL*Plus: Release 11.1.0.6.0 - Production on Mon Aug 4 12:59:53 2008
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    SQL> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    PL/SQL Release 11.1.0.6.0 - Production
    CORE 11.1.0.6.0 Production
    TNS for Linux: Version 11.1.0.6.0 - Production
    NLSRTL Version 11.1.0.6.0 - Production
    SQL>
    but if I try to connect using SQL*net I get errors. I have my TNS listener configured and it starts without errors, reporting the database as a service, and tnsping is fine:
    user@cthulhu bash[62]: tnsping cthulhu_mar
    TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 04-AUG-2008 13:02:07
    Copyright (c) 1997, 2007, Oracle. All rights reserved.
    Used parameter files:
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.30)(PORT=1521)) (CONNECT_DATA=(SID=mar)))
    OK (10 msec)
    user@cthulhu bash[63]: sqlplus user/pwd@cthulhu_mar
    SQL*Plus: Release 11.1.0.6.0 - Production on Mon Aug 4 13:02:41 2008
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    ERROR:
    ORA-12537: TNS:connection closed
    Enter user-name:
    In listener.log:
    Mon Aug 04 13:02:41 2008
    04-AUG-2008 13:02:41 * (CONNECT_DATA=(SID=mar)(CID=(PROGRAM=sqlplus)(HOST=cthulhu)(USER=marbur))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.30)(PORT=41754)) * establish * mar * 12518
    TNS-12518: TNS:listener could not hand off client connection
    TNS-12547: TNS:lost contact
    TNS-12560: TNS:protocol adapter error
    TNS-00517: Lost contact
    Linux Error: 32: Broken pipe
    This is a new instance of Oracle so there is no problem with listener.log being too large (as I've seen elsewhere). I've also tried increasing PROCESSES and SESSIONS in the initSID.ora file without any impact. The listener ports are open through the firewall (and disabling it temporarily makes no difference).
    Any suggestions?!
    Thanks, Matt

    This means nothing to me, but it could to someone else......
    from listener trace:
    2008-08-04 16:19:05.135381 : nlpcaini:env[161] = OLDPWD=/u01/app/oracle/product/11.1.0/db_1
    2008-08-04 16:19:05.135407 : nlpcaini:env[162] = ORA_NET2_DESC=12,15
    2008-08-04 16:19:05.135432 : nlpcaini:env[163] = ORACLE_SPAWNED_PROCESS=1
    2008-08-04 16:19:05.135465 : nlpcaini:exit
    2008-08-04 16:19:05.135498 : nsc2addr:normal exit
    2008-08-04 16:19:05.135536 : nsbeqaddr:entry
    2008-08-04 16:19:05.135566 : nsbeqaddr:connecting...
    2008-08-04 16:19:05.135603 : nsopen:entry
    2008-08-04 16:19:05.135633 : nsmal:entry
    2008-08-04 16:19:05.135667 : nsmal:1012 bytes at 0x81a8538
    2008-08-04 16:19:05.135694 : nsmal:normal exit
    2008-08-04 16:19:05.135722 : nsopenmplx:entry
    2008-08-04 16:19:05.135749 : nsmal:entry
    2008-08-04 16:19:05.135779 : nsmal:2020 bytes at 0x81a8930
    2008-08-04 16:19:05.135804 : nsmal:normal exit
    2008-08-04 16:19:05.135831 : nsiorini:entry
    2008-08-04 16:19:05.135861 : nsbal:entry
    2008-08-04 16:19:05.135889 : nsbgetfl:entry
    2008-08-04 16:19:05.135918 : nsbgetfl:normal exit
    2008-08-04 16:19:05.135966 : nsmal:entry
    2008-08-04 16:19:05.135995 : nsmal:84 bytes at 0x81b3dd8
    2008-08-04 16:19:05.136020 : nsmal:normal exit
    2008-08-04 16:19:05.136057 : nsbal:normal exit
    2008-08-04 16:19:05.136085 : nsiorini:exit (0)
    2008-08-04 16:19:05.136112 : nscpxget:entry
    2008-08-04 16:19:05.136139 : nscpxget:normal exit
    2008-08-04 16:19:05.136168 : nsopenalloc_nsntx:nlhthput on mplx_ht_nsgbu:ctx=81a8538, nsntx=81a8930
    2008-08-04 16:19:05.136196 : nsopenmplx:normal exit
    2008-08-04 16:19:05.136225 : ntpcon:entry
    2008-08-04 16:19:05.136253 : ntpcon:toc = 6
    2008-08-04 16:19:05.136283 : ntpcon:exit
    2008-08-04 16:19:05.136313 : nsopen:opening transport...
    2008-08-04 16:19:05.136341 : ntpcon:entry
    2008-08-04 16:19:05.136367 : ntpcon:toc = 1
    2008-08-04 16:19:05.136404 : sntpcall:entry
    2008-08-04 16:19:05.157048 : sntpcall:detaching from parent with additional fork
    2008-08-04 16:19:05.157304 : sntpcall:hdl[IR]=17, hdl[IW]=16
    2008-08-04 16:19:05.157350 : ntpcon:exit
    2008-08-04 16:19:05.157390 : nserror:entry
    2008-08-04 16:19:05.157428 : nsoptions:entry
    2008-08-04 16:19:05.157459 : nsoptions:lcl[0]=0x0, lcl[1]=0x2006, gbl[0]=0x0, gbl[1]=0x0, cha=0x0
    2008-08-04 16:19:05.157488 : nsoptions:Vectored IO not supported.
    2008-08-04 16:19:05.157518 : nsoptions:lcl[0]=0xf4ffe9ff, lcl[1]=0x6016, gbl[0]=0xe881, gbl[1]=0x0
    2008-08-04 16:19:05.157545 : nsoptions:normal exit
    2008-08-04 16:19:05.157574 : nsnainit:entry
    2008-08-04 16:19:05.157603 : nsnainit:normal exit
    2008-08-04 16:19:05.157642 : nsopen:global context check-in (to slot 6) complete
    2008-08-04 16:19:05.157675 : nsopen:lcl[0]=0xf4ffe9ff, lcl[1]=0x6016, gbl[0]=0xe881, gbl[1]=0x0, tdu=4096, sdu=8192
    2008-08-04 16:19:05.157706 : nsfull_opn:entry
    2008-08-04 16:19:05.157735 : nsfull_opn:cid=6, opcode=65, bl=0, what=0, uflgs=0x0, cflgs=0x0
    2008-08-04 16:19:05.157761 : nsfull_opn:nsctx: state=7, flg=0x4001, mvd=0
    2008-08-04 16:19:05.157790 : nsfull_opn:normal exit
    2008-08-04 16:19:05.157816 : nsopen:normal exit
    2008-08-04 16:19:05.157854 : nsevreg:entry
    2008-08-04 16:19:05.157884 : nsevreg:begin registration process for 6
    2008-08-04 16:19:05.157912 : nsevregPrePost:entry
    2008-08-04 16:19:05.157940 : nsevregPrePost:normal exit
    2008-08-04 16:19:05.157968 : nsevreg:sgt=0, evn=1, evt[2]=0x0
    2008-08-04 16:19:05.157996 : nsevreg:begin notification process for 6
    2008-08-04 16:19:05.158022 : nsevregAffectNotif:entry
    2008-08-04 16:19:05.158050 : nsevregAffectNotif:exit (0)
    2008-08-04 16:19:05.158078 : nsevreg:rdm=0, sgt=0, evt[0]=0x800, [1]=0x800, [2]=0x0, nrg=0
    2008-08-04 16:19:05.158105 : nsevreg:registering for 0x800
    2008-08-04 16:19:05.158135 : ntpctl:entry
    2008-08-04 16:19:05.158162 : ntpctl:exit
    2008-08-04 16:19:05.158203 : nsevreg:normal exit
    2008-08-04 16:19:05.158260 : nsbeqaddr:error exit
    2008-08-04 16:19:05.158289 : nsbequeath:error exit
    2008-08-04 16:19:05.158342 : nsglhe:exit

  • WINDOWS 용 SQL*NET V1 사용 시 ORA-6136 조치 방법

    제품 : SQL*NET
    작성날짜 : 1995-11-07
    WINDOWS 용 SQL*NET V1 사용 시 ORA-6136 조치 방법
    ===============================================
    Client and Server 환경에서 간혹 SQL*NET으로 Server에 접속하려고 할 때,
    ORA-6136 Error가 발생하면서 Unix Server에서 $tcpctl stop 으로 orasrv의
    Process를 정지시키려고 해도 아무런 반응없이 Holding되는 경우가 발생하면서
    다음과 같은 메서지가 나타납니다.
    06136, 00000, "NETTCP: error during connection handshake"
    // *Cause:  Network I/O failure occurred while communicating with the
    // host's SQL*Net TCP/IP server.
    //     See the SQL*Net TCP/IP server log file for more details.
    // *Action: Contact your customer support representative.
    상기의 에러가 나타날 경우에는 아래와 같은 방법으로 orasrv를 기동시키십시오.
    1. TCPCTL Utility를 이용하여 다음의 Option을 부여하여 Start하는 방법.
    $tcpctl start listen=30 timeout=30 forkon
    listen=<queue size>이며, 청취자 열의 크기를 지정.
    timeout=<seconds>이며, 지정된 시간에 orasrv와의 응답 확인 시간을 나타냄.
    forkon SQL*net이 orasrv process에 접근하는 방법을 나타냄.
    System에 따라서 forkon option이 적용 않되는 경우도 있음.
    2. Client에서 접속을 하여 사용하다가 비정상 종료(Session이 맺어진 상태에서
    Client의 Power Off)를 하여 Server에 Processor가 남아 있고, orasrv를 통해
    접속할 수 있는 Session의 수가 점점 줄어들 경우가 있는 데 이러한 경우에는
    orasrv를(tcpctl stop or UNIX kill command를 이용)강제로 종료하시고 다음과
    같이 Start 시켜 주십시오.
    #nohup tcpctl start ( Client의 비정상 종료가 Orasrv에는 영향을 미치지 않음)
    또는
    #orasrv (ORACLE_HOME\bin directory에서 직접 orasrv processor를 띄운다)

  • High SQL*Net message values in trace file.

    Hi all,
    This is my first post here. I will try to more less describe the problem i am facing.
    Any help is more than welcome!
    I am facing some performance issues with application. Slow GUI. I run some tests, i tracked the session. what i found in trace file is:
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse     1734     1.61   1.61             0            0            0              0
    Execute   1734   32.52  32.56           0           26          15             4
    Fetch     1737     14.46  14.51           2        41867        84          2847
    total     5205     48.59   48.69            2        41893        99          2851
    Misses in library cache during parse: 7
    Misses in library cache during execute: 5
    Elapsed times include waiting on following events:
      Event waited on                             Times       Max. Wait     Total Waited
      ----------------------------------------           Waited       ----------            ------------
      SQL*Net message to client            5207           0.00               0.02
      SQL*Net message from client        5206          106.18             339.72
      log file sync                                    3               0.00               0.00
      SQL*Net more data to client            51              0.00               0.00
      SQL*Net more data from client        10              0.00               0.00
      Disk file operations I/O                    1               0.00               0.00
      db file sequential read                     2               0.00               0.01
      library cache: mutex X                    1               0.05               0.05
    Look at Max. Wait and Total Waited columns. Is it possible to safely tune it by changing SDU in sql*net ? and if so, is it needed to change the SDU value on client and server sides ?

    66ff73bb-87bd-4c84-bada-0141fb25344b wrote:
    Hi all,
    This is my first post here. I will try to more less describe the problem i am facing.
    Any help is more than welcome!
    I am facing some performance issues with application. Slow GUI. I run some tests, i tracked the session. what i found in trace file is:
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse     1734     1.61   1.61             0            0            0              0
    Execute   1734   32.52  32.56           0           26          15             4
    Fetch     1737     14.46  14.51           2        41867        84          2847
    total     5205     48.59   48.69            2        41893        99          2851
    Misses in library cache during parse: 7
    Misses in library cache during execute: 5
    Elapsed times include waiting on following events:
      Event waited on                             Times       Max. Wait     Total Waited
      ----------------------------------------           Waited       ----------            ------------
      SQL*Net message to client            5207           0.00               0.02
      SQL*Net message from client        5206          106.18             339.72
      log file sync                                    3               0.00               0.00
      SQL*Net more data to client            51              0.00               0.00
      SQL*Net more data from client        10              0.00               0.00
      Disk file operations I/O                    1               0.00               0.00
      db file sequential read                     2               0.00               0.01
      library cache: mutex X                    1               0.05               0.05
    Look at Max. Wait and Total Waited columns. Is it possible to safely tune it by changing SDU in sql*net ? and if so, is it needed to change the SDU value on client and server sides ?
    When you start with the wrong question, no matter how good an answer you get, it won't matter very much.
    you do NOT have any problem; just a useless observation.

  • SQL*Net message from client - huge wait in trace file

    Dear All,
    I am facing a performance issue in a particular operation ( which was completed in 21 Minutes earlier). Now the same operation takes more than 35 Minutes. I took a trace for those session ( 10046 level 12 trace ) and found Lot of waits in SQL*Net message from client.
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQLNet message from client 611927 10.00 1121.35*
    I copied only the highest wait in the tkprof output.
    And I found from the tkprof and even in raw trace file this event waits more time after excuting
    SELECT sysdate AS SERVERDATE from dual;
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 115 0.00 0.00
    SQLNet message from client 115 10.00 724.52*
    Please help me to find out why this wait taking long time, especially on the above query..
    Regards,
    Vinodh

    Vinodh Kumar wrote:
    Hi,
    This is what available in the trace file
    PARSING IN CURSOR #2 len=38 dep=0 uid=60 oct=3 lid=60 tim=7052598842 hv=3788189359 ad='7d844fa0'
    *"SELECT sysdate AS SERVERDATE FROM dual"*
    END OF STMT
    PARSE #2:c=0,e=12,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=7052598839
    BINDS #2:
    EXEC #2:c=0,e=42,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=7052599002
    WAIT #2: nam='SQL*Net message to client' ela= 1 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=7052599058
    FETCH #2:c=0,e=15,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=7052599110
    *** 2012-01-02 17:07:30.364
    WAIT #2: nam='SQL*Net message from client' *" ela= 10007957"* driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=7062607120Please find the last line WAIT -- in the complete trace after executing this query
    In awr report , this query taken less than a sec for more than 2000 executions.
    Regards,
    VinodhGood idea to check the raw trace file. It is important to notice that this particular wait event appears after the fetch of the result from the database. The client receives the SYSDATE from the database server, and then the client performs some sort of action for about 10 seconds before submitting its next request to the database. The SQL statement that immediately follows and immediately preceeds this section of the trace file might provide clues regarding what caused the delay, and where that delay resides in the client side code. Maybe a creative developer added a "sleep for 10 seconds" routine when intending to sleep for 10ms? Maybe the client CPU is close to 100% utilization?
    Charles Hooper
    http://hoopercharles.wordpress.com/
    IT Manager/Oracle DBA
    K&M Machine-Fabricating, Inc.

  • SQL*NET V1, V2의 STATUS를 확인하는 방법

    제품 : SQL*NET
    작성날짜 : 1995-11-06
    * SQL*NET V 1의 적절한 사용 방법
    ORASRV의 Permission, Owner 및 Group은 다음과 같이 설정이 되어 있어야 하며
    파일의 Size는 Version에 따라 다를 수 있다.
    -rwsr-xr-x 1 oracle dba 7544832 Jul 21 20:35 oracle
    -rwsr-xr-x 1 root dba 303104 Jul 5 19:24 orasrv
    만일 위와 같지 않다면 Unix 명령 프롬프트에서 다음을 수행하여 모드를 바꾸어
    준다.
    #chmod 4755 oracle
    #chown root orasrv <= orasrv의 owner는 반드시 root로 되어야 합니다.
    #chmod 4755 orasrv
    1. SQL*NET V1을 사용하면서 가장 일반적으로 orasrv를 시작 및 정지 하는
    경우이다.
    #tcpctl start ( stop )
    2. orasrv의 현상태를 확인하는 방법
    #tcpctl status
    tcputl: Status summary follows
    Server is running :
    Started : 4-OCT-95 15:58:48
    Total connections : 0
    Total rejections : 0
    Active subprocesses : 0
    ORACLE SIDs : RC,ORA722
    Default SID : (null)
    Logging mode is ENABLED.
    DBA logins are DISABLED.
    OPS$ logins are ENABLED.
    OPS$ROOT logins are DISABLED.
    Orasrv is detached from the terminal.
    Break mode = OUT OF BAND.
    Debug level = 1
    Timeout (on orasrv handshaking) = 5 seconds.
    Length of listen queue = 10
    Orasrv logfile = /users2/oracle7/tcp/log/orasrv.log
    Orasrv mapfile = /etc/oratab
    * SQL*NET V2의 적절한 사용 방법
    SQL*NET V2를 사용하는데 있어서 갖추야 할 파라미터 파일이 있다.
    기본으로 listener.ora,tnsnames.ora,sqlnet.ora가 $ORACLE_HOME/network/admin
    directory내에 있어야 합니다.(상기 파일에 대한 configuration은 SQL*NET
    Administrator's Guide v 2.0을 참고하시기 바랍니다.)
    1. SQL*NET V2을 사용하면서 가장 일반적으로 listener를 시작 및 정지 하는
    경우이다.
    #lsnrctl start (stop)
    2. Oracle과 Listener의 Process를 확인하는 방법
    $ ps -ef |grep ORA7
    ora7 1343 1 7 Aug 22 ? 30:53 ora_dbwr_ORA7
    ora7 1342 1 7 Aug 22 ? 0:32 ora_pmon_ORA7
    ora7 1346 1 7 Aug 22 ? 0:00 ora_reco_ORA7
    ora7 1347 1 7 Aug 22 ? 0:00 ora_s000_ORA7
    ora7 1345 1 7 Aug 22 ? 12:25 ora_smon_ORA7
    ora7 1344 1 7 Aug 22 ? 58:57 ora_lgwr_ORA7
    ora7 1348 1 7 Aug 22 ? 0:00 ora_s001_ORA7
    ora7 8036 1 7 Aug 22 ? 0:00 /ora/ora7/bin/tnslsnr LISTENER -
    inherit
    ora7 24279 1342 7 09:40:16 ? 0:05 ora_d001_ORA7
    ora7 899 1342 7 14:54:36 ? 0:21 ora_d000_ORA7
    3. Listener의 현상태를 확인하는 방법
    $ lsnrctl service
    LSNRCTL for 88open UNIX: Version 2.0.14.0.0 - Production on 24-AUG-94
    09:19:37
    Copyright (c) Oracle Corporation 1993. All rights reserved.
    Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=ORA7))
    Services Summary...
    ORA7 has 3 service handlers
    DEDICATED SERVER established:0 refused:0
    DISPATCHER established:0 refused:0 current:0 max:60 state:ready
    D000 (machine: AViiON, pid: 899)
    (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=152.68.1.11)(PORT=2753))
    DISPATCHER established:0 refused:0 current:0 max:60 state:ready
    D002 (machine: AViiON, pid: 1357)
    (ADDRESS=(PROTOCOL=ipc)(DEV=5)(KEY=#1357.1))
    The command completed successfully
    4. SQL*NET V2를 MTS와 DEDICATE방식으로 사용코자 할때.
    MTS 방식 : ps -ef | grep s0 으로 시작하는 공유 process 를
    띄어두고, tnsnames.ora 에 MTS 와 같은 alias 를
    사용하여 접속한 session 들이 각각의 oracle process 를
    띄우지 않고, 공유 process 를 사용하는 방법
    dedicate 방식 :
    tnsnames.ora 에 MTS_DED 와 같은 alias 를 사용하거나, alias 없이
    server 에서 접속하는 유저들은 각각의 oracle process 를
    기동시켜고 공유하지 않는다
    $cd $ORACLE_HOME/network/admin/tnsnames.ora
    MTS =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS =
    (PROTOCOL = TCP)
    (HOST = Hostname)
    (PORT = 1521)
    (CONNECT_DATA =
    (SID = ORA7)
    MTS_DED =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS =
    (PROTOCOL = TCP)
    (HOST = Hostname)
    (PORT = 1521)
    (CONNECT_DATA =
    (SID = ORA7)
    (SRVR = DEDICATED)
    5. SQL*NET V2 Pipe Adapter를 사용중이라면 ps command를 통해서
    oracleSID (LOACL=YES)라는 Shadow Process로써 확인 할 수 있다.

    오랬만에 게시판에 들어오니 좀 썰렁하네요..
    자주 들어와서 확인좀 하겠습니다.
    SQL*NET V1 프로세스 수동 기동 중지는
    기동
    tcpctl start 중이
    tcpctl stop

  • SQL*NET V1 사용 시 ORA-6107 조치 방법

    제품 : SQL*NET
    작성날짜 : 2005-11-06
    * Windows용 SQL*NET TCP/IP Ver 1.X는 SQLTCP.DLL과 SQLTCP1.DLL 두 개의
    DLL이 하나로 구성되어 있다. 이들 DLL은 ORACLE용 연결 스트링이 TCP/IP
    프로토콜 스트링으로 확인되면 작업진행중에 OCI DLL에 의해 올려진다.
    ORACLE Interface DLL은 SQLTCP.DLL을 먼저 올리려고 한다. 이것이 실패하면
    DOS TSR 버전의 드라이버를 찾는다. 두 가지 모두 실패하면 ORA-3121
    메세지가 나온다.
    1. SQL*NET TCP/IP DLL이 올려지고 초기화가 되는 즉시 Logon 시도를 시작한다.
    2. 이때 모든 것이 정상적이라면 logon시 제공된 연결 스트링내의 I.P
    Address대신 Hostname을 사용하여 해결해 본다. 이러한 과정이 정상적이라면
    클라이언트측의 통신관련 디렉토리에 있는 Services 화일에 Oracle Service's
    Portnumber를 제대로 부여한 것이며 SQL*NET TCP/IP DLL이 ORACLE.INI ( 또는
    WIN.INI의 [Oracle] session의 ORA_CONFIG=<path>\ORACLE.INI에 기술된 내용)
    내에 기술된 TCP_SERVICES_FILE = <network protocol path> \services 을
    사용한다는 것이다.
    ORACLE Service를 받는 Part Number SERVICES files내에 "orasrv" 라고
    기술된다. SERVICES File의 예를 보면 하단과 같다.
    # This list has been derived from RFC1060
    # TCP Ports
    # Service Name Port/Protocol Aliases
    echo 7/tcp
    discard 9/tcp sink null
    systat 11/tcp users
    listener 1521/tcp oracle ? SQL*NET V2 인 경우
    orasrv 1525/tcp oracle ? SQL*NET V1 인 경우
    3. 만일 TCP_SERVICES_FILE에 SERVICES화일이 구성되어있지 않았다면
    "orasrv"의 접속이 실패된다. 만일 SERVICES File Name이 제대로 구성되어
    있다면 file내에 표현되어 있는 "orasrv" 항목을 점검한다. SERVICES File
    내의 각 항목 끝에 <CARRIAGE RETURN> 이 없을 경우나 "orasrv" line 상에
    <TAB>이 있을 경우에도 이러한 메세지를 수반한다.
    * ORA-6107을 진단하는 방법
    1. ORA-6107의 경우 ORACLE.INI내의 TCP_SERVICES_FILE이 무엇인지 (또는
    WIN.INI내의 [ORACLE] Section에 ORA_CONFIG가 무엇인지)를 점검한다.
    - ORACLE.INI의 경우
    TCP_SERVICES_FILE=<path>\SERVICES
    - WIN.INI의 경우
    ORA_CONFIG=c:\windows\oracle.ini
    - 만약 설정이 되어 있지 않았다면 Client상에서 사용하고 있는 특정 TCP/IP
    Vendor에서 사용하고 있는 SERVICES 화일을 찾고 그 화일내에 Parameter를
    설정한다.
    2. 만일 TCP_SERVICES_FILE에 설정되어 있는 SERVICES 화일의 위치가 맞는다면
    화일내에 "orasrv" 항목을 점검하여 본다. 화일내에 <TABS>를 확인해 본다.
    화일내의 각 항목 끝에 <Carrige Return>이 있는지 확인한다.
    3. 만일 이 모든 것이 정상적이라면 새로운 SERVICES 화일내에 "orasrv" 항목을
    추가한다.
    4. 만약 SERVICES 파일의 도움없이 개발 응용프로그램에서 직접 접속을 시도할
    경우에는 명시적으로 다음과 같이 Connect String에서 Port Number을 사용하여
    접속할 수 있다.
    "t:<server name or ip address>/<port number>:<instance name>"
    [주의] instance name = ORACLE SID
    5. tcp_services_files=%drive1%\path%\services
    [주의 1] ORACLE TCP/IP Listener의 기본 시작포트 번호는 십진수 1525 이다.
    SERVICES 파일은 대부분의 장비에 /etc 디렉토리안에 있으며 또한, "tcpctl"
    Utility를 사용하여 UNIX 장비상의 ORACLE orasrv 를 Start 시키고 Stop할
    수 있다. Orasrv 를 정지하려면 "tcpctl stop"을 사용하고 다시 시작하려면
    "tcpctl start"를 사용한다.
    BUG 1 : 다음과 같은 경우에도 에러가 발생할 수가 있다.
    orasrv 1525/tcp<CR>
    위와 같이 기술되었을 경우 다음과 같이 하게되면 ora-6107 error 없이 접속이
    가능하다. 즉, orasrv항목에서 <CR>전에 공란이 있을 경우에 에러없이
    접속할수 있다.
    orasrv 1525/tcp <CR>
    * 이 버그는 v1.1.7.10.1 이후 버젼에서는 수정되었다.
    BUG 2 : 동일한 응용 프로그램에서 동일한 Connect String으로 접속을
    시도하였을 때 에러가 발생한다면 다음과 같이 Connect String에 Port
    Number를 사용한다.
    t:<host name>/<port number>:<oracle_SID>
    * 이 버그는 v1.1.7.9 이후 버젼에서는 수정되었다.

  • SQL*NET SESSION의 DEAD CONNECTION 처리 방법

    제품 : SQL*NET
    작성날짜 : 1996-04-03
    SQL*NET SESSION의 DEAD CONNECTION 처리 방법
    ==========================================
    server에서 수행 중이던 프로그램이 비정상 종료한 경우에는 오라클의 smon이
    자동으로 detection하여 수행 중이던 transaction을 rollback하여
    정리하여 준다.
    그러나, Client Server 환경에서 PC를 Client로 사용 시 비정상적인 방법으로
    Server와 Disconnect 하면 Server 쪽에 있는 Dedicated Server가 남아 있다.
    이는 Sql*net V1 & V2에서 발생하던 문제로 Sql*net V2.1 이후에는 아래와
    같은 방법을 이용하면 Dead connection이 정상적으로 Disconnect 된다.
    * 환경 : Server - Sql*net tcp/ip V2.1.3
    Client - Sql*net V2.0
    * Setup 방법 : Server와 Client에 있는
    $ORACLE_HOME/network/admin/sqlnet.ora에
    sqlnet.expire_time=n
    으로 setting 한다.
    여기서 n은 분 단위이며 실제 disconnect는 n분보다 더 걸린다.
    일반적으로 sqlnet.expire_time=1로 설정하면 적당하다.

    Hi,
    Probe send - client and application still there - all fine
    Network cable on the client is removedAt the above stage if the Sever sents a probe then if does not receive any message from Client it is treated as DCD. (It will receive any error code or negative response from client instead of any active status communication)
    Application is shut down
    (Optionally the computer is rebooted)
    Network cable is reattached
    Next probe send from server
    At this point, the client is reachable, the Oracle NET component on the client is there, but the application on the client is gone without properly saying good bye to the DB server.
    Would DCD detect the dead connection in this sceanrio?If my above comment is dismissed and your case or assumptions continues, then we need to check the SQL_EXPIRE time which you have connected. If the every thing happens with in the time setted for Expire time then, still it will treat as DCD, your session is getting terminated the system got rebooted.
    You understanding with DCD is correct.
    We see sessions in V$SESSIONS that don't have a process on the client any more. We have SQLNET.EXPIRE_TIME set to 2 minutes on the server, but still these sessions show up after days. Sessions show up as inactive and are waiting on "SQL*NET message from client" for hours and days.See basically INACTIVE and DCD are different. Slight difference exits. As you said you find inactive sessions. If you want to cleanup those inactive sessions, as per oracle documenation, you can create a custom profile as per your requrement and assign some IDLE_TIME and update the respective user profile. That might help you out.
    - Pavan Kumar N

  • VMS : SQL*NET V2.0 ARCHITECTURE

    제품 : SQL*NET
    작성날짜 : 2001-05-28
    VMS : SQL*NET V2.0 ARCHITECTURE
    ===============================
    1. SQL*Net V2.0 Architecture
    * Master File 위치 : Logical name TNS_ADMIN
    = ORA_ROOT:[NETWORK.ADMIN]
    * Main File 종류 : SQLNET.ORA
    LISTENER.ORA
    TNSNAMES.ORA
    2. SQLNET.ORA
    * SQL*Net에 대한 몇가지 parameter setting을 가지고 있다.
    * Comments는 # 후에 기록한다.
    * Client와 Server 측면에서의 trace와 log level을 setting할 수 있다.
    * TRACE_FILE_xxxxx parameter는 trace file의 이름을 지정한다.
    .TRC file name의 끝부분을 자동으로 생성한다.
    * IPC(Inter-Process Communication)를 제어하는 parameter를 설정할 수
    있는데 default는 ON이다. 이것은 자동으로 OpenVMS Mailboxe와
    Unix pipes 중에서 platform에 맞게 고르는 것이다.
    # FILENAME: sqlnet.ora
    # NETWORK.: UK_VAX_NET
    # SERVICE.: NA
    TRACE_LEVEL_CLIENT = OFF
    TRACE_DIRECTORY_CLIENT = ORACLE$DISK:[ORACLE7.PROD.NETWORK.TRACE]
    TRACE_FILE_CLIENT = CLIENT
    LOG_DIRECTORY_CLIENT = ORACLE$DISK:[ORACLE7.PROD.NETWORK.LOG]
    LOG_FILE_CLIENT = CLIENT
    TRACE_LEVEL_SERVER = OFF
    TRACE_DIRECTORY_SERVER = ORACLE$DISK:[ORACLE7.PROD.NETWORK.TRACE]
    TRACE_FILE_SERVER = SERVER
    LOG_DIRECTORY_SERVER = ORACLE$DISK:[ORACLE7.PROD.NETWORK.LOG]
    LOG_FILE_SERVER = SERVER
    AUTOMATIC_IPC = ON
    SQLNET.EXPIRE_TIME = 10
    3. LISTENER.ORA
    * LISTENER의 default name은 LISTENER이다.
    * LISTENER의 name과 capability를 setting한다.
    <lsnr-name> = (ADDRESS_LIST =
    (ADDRESS =
    (PROTOCOL = IPC)
    (KEY = sid)
    (ADDRESS =
    (PROTOCOL = DECNET)
    (NODE = node-name)
    (OBJECT = object-name)
    (ADDRESS =
    (PROTOCOL = TCP)
    (HOST = node-name)
    (PORT = 1521)
    * ORACLE8 이후로는 DECnet protocol은 지원하지 않는다.
    * LISTENER START & STOP COMMAND : LISTENER 이름이 LISTENER일 경우
    $ LSNRCTL START
    $ LSNRCTL STOP
    $ LSNRCTL STATUS
    4. TNSNAMES.ORA
    * Client level에서 필요한 file로 service를 define한다.
    * Service Define
    For DECnet...
    <service-name> =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS =
    (PROTOCOL = DECNET)
    (NODE = <node-name>)
    (OBJECT = <lsnr-object>)
    (CONNECT_DATA =
    (SID = <sid>)
    For TCP/IP...
    <service-name> =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS =
    (PROTOCOL = TCP)
    (HOST = <node-name>)
    (PORT = 1521)
    (CONNECT_DATA =
    (SID = <sid>)
    5. Logging and Tracing
    * Listener logging은 default로 자동으로 하게 되어있다.
    LOG_DIRECTORY : Log File이 생성될 Directory setting
    LOG_FILE_<lis> : Log File name
    * Tracing Level
    TRACE_LEVEL_<listener-name> = OFF|USER|ADMIN
    OFF tracing을 disable시킨다.
    USER 제한적으로 tracing 한다.
    ADMIN 상세하게 tracing 한다.
    * server process에 대한 tracing은 default로 disable되어 있다.
    6. Tips
    * 실제로 동작하기 위해서 server process를 기동시켜주는 command
    procedure인 ORASRV_NETV2.COM 이 있어야 하는데 TNS_ADMIN 에
    sample이 있으므로 수정해서 사용하도록 한다.
    이때 반드시 ORA_DB directory가 정의되어 있어야 한다.
    * SYLOGIN.COM이나 LOGIN.COM에 다음의 조건문을 넣어서 Network
    Access를 처리할 수 있다.
    $ IF F$MODE() .EQS. "NETWORK" .OR. F$MODE() .EQS. "OTHER" -
    THEN EXIT
    * 만약 listener나 server process가 아무런 tracing information을
    남기지 않고 계속 죽는다면 VMS Accounting Utility를 이용하여
    process termination status를 점검해본다.
    $ ACCOUNTING/FULL/IDENT=<pid>

    Depending on how large is your database you can use either exp/imp utility to migrate the data after installing the Oracle8i on your O/S or Inplace db upgrade. Otherwise backup your current Oracle7.x release and install the Oracle8i Software only without the database. Open old database using the Oracle8i svrlmgrl utility. Upgrade using the upgrade scripts available in $ORACLE_HOME/rdbms directory. Also read the documentation for any additional information on issues on the upgrades.
    I am not sure about the SQL Net versions, but SQL Net Version 2 should work against net8 listener. You could try v1 too.
    Hope this helps
    null

Maybe you are looking for

  • Is there a way to upload/download photos anonymously?

    Is there a way to anonymously upload/download photos to the web without any sort of identification? For example, if I'm using something like TOR to browse, and I find an icon on a site or Google Images that I want to use as my avatar for a social net

  • GUI_DOWNLOAD Help

    Hi all, i am facing a problem in funtion module gui_download for downloading header.I have tried few tricks but nothing works. 1. i called function module twice in appending manner but it download the header but all the data comes in one row that als

  • Apple Pro speakers with mini jack connect to new Intel iMac ?

    I would like to be able to connect the pair of perspex globe Apple Pro Speakers with mini-jack that came with my PowerPC G4 Mac to my new Lion desktop Intel iMac. However, the mini-jack is too small for either the ' audio in / optical digital audio i

  • BPM in iTunes - How Does It Work?

    Hey people, i was wondering if anyone could help me with the BPM Function on itunes. i have it in the bar at the top, but how do i get it to read the bpm of all my songs? do i need to play all the songs all the way through? (9000+ tracks will take a

  • Syntax error on keyword "void"; "interface", "class" expected

    When migrating my application for Visual-Age to Web-Sphere 5.1 The following error occurred: Syntax error on keyword "void"; "interface", "class" expected for the code: * ejbLoad method comment * @exception javax.ejb.EJBException The exception descri