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.

Similar Messages

  • SQL*NET 에서 PROTOCOL ADAPTER DEINSTALL (UNIX)

    제품 : SQL*NET
    작성날짜 : 1998-11-24
    SQL*NET 에서 불필요한 protocol adapters deinstall 하기(unix)
    SQL*NET 에서 PROTOCOL ADAPTERS 를 DEINSTALL 하려면 다음과 같이 하시면
    됩니다
    1. ORACLE 계정으로 LOGIN
    2. orainst directory 로 에서 ( % cd $ORACLE_HOME/orainst )
    3. installer 실행 ( % ./orainst )
    4. DEINSTALL 할 SOFTWARE 를 선택하시고
    5. DEINSTALL 할 PROTOCOL ADAPTER 를 선택합니다
    6. NETWORK 의 LIB 디렉토리에서 ( % cd $ORACLE_HOME/network/lib )
    7. 새로운 ntcontab.o FILE 을 생성합니다 ( "$ORACLE_HOME/lib" 에 MOVE )
    % make -f network.mk ntcontab.o
    For 7.3.x:
    % make -f ins_network.mk ntcontab.o
    8. "ORACLE_HOME/lib" 디렉토리에서
    % cd $ORACLE_HOME/lib
    9. "libsqlnet.a" FILE 에 새로운 "ntcontab.o" FILE 을 archive 합니다
    % ar cr libsqlnet.a ntcontab.o

    Mark Gleaves (guest) wrote:
    : When normal users try to use SQL*Net to log on to a local
    : database on a Linux box, they get the message "ORA-12546:
    : TNS:permission denied". An example of this would be the
    : command
    : sqlplus scott/tiger@MG8
    : The oracle unix account can execute the above without problems
    : and when a normal user sets ORACLE_SID and omits the SQL*Net
    : connect string it works fine.
    Check that your oracle executable is SUID oracle and SGID dba?
    I'd have thought that would cause problems with bequeath
    connections, so perhaps not.
    Wierd error. You might try running an strace on the sqlplus to
    see what system call fails.
    -michael
    null

  • How To install sql*net

    I am New to oracle please tell me how and from where, i can install sql*net client.
    thanks

    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.

  • How to check sql*net version

    Hi,
    I've read a support note that reports instructions and differences between SQL*Net 2.1 and SQL*Net 2.2.
    How can I check the SQL*Net version implemented by my databases and clients ?

    The database view v$version would obviously only report data for the database version in use and not the client.
    If the client has sqlplus then the sqlplus banner should show the client version (SQL*Plus: Release) before listing the target database release information.
    The view v$session_connect_info is know to report the database version rather than the client version.
    Reference Note: 1419025.1 Wrong Value For CLIENT_VERSION in V$SESSION_CONNECT_INFO
    See the first note I posted a reference to.
    HTH -- Mark D Powell --

  • How to configure SQL*Net to survive minor dropouts?

    Hi,
    We have recently started developing over a VPN to our server. The VPN is not brilliant and we get minor dropouts for a second or so. This is causing SQL*Net to dropout and we need to re-connect and re-start all our Apps (SQL*Plus, Forms Builder, etc).
    Is there an SQL*Net setting which can keep the connection open, even if the network drops for 1-2 seconds?
    Cheers,
    Tim.

    Yes, a VPN is extremely important. Just as it's the job of DBAs to protect and maintain data, it is the job of a Network Administrator to keep the network functioning correctly. I'd say that having your NAs take care of the VPN problem is paramount to not only solving your issue, but also in keeping your company's infrastructure on-track and maintainable.
    P.S. I was an NA in one of my previous lives :(

  • How to secure SQL*Net over firewall?

    A client application is in an insecure network. It has to connect via SQL*Net to a database server in a DMZ behind a firewall. The client application uses a database user with read-only permissions.
    What measures are available, to restrict the client permissions?
    It shall not be possible to authenticate as DBA from the insecure client.
    Any suggestions?
    Regards,
    D.

    Depending on what it is you are trying to secure, you can use Oracle Advanced Security to encrypt all the traffic to and from the database, so no one can evesdrop on the traffic to the client machine. To get through the DMZ, you would probably need to install and configure Oracle Connection Manager. Some firewalls will proxy the Oracle connection through the firewall, as well.
    Can you connect as sysdba from machines other than the database server today? I don't believe there is a way to restrict connections from a particular user to coming from a particular set of machines, though you can lock down a database so that only local connections can be made AS SYSDBA.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • SQL*NET V2 최적화하기

    제품 : SQL*NET
    작성날짜 : 2001-04-25
    SQL*NET V2 최적화하기
    ====================
    1) PING
    TCP/IP 네트워크상에서 ping을 사용해서
    client와 server간에 걸리는 시간을 check할 수 있다.
    만일 이 시간이 오래 걸리면 SQL*Net 보다 이 문제를 먼저 해결해야 한다.
    사용 방법 :
    ping 호스트이름
    (NT의 경우에는 dos command상태에서)
    2) TNSPING
    이 tool은 기본적으로 설치가 되어 있으며
    이 tool을 가지고 user가 client에 setting한 TNS alias(tnsnames.ora
    파일안에 설정)
    가 정상적으로 동작하는지를 테스트해 볼 수 있습니다.
    TNSPING은 접속하고자하는 database가 있는 machine의 listener에 접속을하고
    걸리는 시간을 miliseconds로 표시해 줍니다.
    (실제 db와 connection을 맺는 것은 아닙니다.)
    사용 방법 :
    tnsping TNSalias이름
    (NT의 경우에는 dos command상태에서)
    3) 모든 logging 과 tracing 막기
    Tracing은 client와 server에 모두 가능하게 할 수 있습니다.
    다음 parameter를 SQLNET.ORA파일과 LISTENER.ORA파일
    ( $ORACLE_HOME/network(또는 net80)/admin에 위치합니다 )
    에 setting하고 listener를 restart
    (lsnrctl stop, lsnrctl start)
    하면 SQL*Net의 모든 tracing을 막을 수 있습니다.
    SQLNET.ORA:
    TRACE_LEVEL_CLIENT =OFF
    TRACE_LEVEL_SERVER =OFF
    TNSPING.TRACE_LEVEL=OFF
    'OFF'대신에 '0'을 사용해도 됩니다.
    LISTENER.ORA:
    TRACE_LEVEL_LISTENER=OFF
    LOGGING_LISTENER=OFF
    4) Listener log 파일들 지우기
    만일 listener의 logging이 설정되어 있는 상태라면 LISTENER.LOG 파일이
    이 생깁니다. listener는 connection이 맺어질대 마다 이 파일에
    lock을 걸고 write하기 때문에 size가 계속 증가하게 되어 문제가 생길 수
    있습니다. 만일 LISTENER.LOG 파일의 size가 너무 크게 되면 rename을 하시기
    바랍니다. 그리고 listener를 restart하면 새로운 log file이 만들어 집니다.
    5) SQLNET.ORA에 AUTOMATIC_IPC를 OFF로 설정
    AUTOMATIC_IPC = { ON | OFF }
    위 parameter는 "SQLNET.ORA"파일에 설정할 수 있으며 ON으로 되어 있는경우
    SQL*Net이 같은 alias정보를 가진 local database가 있는지 check하게
    됩니다.
    만일 local database가 있다면 connection은 network layer를 건너뛰고 local
    'Inter Process Communication'(IPC) connection을 맺게 됩니다.
    따라서 이 setting은 database server쪽에 사용할 수 있는 것이지
    client machine SQL*Net에는 아무 쓸모 없습니다.
    database server쪽에 사용하더라도 local database에 SQL*Net connection이
    반드시 필요한 경우가 아니라면 사용하시 않는 것(OFF로 설정)이 좋습니다.
    6) SQLNET.ORA에 NAMES.DIRECTORY_PATH 설정
    NAMES.DIRECTORY_PATH = (ONAMES,TNSNAMES)
    이 parameter는 TNS aliases를 찾는 경로를 지정할때 사용합니다.
    Oracle*Names가 설정이 안되어 있는 경우 ONAMES을 지우시는 것이 좋습니다.
    7) SDU와 TDU
    SDU('Session Data Unit')는 네트워크를 통해 보내는 packet의 size입니다.
    이 size는 MTU(Maximum Transmission Unit)를 넘어서는 안됩니다.
    MTU는 네트워크상에 고정된 값입니다.
    TDU('Transport Data Unit')는 SQL*Net이 data를 함께 묶는 기본 packet size
    이며 SDU의 배수여야 합니다.
    다음에서 예를 들어 보겠습니다.
    * SDU=1024, TDU=1536:
    SQL*Net은 buffer에 1536 byptes까지 저장했다가 네트워크로 보냅니다.
    낮은 network layer에서 이것을 다시 두개의 physical packets(1024,512
    bytes)로
    나누어 보냅니다.
    * SDU=1514, TDU=1000:
    SQL*Net은 buffer에 1000 byptes까지 저장했다가 네트워크로 보냅니다.
    SDU는 request당 514 bytes를 더 담을 수 있는데도 불구하고 보내지기 때문에
    network resource의 낭비를 초래합니다.
    표준 Ethernet network에서 MTU의 default size는 1514 bytes입니다.
    표준 token ring network에서 MTU의 default size는 4202 bytes입니다.
    SDU와 TDU를 설정하려면 TNSNAMES.ORA 과 LISTENER.ORA 를 다음과 같이
    바꾸어야 합니다.
    TNSNAMES.ORA:
    ORCL.WORLD =
    (DESCRIPTION =
    (SDU=1514)
    (TDU=1514)
    (ADDRESS =
    (PROTOCOL = TCP)
    (HOST = fu.bar)
    (PORT = 1521)
    (CONNECT_DATA = (SID = ORCL))
    LISTENER.ORA:
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SDU = 1514)
    (TDU = 1514)
    (SID_NAME = ORCL)
    (GLOBAL_DBNAME = ORCL.WORLD)
    SDU와 TDU는 modem을 사용하는 환경에서는 줄여주는 것이 좋고
    fiber나 T3 line을 사용하는 환경에서는 늘려주는 것이 좋습니다.
    SDU와 TDU의 default값은 2048이고 maximum값은 32768입니다.
    8) PROTOCOL.ORA의 tcp.no_delay 설정
    기본적으로 SQL*Net은 SDU buffer가 찰때가지 request를 전송하지 않고
    기다립니다. 다시 말해 request가 도착지점으로 바로 전송되지 않는 다는것을
    의미 합니다. 그런데 'no_delay'를 설정함으로써 data buffering을 하지 않게
    할 수 있습니다. 따라서 'no_delay'를 설정하게 되면 작은 size의 patckets의
    전송이 늘게되어 network traffic이 증가하게 됩니다.
    따라서 이 parameter는 TCP timeout이 발생했을 경우에만 사용하셔야 합니다.
    9) LISTENER.ORA의 QUEUESIZE 설정
    QUEUESIZE는 listener가 저장할 수 있는 request의 수를 의미 합니다.
    만일 들어오는 reqeusts의 수가 buffer의 size를 넘게 되면,
    접속을 시도한 client는 접속을 실패하게 됩니다.
    이 buffer의 size는 예상되는 동시 접속 수를 설정해 주는 것이 좋습니다.
    LISTENER =
    (ADDRESS_LIST =
    (ADDRESS =
    (PROTOCOL = TCP)
    (HOST = fu.bar)
    (PORT = 1521)
    (QUEUESIZE = 32)
    이 parameter는 TCP/IP나 DECNET protocol이 사용될때만 사용됩니다.
    10) SQLNET.ORA의 BREAK_POLL_SKIP 설정
    이 parameter는 user break을 check하는 사이의 packet수를 지정합니다.
    다시 말해 만일 이 parameter의 값이 높으면 CTRL-C checking은 덜 자주
    일어나게되며 CPU overhead는 줄게 됩니다.
    만일 이 parameter의 값이 낮으면 CTRL-C checking이 자주 발생되어
    CPU overhead가 늘게 됩니다.
    기본값은 4이며 client SQL*NET에만 사용됩니다.
    11) SQLNET.ORA의 DISABLE_OOB 설정
    Out of band break check를 enable시키거나 disable시킬때 사용하는
    parameter입니다.
    기본값은 off입니다.
    여기서 잠간만 !
    Out of Band Breaks란 무엇인가 ?
    네트워크 통신상에서 받아들여지는 interrupt signals은 일반적으로
    다른 data(예를 들어 select 문장)과 같이 도착하게 됩니다.
    이것을 In-band Breaks라고 합니다.
    그런데 이 interrupt signals을 connection과는 다른 channel을 통해
    전달할 수 있습니다 이것을 Out of Band Breaks라고 하며 이 방식은
    interrupt signal을 훨씬 빠르게 그리고 효과적으로 전달 할 수 있습니다.
    (예를 들어 deadlock을 break하기위해 control-C를 사용하는 것)
    12) PROCESS.DAT와 REGID.DAT
    7.3.2 버전에서 Oracle Server Tracing은 기본적으로 enabled되어 있습니다.
    따라서 모든 connection과 request가 PROCESS.DAT와 REGID.DAT에
    기록이됩니다.
    database의 사용기간이 길어지면 이 파일들은 접속속도를 현저히 떨어뜨리게
    됩니다.
    이러한 trace 파일들을 사용하지 않기위해 listener.ora파일에
    'EPC_DISBLED=TRUE'를 설정해야 합니다.

    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 find out the size of files transferred over the SQL * Net?

    I am trying to test the Advanced Compress (AC) for 11g Data Guard. When the AC is turned on, the archived log files are supposed to be compressed on the primary database server and sent over SQL*Net, then decompressed on the standby db server. We will see the file sizes are the same on both primary and standby servers. I want to verify that the AC works by monitoring how much data are sent over SQL*Net. Per Oracle, AC uses 35% less of the bandwith. That means the size of the files transferred should be at least 65% of the original size.
    Is there a way to find out the size through Oracle utilities? If not, how to find out by OS utilities? OS is Solaris 5.10.
    Thanks.

    I'm not sure this can be done via SQL*Net, but a network packet sniffer between the two servers should be able to help - you might want to contact your network team.
    HTH
    Srini

  • SQL*Net Secure Protocol?

    Anyone,
    My security auditors are breathing down my back... Is SQL*Net considered a secure communication protocol?
    Can someone with a Packet Sniffer siphen off my SQL*Net communications and obtain any data being transfered through it? Namely Passwords and DB connect paramateters, data is also a concern but less.
    This is via an Internal Network not over the internet..
    Thanks in advance,
    Milller

    yes.
    you an encrypt sql*net communications within the network.
    ASO provides different bult-in mechanisms.
    you just add the following entries with appropriate values
    and your sqlnet is encrypted.
    SQLNET.ENCRYPTION_SERVER = <ACCEPTED, REJECTED, REQUESTED or REQUIRED>
    SQLNET.ENCRYPTION_CLIENT = <ACCEPTED, REJECTED, REQUESTED or REQUIRED>
    SQLNET.CRYPTO_SEED = <STRING>
    only disadvantage is
    in 8i your internal account will be locked!
    so you cant use dbstart/dbshut scripts.
    workaoround is to script the following in your dbstart/dbshut
    1. move or rename sqlnet.ora to something.ora
    2. proceed with dbstart/dbshut.
    3. move or rename something.ora to sqlnet.ora

  • How to connect to DB in repository assistant using SQL*net

    Hi all,
    We are in RAC enviroment. When I try to connecting to oracle DB in repository assistant (the page that asks for SYS account), I check the SQL*net, and enter the net service name (absolutly also enter the SYS and SYS psw field), but the 'next' button is grey out.
    according to installation guide, in a RAC environment, do not type the host name, port number and oracle service name. But in my case, I have to enter all these fields to enable the 'next' button.
    any idea of how to fix it?
    thanks

    I forget to say that I can connect to the repository browser using SQL*net. So I suppose that net service name is correct.
    thanks for any suggestion.

  • 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.

  • SQL*NET에서 CLIENT IP를 이용하여 CONNECT를 제한하는 방법(protocol.ora)

    제품 : SQL*NET
    작성날짜 : 2005-07-05
    SQL*Net을 통해 listener에 접속할 수 있는 Client Node를 제한하는 방법
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    SQL*Net을 사용하면서 특정한 Client Node의 접근을 제한할 수 있으며,
    이 기능은 Oracle V7.1이상에서 적용을 할 수가 있습니다.
    Configuration은
    ~ 8i:
    $ORACLE_HOME/network/admin/protocol.ora에 설정합니다.
    9i: $ORACLE_HOME/network/admin/sqlnet.ora file에 설정합니다.
    변수 지정의 예;
    1. tcp.validnode_checking = yes
    tcp.invited_nodes=( 152.68.18.73 )
    이 경우는 오직 152.68.18.73 Node의 사용자만 접속을 할수 있으며,
    그외의 Node에서는 접속이 거절됩니다. (ora-12537 발생) 여기서 조심할
    사항은 반드시 자기 자신의 IP를 invited_nodes에 등록해줘야 합니다.
    2. tcp.validnode_checking = yes
    tcp.excluded_nodes=( 152.68.18.73 )
         이 경우는 152.68.18.73 만 접속이 거절되며, 그외의 다른 machine
    에서는 접속이 정상적입니다.
    3. tcp.validnode_checking = yes
    tcp.invited_nodes = (152.68.19.210, 152.68.18.74)
    tcp.excluded_nodes = (152.68.18.73)
         152.68.19.210, 152.68.18.74 Node의 사용자는 Listener에 접속을
    할 수 있고, 152.68.18.73 Node의 사용자는 접속을 못합니다.
    단, 하나 이상의 ip address 를 나열할 때는 single line 에 기록해야
    합니다.
    이렇게 설정 후에는 listener를 재기동합니다.

  • How can I connect oracle without installing its SQL*Net client?

    How can I connect oracle without installing its SQL*Net client?

    Pls suggest, any possible solution, i cross checked from below link, and tried to install the instant clients, but
    http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
    its showing me error of "This application has failed to start because OCI.dll was not found. Re-installing the application may fix this problem."
    Let me know if you have any thing on this.

  • Oracle SQL*Net and TNS Protocol

    I need to get technical documents on Oracle SQL*Net and TNS Proticol, down to the bit-level definition. I have talked to serveral people in Oracle Documentation, Sales and Tech Support, but no one could give me any clue so far. Any one can help me on this?

    SQL*Net is installed by default with SQL*Plus and any of the clients (OEM uses the JDBC OCI driver and some native connectivity).
    It is likely that the version of the client you have installed is not one that TOAD can work with or it can't find the client (is the Oracle home/bin directory in the path?)

  • How do I get SQL*Net Client for Win95?

    Specifically, which software package comes with the SQL*Net Client for Windows 95?

    Any of the products that requires a client side installation will include it. Things like the server will also normally include a client side instalation kit. The JDBC drivers do not come bundled with a client (not when downloaded from technet at any rate).

Maybe you are looking for