IPC vs SQL * Net connection

Hi all

My database is currently running on windows 2008 EE 10.2.0.4 (with all service packs). On the same machine, I have several workers (implemented as a windows service) written in c# .net using the latest drivers ODP.NET.
To improve performance, I use PKI connection so that the TCP stack (which is used in the sqlnet connections "regularly") is shorted. I confirmed that ICP is actually currently in use:

H4. Journal of the listener
13-NOV-2009 03:01:34 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
13-NOV-2009 03:01:34 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
13-NOV-2009 03:01:34 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
13-NOV-2009 03:01:35 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
13-NOV-2009 03:01:35 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
13-NOV-2009 03:01:35 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
13-NOV-2009 03:01:35 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
13-NOV-2009 03:01:35 * (CONNECT_DATA=(SERVER=DEDICATED)(SID=orclwin)(CID=(PROGRAM=C:\Simulation\Agent.exe)(HOST=WIN2008EE)(USER=LOCAL?SERVICE))) * (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)) * establish * orclwin * 0
However, when I look at the awr report I see sqlnet expected on top:

H4. AWR waits Albums
Top 5 Timed Events                                         Avg %Total
~~~~~~~~~~~~~~~~~~                                        wait   Call
Event                                 Waits    Time (s)   (ms)   Time Wait Class
------------------------------ ------------ ----------- ------ ------ ----------
SQL*Net message to client         3,014,783   5,086,969   1687 ######    Network
SQL*Net more data to client       1,712,644   2,441,249   1425 ######    Network
log file sync                       695,446      75,297    108 ######     Commit
log file parallel write             679,437      33,288     49  916.9 System I/O
db file parallel write               49,057      22,149    452  610.1 System I/O
I read the ticket of Taner Poder [http://blog.tanelpoder.com/2008/02/07/sqlnet-message-to-client-wait-gotcha/] about SQNet message to the customer
and his other observations on the SQLNet more data to the client [http://blog.tanelpoder.com/2008/02/10/sqlnet-message-to-client-vs-sqlnet-more-data-to-client/]
to get the best understanding of them.

The question is why observe specific SQLNet connection is when you use IPC connections?

I enjoy all the comments.
Thank you
Rafal.

Oh yes - one comment more.

So that the server process indicate if the wait is over TCP/IP or IPC, he needs to know the mechanism of transport used.

It is very likely that the wait event is registered by the server process when it is calling its send() data to the client API. As he calls the send(), it records that the current wait state. He has no idea what the underlying code uses as a transport mechanism. In server code and client, the transport layer is one of the lower layers. So earlier in the application code, you don't know what is the actual transport (remember that Oracle also support, or has supported, other layers of communication such as Lu6.2).

So the application layer, you deal with the transport layer as a bit of a black box. In the Oracle terminology, this is called SQL * Net layer. And may be something that implements the transport layer.

So, this is why it is dangerous to make assumptions that pending top-level State indicates what a low level wait state is.

Tags: Database

Similar Questions

  • Wait events, SQL * Net message from client

    Hi all

    I have a doubt about oracle wait events, specifically of "SQL * Net message from client. I've read a lot about this, I've seen some say that network and other material resources can provoke him, and saw that the problems in the application code can cause it too. I am tracking a few tests here and I don't have that chooses are the double event, usually a lot of SQL * Net message to client waiting (I used sqlplus, developer sql and pl/sql). Can someone explain to me why? Another question is where this wait type cause interference, meet it demand for the database and stays on hold and do not meet another request so that the wait is over, is it? The waiting just finish when the application closes the database connection or there is another way to end the waiting?

    Since then, thank you very much.

    Hello

    chooses double what usually causes a lot of SQL * Net message to client waiting

    Do you run them from your server applications or from the DB server itself?

    "SQL * Net client message" is an idle wait event although he'd still explain to the elapsed time of the query.

    It indicates only that the database is waiting for the other entries of the customer and when he expects the DB, those expectations get incremented.

    I suggest you explore size SDU, RECV_BUF_SIZE, and SEND_BUF_SIZE parameters.

    http://docs.Oracle.com/CD/B19306_01/network.102/b14212/performance.htm

    Kind regards

    Suntrupth

  • Having problems with SQL Developer connection to the database on a LINUX machine

    Having problems with SQL Developer connection to the database on a LINUX machine
    Hello
    I am trying to connect my machine to windows 7 Home premium to an oracle database 11 g on RedHat 5 machine using SQL Developer. I got this error on SQL Developer
    Status: Failed - Test has failed: the network adapter could not establish the connection


    on Linux
    LSNRCTL> status
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
    Start Date                03-APR-2013 16:13:13
    Uptime                    7 days 22 hr. 16 min. 41 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/product/11.2.0/db_1/network/log/listener.log
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.X.X.X)(PORT=1521)))
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "orc11g" has 1 instance(s).
    Instance "orc11g", status READY, has 1 handler(s) for this service...
    Service "orc11gXDB" has 1 instance(s).
    Instance "orc11g", status READY, has 1 handler(s) for this service...
    Service "orc11g_XPT" has 1 instance(s).
    Instance "orc11g", status READY, has 1 handler(s) for this service...
    The command completed successfully
    LSNRCTL>
    and TNSPING
    tnsping 172.x.x.x
    
    TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 11-APR-2013 14:32:17
    
    Copyright (c) 1997, 2005, Oracle.  All rights reserved.
    
    Used parameter files:
    /u01/app/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora
    
    Used EZCONNECT adapter to resolve the alias
    Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=172.x.x.x))(ADDRESS=(PROTOCOL=TCP)(HOST=172.x.x.x)(PORT=1521)))
    OK (0 msec)
    [oracle@ltebilling ~]$
    Tnsnames.ora on Linux,
    ORC11G =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.x.x.x)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orc11g)
    )
    )
    Listner on Linux,
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
    (PROGRAM = extproc)
    )
    )
    
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.x.x.x)(PORT = 1521))
    )
    )
    hosts/ect/Linux,
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1               localhost.localdomain localhost
    172.x.x.x             LTEBilling
    and there is no problem to ping linux from windows

    Published by: user11309581 on April 11, 2013 15:16

    user11309581 wrote:
    as I have already desciped earlier, I can't connect to the server throw Linux my Windows SQL Server, with error message below.
    tatus: failed - Test has failed: the network adapter could not establish the connection

    It's too generic to mean anything. The application is hidden the real error message. You got when you did the tnsping and obtained "TNS-12535: TNS:operation has expired. Now THAT's an error.

    This indicates a problem firewall and routing. You said earlier you could ping the server, but now we see tnsping fails. Two different protocols of usage, so that both the successful ping turns out a valid physical path, it guarantees not that all traffic will pass. What happens with

    c:\ telnet 172.x.x.x 1521
    
  • SQL * Net and Auditor job details

    Hello

    I am aware of SQL * Net and auditor of the concepts.

    SQL * Net Treaty of the transmission of data between the client to the server and vice versa.

    Listener established the connection between the user and the server process.

    I know that on the Oracle server, there are two. ORA files available in the file Admin/network for SQL * Net and the listener.

    I am interested in knowing the following things.

    (1) in my understanding, process user run the server and not the client.

    (2) Please share me the stream used between SQL * Net listener and how the flow occurs.

    After the TOAD or SQL * Plus creates connectivity and gets the Session, how they still work.
    I understand it, once the connection has been established, even when the listener goes down.
    SQL * over the connection to the server remains intact.

    Can you please share more fundamental and work know on these two areas, it is not 100% clear to me, thank you.

    See the post of Ed - http://edstevensdba.wordpress.com/2011/02/09/sqlnet_overview/

    Srini

  • When you try to connect to my email I get error 103. (net connection error - abandoned)

    e-mail connection problems

    When I try ti sign in is blindly. Most of the time I get error 103 (net connection error-abandoned) unknown error, why this is happening and what can do about it

    Usually, it is a problem on the server or your internet connection.  Contact your e-mail and internet providers to ensure that they are not questions.

    Steve

  • Lock on a table and SQL * Net more data from client

    Hello

    I have a problem loading data through Php in Oracle: web page of Php open an xml file, create a .csv, then begins to Oracle using an external table to process the data.

    The problem is that, the second time that PHP is trying to run the following query:

    INSERT INTO table1 T (Field1, Field2, field3, field4, sphere5, case field6) VALUES ('Aaa1E63819707', SYSDATE, 'KO', 'error', 'L', 'file_name.xml') POLL INTO Field1: id

    on the Oracle sessions, I have an exclusive lock on table1 and wait for SQL * Net more data from client.

    Where is the problem?

    Thank you

    Igor

    Finally I found the problem: a DBA changed the cursor sharing EXACT force! I restored the CORRECT setting and now everything is fine.

    Thank you

    Bye,.

    Igor

  • Several alter session and SQL * Net message from dblink in APEX

    Hello

    I have Apex 4.2.3 and I use Glassfish more listener of the Apex.

    Database is 11.2.0.4 under linux

    Looking for the session active database, I see that apex run several alter session with a lot of expectation as SQL * Net message from dblink the.

    Ex:

    ALTER session set NLS_TERRITORY = "AMERICA."

    call the query of disc elapsed to cpu count current lines

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------

    Parse 58 0.00 0.00 0 0 0 0

    Run 58 0.06 3.53 267 58 0 0

    Fetch        0      0.00       0.00          0          0          0           0

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------

    Total 116 0.06 3.53 267 58 0 0

    Chess in the library during parsing cache: 0

    The analysis of the user id: 277 (recursive depth: 1).

    Elapsed time are waiting on the following events:

    Event waited on times max wait for the Total WHEREAS

    ----------------------------------------   Waited  ----------  ------------

    SQL * Net message to dblink 174 0.00 0.00

    SQL * Net message from dblink 174 3.47 0.03

    ********************************************************************************


    Why he is doing a lot to change session? Why the wait is SQL * Net message from dblink the?

    We have recently to load a new language, but I'm not sure that this is the main problem.



    I think that you have the link db in the workspace schema and data requested by the Apex of this link. For example, it may be

    report which uses db link. Check dba_db_links or user_db_links for the existing links. Check if this link used by Apex.

  • How to validate SQL * MORE connection in Unix shell script

    I wrote the following function in unix shell script to validate SQL * MORE connection and throw a user-defined message.

    function check_db_conn

    {

    output | sqlplus-s-L $User/$Password@$SID >/dev/null

    If [[$?-no 0]]; then

    echo 'credentials incorrect DB.

    FI

    }

    However, I would like to change this feature so that the user has entered a good connection and that there is a problem with TNS listener must display the appropriate message.

    Hello

    Try adding:

    lsnrctl status $listener_name > /dev/null
    if [[ $? -ne 0 ]]; then
      echo "Issue with Listener"
    fi
    
  • SQL * Net questions - which forum?

    Does anyone know what forum manages SQL * Net questions?

    THX

    For general issues, it's probably as good a place to ask as any.

    If you have SQL * Net questions that are specific to a particular technology (i.e. how various options of TNS interact with different configurations of CARS), you probably want to ask in the forums dedicated to these products.

    Justin

  • SQL * Net message from client

    Hi all

    I have a session that runs longer than usual. Instead of filling in 20 minutes, he was running for about 2 hours.

    Initial review of show expected that the session was waiting on this SQL * Net client message for a piece of time.

    The session state was idle, while the State changed pending work very frequently.

    I had activated track and found the bottom of the entries in the trace file.

    EXEC #11529215044976967776:c = 0, e = 1944, p = 0, cr = 11, cu = 3, set = 0, r = 0, dep = 0, og = 1, plh is 2651636916, tim = 2309884016239

    #11529215044976967776 ERROR: err = 54 tim = 2309884016520


    TKProf reports the following

    TOTALS FOR ALL NON RECURSIVE INSTRUCTIONS

    call the query of disc elapsed to cpu count current lines

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------

    Parse        0      0.00       0.00          0          0          0           0

    Run the 884 1.47 1.42 2660 9724 0 0

    Fetch        0      0.00       0.00          0          0          0           0

    ------- ------  -------- ---------- ---------- ---------- ----------  ----------

    884 total 1.47 1.42 2660 9724 0 0

    I need to know what is meant by the error line in the trace file?

    We use oracle EBS 11i with 11 GR 2 db. This session belongs to a simultaneous request



    Oracle - ORA-00054: resource busy and acquire with NOWAIT specified or expired timeout - Stack Overflow

    -------------

    Sybrand Bakker

    Senior Oracle DBA

  • SQL * Net more data from client wait event

    Hi all

    DB 11.2.0.2

    AIX 6

    I get two events of high expectation of the AWR report page

    (1) SQL * Net more data from client

    synchronization of log files 2)

    Need advice to the configuration of the hardware and network latency?

    What should I do for the first event of waiting?

    This simple average may, what they're doing massive data loads with a very large table size that the Oracle Server manages very effectively but necessarily expect much coming data of the customer and parallel large log files written to end on the validation.  It is possible that setting a large SDU and tcp large transmiat and receive buffers would help if this happens to be what they do; Similarly, if that's what they do, then reduce their size of table can also have some effect.

    Concerning

    Jonathan Lewis

  • Fact ' SQL * Net client message' indicate that the network is not good?

    The report below 10046 trace, I have just issued a query to extract all records from a table with about 400 K records, but it took more than 3 minutes to recover all data.
    Most of the time when waiting for SQL * Net message from client.
    This indicates that the network is not good?


    SQL ID: d84ta7m8h6wg2
    Plan of Hash: 3635621446
    Select * from XXXXXXXXXXXXXXXXX


    call the query of disc elapsed to cpu count current lines
    Parse 1 0.00 0.00 0 0 0 0
    Run 1 0.00 0.00 0 0 0 0
    Fetch 855 0.88 0.10 0 7912 0 426721
    Total 857 0.10-0.88 0 7912 0 426721

    Chess in the library during parsing cache: 0
    Optimizer mode: ALL_ROWS
    The analysis of the user id: 123

    Rows Row Source operation
    426721 TABLE ACCESS FULL XXXXXXXXXXXXXXX (cr = 7912 pr = 0 pw = time 0 = 467817 u)
    s cost = 1847 size = map 46080540 = 415140)


    Elapsed time are waiting on the following events:
    Event waited on times expected maximum wait the Total WHEREAS

    SQL * Net message to client 856 0.00 0.00
    SQL * Net client message 856 3.71 179.63
    Disk file I/O 1 operations 0.00 0.00
    SQL * Net more data to the client 5224 0.37 0.46

    Published by: NathanielNie on January 24, 2013 16:40

    Run you the same Oracle_Home SQL and Server query as the ETL engine? (Want to use the same libraries and host and network such as ETL).

    The large data sets in ETL can be assembled with network optimization. Some of it is on the physical network layer (for example having a dedicated private network or a switched network between the ETL and the DB server), some of them can be found on the configuration settings (arraysize, configuring TCP settings to the OS layer, etc.) or libraries (for example JDBC libraries). Some of them may simply be patches to fix bugs!

    Hemant K Collette

  • Wait for the event begins with SQL * Net message from client-time wait 178577 units

    Hello

    I'm watching events waiting for a request from long time in TOAD.
    I start the query on an instance of TOAD, and open the browser to log on to another instance.
    But I am surprised to see that in "TOtal expected" on the RIGHT part->
    SQL * Net message from client is the longest time and is already - > 178577 units while I just to start the query.

    Considering that, in the current waiting she shows DB file scattered read correctly for a few seconds.

    Please suggest.

    user8941550 wrote:
    Hello. No explanation for this... :-(

    Hello

    people work here, you don't know?
    I think Tom Kyte explains it well enough. This wait event is linked to your session database waiting for the guest to say to do something.

    So it is not related to the database, but to your application.
    Also as it is a wait of session event you might have had your session inactive for some time (do nothing)

    If you want to check the waiting events correctly I suggest using tkprof and start a new session in SQL more as shown by Tom Kyte in the link I posted.

    Then, run your query in sqlplus setting track and pull it out as soon as your statement is completed.
    that is to say:

    -- myest.sql
    alter session set events '10046 trace name context forever, level 12';
    SELECT ... -- your query here
    exit
    

    Run in sqlplus in this way:

    sqlplus user/password@db @mytest.sql
    

    Then check with tkprof.

    Kind regards.
    Al

  • How to solve the problem of Oracle SQL Developer Connection?

    People,

    Hello. I use the Oracle 11 GR 1 material database. The database https://localhost.localdomain:1158 control console / em works correctly. I can create a database and a table with success.

    My OS is Linux and connects to the internet successfully.

    In order to execute SQL statements. We use Oracle SQL Developer. I connect Oracle SQL Developer in the following way:

    Connection name: DB1 (is my database name)
    User name: SYS (this is the user name I used to connect to the Console)
    Password: SYS (this is the password used to connect to the Console)
    Connection type: basic
    Host name: localhost
    Port: 1158
    SID: DB1 (it is created during the installation of the database)

    But the error message: "status: failed - IO exception Connection Reset."

    Can any folk tell me how to solve the problem of Oracle SQL Developer Connection?

    user8860348 wrote:
    People,

    Hello. I use the Oracle 11 GR 1 material database. database Control Panel https://localhost.localdomain:1158 / em works correctly. I can create a database and a table with success.

    My OS is Linux and connects to the internet successfully.

    In order to execute SQL statements. We use Oracle SQL Developer. I connect Oracle SQL Developer in the following way:

    Connection name: DB1 (is my database name)
    User name: SYS (this is the user name I used to connect to the Console)
    Password: SYS (this is the password used to connect to the Console)
    Connection type: basic
    Host name: localhost
    Port: 1158
    SID: DB1 (it is created during the installation of the database)

    But the error message: "status: failed - IO exception Connection Reset."

    Can any folk tell me how to solve the problem of Oracle SQL Developer Connection?

    user name: sys
    password: enter_your_correct_password given at the time of the installation of oracle

    role: select sysdba if you would connect as sysdba otherwise select normal for users other than the sys

    HostName: Enter your ip or hostname of the oracle example server address:-192.168.11.12

    to find the terminal/command prompt open hostname in oracle installed machine
    type---> hostname

    type ping hostname--->

    You can find the IP address of the server

    Port number: 1521 (default)---> I guess, otherwise check the port number in the file tnsnames.ora under your ORACLE_HOME/network/admin folder

    SID: DB1

    try it
    Good luck

  • How to know the size of the files transferred to the SQL * Net?

    I'm testing the Advanced compress (AC) for 11 g Data Guard. When the AC is turned on, the archived log files are supposed to be compressed on the primary database server sent via SQL * Net, then unzipped on the standby db server. We will see that the file sizes are the same on the main servers and backup. I want to check that the AC works by monitoring how much data is sent via SQL * Net. By Oracle, AC uses less bandwidth of 35%. This means that the size of the transferred files must be at least 65% of the original size.


    Is there a way to know the size with the Oracle utilities? Otherwise, how do you know by the utilities of operating system? OS is Solaris 5.10.

    Thank you.

    I'm not sure that this can be done via SQL * Net, but a sniffer network between two servers packets must be able to help - you may want to contact your network team.

    HTH
    Srini

Maybe you are looking for