An IPC (Inter-Process Communication) connection
Example setup:
Listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myserver)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
tnsnames.ora:
proddb01_ipc = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = proddb01) ) )Connect to your database locally:
sqlplus /nolog SQL*Plus: Release 11.2.0.4.0. Production on Thu Jan 22 15:35:44 2015 Copyright (c) 1982,2013, Oracle. All rights reserved. SQL> connect scott/tiger Connected.From another window, create another session:
sqlplus /nolog SQL*Plus: Release 11.2.0.4.0. Production on Thu Jan 22 15:35:44 2015 Copyright (c) 1982,2013, Oracle. All rights reserved. SQL> connect scott/tiger@proddb01_ipc Connected.
Check the connections and their types:
SELECT S.SID, S.OSUSER,S.PROGRAM,S.USERNAME,S.MACHINE, SCI.NETWORK_SERVICE_BANNER,S.LOGON_TIME,S.STATUS FROM V$SESSION S INNER JOIN V$SESSION_CONNECT_INFO SCI ON S.SID = SCI.SID WHERE S.USERNAME = UPPER('scott') AND SCI.NETWORK_SERVICE_BANNER LIKE '%IPC%' OR SCI.NETWORK_SERVICE_BANNER LIKE INITCAP('%BEQ%') AND S.TYPE <> 'BACKGROUND' ORDER BY LOGON_TIME;
And here is the output. Notice how the first session (.. / as sysdba) results in a Bequeath session, while the other one ( ...@proddb_ipc) results in a session using IPC:
SID | OSUSER | PROGRAM | USERNAME | MACHINE | NETWORK_SERVICE_BANNER | LOGON_TIME | STATUS |
---|---|---|---|---|---|---|---|
9 | oracle | sqlplus@myserver.mydomain.com (TNS V1-V3) | SCOTT | myserver.mydomain.com | Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production | 22.01.2015 15:35:49 | INACTIVE |
1160 | oracle | sqlplus@myserver.mydomain.com (TNS V1-V3) | SCOTT | myserver.mydomain.com | Unix Domain Socket IPC NT Protocol Adaptor for Linux: Version 11.2.0.4.0 - Production | 22.01.2015 15:40:44 | INACTIVE |