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 이후 버젼에서는 수정되었다.
Similar Messages
-
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를 띄운다) -
제품 : SQL*NET
작성날짜 : 1996-07-02
PC에서 SQL*NET V1을 사용하여 서버에 접속시
"ORA-6107 NETTCP: ORACLE network server not found "
에러가 발생하는 경우 다음과 같은 원인을 생각해 볼 수 있습니다.
(1)orasrv 가 PC의 TCP/IP services 화일에 등록이 안되어 있는 경우
C:\ 상태에서
dir services /s
명령으로 services 화일을 찾은 다음 이것을 editor 로 열어서 다음과 같은
문장이 있는지 확인하고 없으면 추가해 줍니다.
orasrv 1525/tcp
1525 는 orasrv 가 사용하는 port 번호인데 services 화일은 port 번호가
작은 것부터 큰 순으 정렬이 되어 있어야 하므로 이 라인을 적절한 곳에
끼워 넣으면 됩니다.
(2)오라클이 services 화일을 인식하지 못하는 경우
이 경우에는 PC에서 TCP_SERVICSE_FILE이라는 파라미터를 oracle.ini에 세팅하면 됩니다.
예를 들어 services 화일이 C:\FUTURE\ETC 디렉토리에 있다고 가정하면
oracle.ini에서
TCP_SERVICES_FILE=C:\FUTURE\ETC\SERVICES
와 같이 해주면 됩니다.
Windows95 의 경우에는 이 값을 REGISTRY에 세팅을 해야 합니다.
다음과 같이 하면 됩니다. 즉,
DOS 창에서 REGEDIT32.EXE 실행
HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE 선택
TCP_SERVICES_FILE 등록
(3)계속 해결이 안되면 접속시에 직접 PORT 번호를 지정해서 접속하도록 합니다.
다음과 같이 하면 됩니다.
username = scott
password = tiger
connect string = t:hostname/1525:<SID> -
WINDOWS 용 SQL*NET 를 사용 시 ORA-3121
제품 : SQL*NET
작성날짜 : 1995-11-06
다음은 ORA-3121을 해결하기 위해 단계별 조치방법을 설명하겠습니다.
==========================
SQL*NET V2 에서의 ORA-3121
==========================
1) SQL*NET V2를 통해 연결하려 할 때 Connect String에 'tns:' prefix를 사용
하지 않으면 ORA-3121이 나오는 경우가 있습니다.
예를 들어서 tnsnames.ora 에 등록된 service name이 TORA라고 가정한다면
Connect String을
tns:TORA
와 같이 지정하면 됩니다.
Powerbuilder의 경우에는
@TORA 또는 @tns:TORA
로 주게 됩니다.
2) PC에 SQL*NET V2가 install이 안 되어 있는 경우에 Connect String을 TORA와
같이 SQL*NET V2 형식으로 주게되면 ORA-3121이 발생합니다.
ORACLE Installer를 실행하여 현재 인스톨 되어 있는 목록을 확인하여 SQL*NET
V2와 TCP/IP ADAPTER가 인스톨이 되어 있는지 확인합니다.
3) 만약 NETTEST나 TNSPING, SQLPLUS에서는 접속이 되는데 POWER BUILDER와 같은
3rd Party Tool에서 접속이 되지 않고 ORA-3121이 발생하면 이 때에는
C:\ORAWIN\BIN 또는 C:\ORAWIN95\BIN
디렉토리가 PATH에 설정이 되어 있지 않은 경우입니다.
PATH를 확인하시기 바랍니다.
4) 3rd PARTY TOOL로 개발된 16BIT APPLICATION 이라면 AUTOEXEC.BAT 화일에
다음을 추가하고 PC를 REBOOTING 합니다.
SET CONFIG=C:\WINDOWS\ORACLE.INI
=========================
SQL*NET V1에서의 ORA-3121
=========================
1. Windows에서 나와서 DOS 프롬프트로 가십시요.
2. DOS 프롬프트에서 PATH를 입력하고 <RETURN>을 누르십시요.
현재 경로에 있는 모든 드라이브를 적어 두십시요. (C:, D:)
3. 2에서 적은 DOS 경로의 모든 드라이브에서 ORA6WIN.DLL 이라는 화일을 찾으시
기 바랍니다.
(Norton에서 FILEFIND 유틸리티를 사용하거나 DOS 5.0 이상의 경우 Root 디렉토
리에서 간단하게 DIR ORA6WIN.DLL/S를 실행하는 것이 좋은 방법입니다.
Windows 파일 관리자의 파일 찾기 유틸리티를 사용할 수도 있습니다.)
ORA6WIN.DLL이 여러 개이면 한 가지만 제외하고 모든 복사본의 이름을 바꾸십
시요.
(ORA6WIN.DLL같은 것으로). 한 가지 예외는 4/13/92(285573 byte)
또는 10/15/92(380639 bytes)라고 적힌 ORA6WIN.DLL은 복사본입니다.
이들 두 버전의 ORA6WIUN.DLL은 Oracle Corporation이 적접 배포한 것입니다.
10/15/92이후 날짜로 되어있고 380639 바이트보다 큰 파일을 가지고 있다면 그
것을 사용해도 좋습니다.
( 이들 날짜의 ORA6WIN.DLL 복사본이 없으면 제3자 응용 프로그램 업체에 연락해
서 이 파일의 복사본을 구하십시요. 디스크 레이블이 "Windows Required
Support Files Version 6.0xx.x.x"인 Oracle 제품이라면, 틀림없이
ORA6WIN.DLL의 최신 복사본이 있을 것입니다.)
4. ORA6WIN.DLL이 있는 디렉토리를 적어 두십시요.
5. 현재 경로에 앞서 말한 디렉토리가 있는지 확인하십시요.
DOS Prompt에서 PATH를 입력하고 <RETURN>을 누르면 됩니다.
6. 현재 경로에 ORAWIN\BIN 디렉토리가 있는지 확인하십시요. (또는 Windows용
SQL*NET이 설치된 곳, 잘 모르겠으면 ORACLE_HOME\BIN 디렉토리를 보십시요.
ORACLE.INI 파일에 ORACLE_HOME이 정의되어 있습니다.)
또한 ORACLE_HOME\BIN 디렉토리에 SQL*NET DLL이 있는지 확인하십시요.
(예를 들어, Windows용 SQL*NET SPX의 경우는 SQLSPX.DLL과 SQLSPX1.DLL,
WINDOWS용 SQL*NET TCP/IP의 경우는 SQLTCP.DLL과 SQLTCP1.DLL).
ORACLE_HOME\BIN디렉토리에 ORA7WIN.DLL이 있는 지도 확인해야 합니다.
7. WINDOWS 디렉토리의 win.ini 파일을 편집하십시요.
다음과 같은 ORACLE이라는 그룹을 반드시 넣어야 합니다.
[Oracle]
ORA_CONFIG=C:\WINDOWS\ORACLE.INI
8. A) DOS 프롬프트에서 SET을 다시 입력하고 <RETURN>을 누르십시요.
CONFIG라는 DOS환경 변수가 CONFIG.ORA 라는 파일에 인쇄하도록 설정되어 있는지
점검하십시요.
CONFIG 환경 변수는 다음과 같아야 합니다.
<server : DOS, unix, tool : DOS>
CONFIG=C:\ORACLE6\CONFIG.ORA
B) 환경 변수에 CONFIG 변수가 설정되어 있지 않으면 AUTOEXEC.BAT 파일에
다음 명령문을 추가하고 나서 다시 부팅하십시요.
<server : unix, tool : windows>
SET CONFIG=C:\WINDOWS\ORACLE.INI
(Windows 디렉토리에 해당 경로에 넣으십시요)
CONFIG가 설정되지 않아서 8B) 단계를 수행했으면 9단계는 무시하십시요.
9. CONFIG.ORA와 ORACLE.INI FILE의 다음 매개변수를 일치 시키십시요.
(이들 파일의 위치에 대해서는 8단계를 참조하십시요.)
이들 매개변수 중에는 두 파일에 없는 것도 있습니다. 이들 매개 변수가 CONFIG.ORA나 ORACLE.INI에 있으면 정확히 일치하게 하십시요. 이들 매개변수 중
에 두 파일 중 어디에도 없는 것이 있다면, 그것을 추가하지 마십시요.
또한 이들 매개변수 중에 불필요한 것이 있을 수도 있지만, 그것을 CONFIG.
ORA와 ORACLE.INI에 모두 추가해도 전혀 문제는 없습니다.
매개변수 목록 :
WIN_LOCAL_SESSIONS
WIN_REMOTE_SESSIONS
LOCAL
REMOTE
INTERRUPT
XMMITR
TCP_HOSTS_FILE
TCP_SERVICES_FILE
SQLNET DBNAME
10. 지금 WINDOWS를 시작한 다음, 프로그램 관리자의 도움말(HELP)을 클릭하고
ABOUT PROGRAM MANAGER를 클릭하여 WINDOWS가 enhanced mode인지 확인해 보시
기 바랍니다.
WINDOWS용 SQL*NET은 표준 모드로 작동하지 않습니다.
11. 로그인 화면에 Connect String을 명시적으로 제공한 경우에는 Connect
String 앞에 '@'를 지정하지 마십시요.
다음 예와 같이 그냥 Connect String만을 입력하십시요.
t:orasrv:orasid 혹은 x:orasrv
12. ORACLE.INI와 CONFIG.ORA에 LOCAL 매개 변수가 있으면, 로그인 화면에서
Connect String을 지정하지 않고 Connect String field를 비워둘 수 있습니다.
LOCAL=t:orasrv:orasid
(Note): Oracle Corporation은 사용자의 \ORAWIN\BIN 디렉토리에 설치되는
NETTEST.EXE라는 WINDOWS 시험 프로그램을 배포합니다. 이 프로그램을 사용하면
Remote ORACLE 서버에 대한 연결을 시험할 수 있습니다. 이 프로그램은 연결되지
만 제3자 툴이 연결되지 않으면 해당 툴 업체에 문의하십시요.The last 16-bit ODBC driver was an Oracle7 driver. I don't believe it's certified for use with an 8i database.
Justin -
SQL*NET V1,V2 사용 시 ORA-9241, ORA-9301 조치방법
제품 : SQL*NET
작성날짜 : 1995-11-07
SQL*Net V1, V2 사용 시 ORA-9241, ORA-9301 조치 방법
==================================================
ORA-9241, ORA-9301 에러는 개발 툴이 해당 툴 또는 SQL*Net에 필요한 메세지
화일을 찾을 수 없을 때 발생한다.
* SQL*NET V 1
1. DOS 환경에서 SET을 수행하여 CLIENT상에 CONFIG라는 환경변수가 설정되어
있는지 확인한다.
2. 설정되어 있지 않으면 ROOT directory에서 CONFIG.ORA 또는 ORACLE.INI라는
화일을 찾는다. (Directory Search)
(상기의 화일은 보통 \ ORACLE_HOME 또는 \ WINDOWS Directory 내에 있다.)
상기의 화일이 존재하면 DOS환경에서 다음의 CONFIG 환경변수를 추가한다.
C:\> SET CONFIG = <PATH> \ORACLE.INI
이로써 문제가 해결될 수 있으며, DOS 환경에서 SET과 PATH 명령을 수행하여
ORACLE_HOME 디렉토리가 PATH에 설정되어 있는지, 그리고 CONFIG가 DOS환경에
설정되어 있는지 확인하고 WINDOWS를 실행해야 한다.
3. 환경변수 CONFIG가 이미 설정되어 있고 ORACLE.INI 또는 CONFIG.ORA를
지시하고 있는데도 ORA-9241 또는 ORA-9301 에러가 계속 발생한다면
WINDOWS를 완전히 빠져나와서 ORACLE.INI를 CONFIG.ORA 라는 또 다른 화일로
복사를 하고 DOS 환경에서 환경변수 CONFIG를 추가한다.
C:\> SET CONFIG = <path> \CONFIG.INI
4. 만일 ORACLE.INI 를 autoexec.bat 파일에 SET CONFIG = <PATH> \ORACLE.INI
와 같이 추가하여도 계속 에러가 발생한다면 ORACLE.INI 파일에
LOCAL = t:hostname:sid 을 추가한다.
5. 단계2 또는 단계3 에서 문제가 해결된다면 이를 AUTOEXEC.BAT 화일에 SET
CONFIG문을 추가한다.
* SQL*NET V 2
1. ORACLE.INI 파일에 LOCAL = <V2 service name>을 추가한다. 만일 ORACLE.INI
파일에 LOCAL 파라미터를 추가한 후에도 계속 ora-9301 에러가 계속 발생한다면
autoexec.bat 파일에 SET CONFIG = <PATH> \ORACLE.INI를 추가한다.
[주의 1] CONFIG가 ORACLE.INI를 지시하도록 설정하면 나중에 다시 설치할
문제가 발생할 수 있다. 그럴 때는 AUTOEXEC.BAT 에서 SET CONFIG 행을
삭제하고 다시 Booting 한후 설치를 시작한다.
[주의 2] MS ACCESS를 이용하여 ORACLE의 데이타를 질의할 경우는 환경변수를
다음과 같이 설정한다.
SET CONFIG_FILES = <path> \ORACLE.INI
[주의 3] SET 다음의 CONFIG 나 CONFIG_FILES 은 반드시 대문자 이어야 한다. -
WINDOWS 용 SQL*NET 사용 시 ORA-6122
제품 : SQL*NET
작성날짜 : 1995-11-10
WINDOWS 용 SQL*NET 사용 시 ORA-6122
===================================
ORA-6122 "NETTCP: setup failure"는 SQL*NET 구성이 적절하게 설정되지 않은
상태에서 WINDOWS 용 SQL*NET TCP/IP를 가지고 연결하려 할 때 발생합니다.
구성을 점검하여 다음 사항을 제대로 설정했는지 확인하십시오.
1. WINDOWS\WIN.INI를 조사해 보십시오. ORA_CONFIG 매개 변수를 정의하는
ORACLE 부분이 있어야 합니다.
[Oracle]
ORA_CONFIG=C:\WINDOWS\ORACLE.INI
2. ORACLE.INI(또는 ORA_CONFIG 매개변수가 지시하는 파일)을 보십시오.
ORACLE_HOME이 WINDOWS용 SQL*NET TCP/IP와 다른 Oracle Windows 응용 프로
그램이 설치된 디렉토리를 지시하는지 확인하십시오.
디폴트는 다음과 같습니다.
ORACLE_HOME=\ORAWIN
3. 또한 ORACLE.INI에 TCP_VENDOR를 정확하게 설정했는지도 확인하십시오.
유효한 업체 키 목록은 WINDOWS용 SQL*NET TCP/IP 설정의 표 3-4 '업체키'를
참조하십시요.
4. 경로에 C:\ORAWIN\BIN(또한 ORACLE_HOME을 설정한 BIN 디렉토리)이 있는지
확인하십시오.
DOS 프롬프트에서 SET을 입력하고 <return>을 누르면 됩니다.
이 명령은 경로를 보여줍니다.
5. ORAWIN\BIN 디렉토리에 SQLTCP.DLL과 SQLTCP1.DLL이 모두 있는지 확인하십시오.
6. 경로의 다른 어떤 디렉토리에도 SQLTCP.DLL이 없는 것을 확인하십시오.
7. ORAWIN\BIN 디렉토리와 경로의 다른 디렉토리에 MSOCKLIB.DLL이 있는지
확인하십시오.
또한 파일의 두 복사본을 가지고 있지 않도록 하십시오.
복사본이 둘일 경우, 이전 복사본의 이름을 바꾸면 문제가 줄어들 수 있습니다.
8. WINDOWS 디렉토리에 VSL.INI 파일이 있는지 확인하십시오.
만약 없으면 ORACLE INSTALLER를 통해 SQL*NET를 다시 입력하십시오. -
Can't connect to sql*net, ORA-12638: Credential retrieval failed
after installed oracle9i, I can use sqlplus, but when I try to use sql navigator, I can't connect to sql*net.
I found out the following error message in logfile:
Fatal NI connect error 12638, connecting to:
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=BEQ)
(PROGRAM=oracle)
(ARGV0=oracleoms)
(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))
(CONNECT_DATA=(SID=oms)(CID=(PROGRAM=c:\oracle\ora92\bin\ORACLE.EXE)(HOST=JZQGG31)(USER=OraUser))))
VERSION INFORMATION:
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 9.2.0.1.0 - Production
Time: 11-MAR-2004 17:04:17
Tracing not turned on.
Tns error struct:
nr err code: 0
ns main err code: 12638
TNS-12638: Credential retrieval failed
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
=============================================
Hope somebody can help me! Thanks!change in sqlnet.ora file
find under oracle home\network\admin\sqlnet
and
SQLNET.AUTHENTICATION_SERVICES = (NTS)
CHANGE TO
SQLNET.AUTHENTICATION_SERVICES = (NONE)
hope it will solve u r problem
kuljeet pal singh -
WINDOWS용 SQL*NET 사용시 ORA-6106
제품 : SQL*NET
작성날짜 : 1995-11-08
다음은 먼저 WINDOWS용 SQL*NET TCP/IP와 ORA-6106을 간단하게 소개한 다음 ORA
-6106을 진단하는 방법을 설명하겠습니다.
* WINDOWS용 SQL*NET TCP/IP
WIN V1.X용 SQL*NET TCP/IP는 현재로서는 SQLTCP.DLL과 SQLTCP1.DLL 등 두개
의 DLL이 한 세트로 되어 있습니다. 이들 DLL은 ORACLE용 연결 스트링이 TCP/IP
프로토콜 스트링으로 변환되면 OCI DLL에 의해 작업 진행중에 올려집니다.
ORACLE INTERFACE DLL은 SQLTCP.DLL을 먼저 올리려고 합니다. 이것이 실패하면
DOS TSR 버전의 드라이버를 찾습니다. 두 가지 모두 실패하면 ORA-3121
메세지가 나옵니다.
1. SQL*NET DLL은 올려지자마자 MSOCKLIB.DLL(ORACLE에서 제공됨)이 올려집니다.
이 DLL은 ORACLE.INI로부터 TCP_VENDOR 스트링으로 전달받습니다ㅏ. 그 후, 이
MSOCKLIB.DLL은 TCP_VENDOR 스트링을 사용하여 항상 WINDOWS 디렉토리에 있는
VSL.INI라는 파일을 엽니다. VSL 파일은 JSB 호출을 각 업체 고유의 API에
대응시킵니다. VSL.INI가 없으면 MSOCKLIB.DLL이 초기화에 실패하여 ORA-6120
"NETTCP : network driver not loaded" 메세지가 나오게 됩니다. 이것은 고객이
다른 기계에서 SQL*NET DLL을 복사하거나 XCOPY 명령으로 ORAWIN 디렉토리
전체를 복사하기만 하고 이 VSL.INI 파일을 복사하지 않을 때 자주 발생합니다.
2. VSL.INI가 있다 하더라도 TCP_VENDOR 매개 변수에 ORA-6120 또는 ORA-6106
"NETTCP : socket creation failure"를 유발할 수 있는 오류가 적지 않습니다.
3. 이 문제의 다른 원인은 MSOCKLIB.DLL이 대응을 제대로 결정할 수 있지만
MSOCKLIB.DLL API를 해당 업체의 TRANSPORT 인터페이스 또는 API에 결합하도록
글루(glue)에 지시할 수 없는 것입니다. 이 글루는 SQL*NET TCP/IP를 설치할 때
선택하는 TCP/IP 업체에 따라 DLL 또는 TSR일 수 있습니다. 예를 들면, WINDOWS
로 들어가기 전에 글루 DLL이 실패할 수도 있고 (이를테면 MNOVLWP.DLL) 벤더
고유의 TSR(예를 들면 MFTP.EXE)이 올려지지 않았을 수도 있습니다. 이 글루를
구성하는 DLL과 TSR의 목록은 다음과 같습니다.
. m3open.dll : 3Com 3+Open v2.0
. mhparpa.dll : HP ARPA v2.0 & v2.1 그리고 Micorsoft TCP V1.0
(LAN Manager v2.2의 번들)
. mnovlwp.dll : Novell LAN WorkPlace v4.0, v4.01, & v4.1
. mpcnfs4.dll : Sun PC-NFS v4.0a
. mpathsay.dll : Wollongong Runtime TCP v1.1 & v1.2
. mwinsock.dll : VSL 일반형 windows sockets DLL 버전 1.1
. Frontier Technology Super - TCP v3.0
. NetManage Chameleon TCP v3.1과 v3.22
. FTP PCTCP v2.2 - Winsock Interface
(1993년 5월 4일자 WINSOCK.DLL)
. SUN PC/NFS 5.0 - Winsock Interface
(1993년 3월 2일자 WINSOCK.DLL)
. DOS용 IBM TCP v2.1.0.2
(1993년 3월 30일자 WINSOCK.DLL)
. m3open.exe : 3Com 3+Open v1.1 & v1.2 및 DOS용 Digital
Pathworks(TCP/IP) v4.1
. mb2.exe : Beame 및 Whiteside TCP/IP v3.0
. mftp.exe : FTP PC/TCP v2.1 부터 v2.2까지
. mpcnfs.exe : Sun PC-NFS v3.0
. mpcnfs2.exe : Sun PC-NFS v3.5
| Oracle Win App |
|
| (연결)
|
| OCI 레이어 : |
| ORA6WIN.DLL 또는|
| ORA7WIN.DLL |
|
| (진행중에 올려지며 진입점을 갖게 됨)
| (여기서 ORA-3121이 발생할 수 있음)
|
--------------------- (DLL의 초기화 -- Windows가 인핸스드 모드에
| SQLTCP1.DLL | 있지 않으면 실패함.
--------------------- -- ORA-3121이 발생)
| |
| (연결) |-----------------| (연결)
| |
|ORA7WIN.DLL -- | |MSOCKLIB.DLL -- |
| SQL*NET에서 일부 | | 모든 TCP/IP API의 |
| 찾아보기 루틴을 | | 진입됨 |
| 위해 사용됨 | ----------------------
-------------------- | |
| | |
| (연결) | |
| | |
| COREWIN.DLL | VSL.INI와 TCP_VENDOR를 사용하여 업체 특유의
-------------------- 인터페이스(예를 들면, MONVLWP.DLL)을 올리거나
인터페이스 TSR(예를 들면, MFTP.EXE)에 접속함.
여기서 ORA-3120 또는 ORA-6106이 발생할 수 있음.
4. 지원되는 TCP/IP 패키지 또는 버전을 설치하지 않은 것도 ORA-6106의 원인이
될 수 있습니다. 예를 들어서 TCP_VENDOR=PCNFS4를 가지고 있는 데 Sun PC-NFS
v4.0를 실행하면, TCP_VENDOR=PCNFS4 를 실행할 때 반드시 사용해야 하는
버전인 Sun PC_NFS v4.0a를 올리자 않았기 때문에 ora-6106이 발생할 수
있습니다. 우리는 SUN PC-NFS v4.0을 지원하지 않습니다. 지원되는 버전과
지원되는 TCP/IP 제품을 사용중인지 확인하십시요. (3단계 참조)
5. 지원되는 TCP/IP패키지와 버전을 설치 했더라도 TCP/IP 패키지에 필요한 실행
파일을 모두 설치하지 않았으면 ORA-6106이 발생할 수 있습니다. 예를 들어,
RTM과 RNMFILE(또는 NIS를 사용할 경우 RNMNIS)를 올리지 않았다면 PC-NFS를
사용할 때 ORA-6106이 발생할 수 있습니다. Microsoft TCP를 사용할 경우에는
반드시 SOCKETS.EXE를 올려야 합니다.
6. 또한 CONFIG.SYS의 FILES와 BUFFERS를 충분히 높게 설정하지 않으면
ORA-6106이 발생할 수 있습니다. 다음은 이들 매개변수의 최소 요구사항입니다.
BUFFERS = 16
FILES = 60
7. ORA-6106의 또 다른 원인은 실제 메모리의부족입니다.
* ORA-6106을 진단하는 단계
1. TCP/IP 업체의 PING과 TELNET이 잘 작동하는 지 점검하십시요. 이들
유틸리티의 GUI 버전이 도움이 될수 있습니다. 이들 유틸리티가 작동하지
않으면 TCP/IP 설치 책자를 참조하거나 TCP/IP 업체에 연락하십시요.
2. 이들 유틸리티가 작동하지 않으면 WINDOWS 디렉토리에 VSL.INI 파일이 있는
지 점검 하십시요. 만약, 없으면 WINDOWS용 SQL*NET TCP/IP를 다시 설치하거나
다른 곳에서 복사해 오십시요.
3. WINDOWS 디렉토리에 VSL.INI가 있으면 TCP/IP 업체를 바르게 선택을 하면서
TCP/IP를 설치 했는지 점검 하십시요.
4. 제대로 설치했으면 ORACLE.INI의 TCP_VENDOR 매개 변수를 읽어 보십시요.
TCP_VENDOR의 값에 정확한 TCP/IP 패키지와 버전을 사용중인지 확인하십시요.
그런다음 VSL.INI로 가서 그 TCP_VENDOR의 프로파일을 살펴 보십시요.
프로파일의 "netmodule"은 무엇입니까? "netinterface"가 DLL이라면. 그 DLL을
찾을 수 있습니까? 필요할 때 WINDOWS가 DOS PATH를 통해 그 DLL을 올릴 수
있습니까? "netinterface"가 TSR이라면 WINDOWS로 들어가기 전에 반드시 그
TSR을 실제로 올리십시요.
5. CONFIG.SYS의 FILES와 BUFFERS를 충분히 높게 설정했는 지 확인 하십시요.
다음은 이들 두 매개변수의 최소 요구사항입니다.
BUFFERS = 16
FILES = 60
6. 앞서 말한 단계를 다 수행했는데도 여전히 ORA-6106이 발생하면 기본
메모리의 일부를 해제해 (불필요한 TSR을 내리거나 일부 TSR을 상위 메모리로
올려서) 보십시요.
7. Micorsoft TCP/IP를 사용 한다면 TCPUTILS.INI의 SCOKETS값을 점검하십시요.
값이 너무 낮으면 올리십시요. 또한 SOCKETS.EXE를 호출했는 지도
확인하십시요.
8. WINDOWS를 통해 SUN PC-NFS V5를 사용할 때 문제점이 생길 때가 있습니다.
그러한 경우에는 SQL*NET TCP/IP를 다시 설치하고, SUN PC-NFS V4.0a(V5가
아니라)를 업체로 선택해 보십시요. 이 때 RTM과 RNMFILE(또는 NIS를 사용할
경우 RNMNIS)을 반드시 올려야 합니다. -
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를 재기동합니다. -
SQL*Net and Datapump export disconnects with ORA-03113 error
Hi,
I have some trouble with an Oracle 11.2.0.1.0 server installation on a Windows 2008 R2 server.
If I am connected with SQL*Plus on the database server to an instance it randomly disconnects me, but no longer than after 30-60 seconds even though I am active running simple select queries.
I can connect again without any error and soon it disconnects me again.
If I am running an expdp, datapump export it starts but displays error UDE-03113 and then ORA-03113. The datapump export continues in the background and finish successfully though.
When having a look at the Alert.log for the database instance I see this error everytime it happens:
Fatal NI connect error 12547, connecting to:
(LOCAL=NO)
VERSION INFORMATION:
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production
Time: 22-JUL-2012 21:10:40
Tracing not turned on.
Tns error struct:
ns main err code: 12547
TNS-12547: TNS:lost contact
ns secondary err code: 12560
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
opiodr aborting process unknown ospid (19800) as a result of ORA-609
Mon Jul 23 02:00:00 2012
I don't believe it is an network problem as each command I am running is on the server console. No other errors in the OS event log so I need some help where to start...
Thanks in advance!
Best Regards
Martin GabrielssonThanks, no windows firewall turned on, I turned on SQL*Net tracing and this is the last part of the trc file after doing a simple select query on a table with 3 rows. After the select query has been runned I am disconnected... Any idea, help is really appreciated!
+2012-07-30 18:15:28.658650 : nsbasic_brc:packet dump+
+2012-07-30 18:15:28.658660 : nsbasic_brc:01 74 00 00 06 00 00 00 |.t......|+
+2012-07-30 18:15:28.658668 : nsbasic_brc:00 00 06 01 1A 00 26 00 |......&.|+
+2012-07-30 18:15:28.658676 : nsbasic_brc:00 00 00 00 0F 00 00 00 |........|+
+2012-07-30 18:15:28.658684 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658693 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658701 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658708 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658717 : nsbasic_brc:00 00 00 00 07 96 2C 00 |......,.|+
+2012-07-30 18:15:28.658725 : nsbasic_brc:25 06 4D 52 20 20 20 20 |%.MR....|+
+2012-07-30 18:15:28.658734 : nsbasic_brc:03 C2 1A 5F 04 C3 02 10 |..._....|+
+2012-07-30 18:15:28.658742 : nsbasic_brc:43 06 43 4C 4F 53 45 44 |C.CLOSED|+
+2012-07-30 18:15:28.658750 : nsbasic_brc:FF FF FF FF FF FF FF FF |........|+
+2012-07-30 18:15:28.658758 : nsbasic_brc:FF FF 06 4C 50 49 4D 20 |...LPIM.|+
+2012-07-30 18:15:28.658767 : nsbasic_brc:20 FF FF FF FF FF FF FF |........|+
+2012-07-30 18:15:28.658775 : nsbasic_brc:FF FF FF FF FF 0A 4D 41 |......MA|+
+2012-07-30 18:15:28.658783 : nsbasic_brc:52 47 41 42 20 20 20 20 |RGAB....|+
+2012-07-30 18:15:28.658791 : nsbasic_brc:FF 3C 77 68 65 65 6C 20 |.<wheel.|+
+2012-07-30 18:15:28.658799 : nsbasic_brc:73 68 6F 70 20 20 20 20 |shop....|+
+2012-07-30 18:15:28.658807 : nsbasic_brc:20 20 20 20 20 20 20 20 |........|+
+2012-07-30 18:15:28.658815 : nsbasic_brc:20 20 20 20 20 20 20 20 |........|+
+2012-07-30 18:15:28.658824 : nsbasic_brc:20 20 20 20 20 20 20 20 |........|+
+2012-07-30 18:15:28.658832 : nsbasic_brc:20 20 20 20 20 20 20 20 |........|+
+2012-07-30 18:15:28.658840 : nsbasic_brc:20 20 20 20 20 20 20 20 |........|+
+2012-07-30 18:15:28.658848 : nsbasic_brc:20 20 20 20 20 20 02 C1 |........|+
+2012-07-30 18:15:28.658856 : nsbasic_brc:05 07 78 66 05 03 10 09 |..xf....|+
+2012-07-30 18:15:28.658864 : nsbasic_brc:38 02 C1 02 FF 03 C2 08 |8.......|+
+2012-07-30 18:15:28.658872 : nsbasic_brc:42 FF 01 58 04 01 00 00 |B..X....|+
+2012-07-30 18:15:28.658880 : nsbasic_brc:00 14 00 01 02 00 00 00 |........|+
+2012-07-30 18:15:28.658888 : nsbasic_brc:7B 05 00 00 00 00 02 00 |{.......|+
+2012-07-30 18:15:28.658897 : nsbasic_brc:00 00 03 00 20 00 00 00 |........|+
+2012-07-30 18:15:28.658905 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658912 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658921 : nsbasic_brc:00 00 00 00 00 16 00 00 |........|+
+2012-07-30 18:15:28.658929 : nsbasic_brc:01 00 00 00 36 01 00 00 |....6...|+
+2012-07-30 18:15:28.658937 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658945 : nsbasic_brc:00 00 00 00 E0 53 D1 22 |.....S."|+
+2012-07-30 18:15:28.658953 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658961 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658969 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658977 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658987 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.658996 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.659004 : nsbasic_brc:00 00 00 00 00 00 00 00 |........|+
+2012-07-30 18:15:28.659012 : nsbasic_brc:00 00 00 00 17 4F 52 41 |.....ORA|+
+2012-07-30 18:15:28.659021 : nsbasic_brc:2D 30 31 34 30 33 3A 20 |-01403:.|+
+2012-07-30 18:15:28.659029 : nsbasic_brc:64 61 74 61 20 73 61 6B |data.sak|+
+2012-07-30 18:15:28.659038 : nsbasic_brc:6E 61 73 0A |nas. |+
+2012-07-30 18:15:28.659046 : nsbasic_brc:exit: oln=0, dln=362, tot=372, rc=0+
+2012-07-30 18:15:28.659054 : nioqrc:exit+
+2012-07-30 18:16:09.583993 : nioqsn:entry+
+2012-07-30 18:16:09.584062 : nioqsn:exit+
+2012-07-30 18:16:09.584086 : nioqrc:entry+
+2012-07-30 18:16:09.584097 : nsbasic_bsd:entry+
+2012-07-30 18:16:09.584107 : nsbasic_bsd:tot=0, plen=318.+
+2012-07-30 18:16:09.584116 : nttfpwr:entry+
+2012-07-30 18:16:09.584146 : ntt2err:entry+
+2012-07-30 18:16:09.584162 : ntt2err:soc 564 error - operation=6, ntresnt[0]=530, ntresnt[1]=54, ntresnt[2]=0+
+2012-07-30 18:16:09.584171 : ntt2err:exit+
+2012-07-30 18:16:09.584178 : nttfpwr:exit+
+2012-07-30 18:16:09.584192 : nserror:entry+
+2012-07-30 18:16:09.584203 : nserror:nsres: id=0, op=67, ns=12571, ns2=12560; nt[0]=530, nt[1]=54, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0+
+2012-07-30 18:16:09.584213 : nsbasic_bsd:exit (-1)+
+2012-07-30 18:16:09.584224 : nioqrc:send failed: bl = 1, nicbl = 1+
+2012-07-30 18:16:09.584234 : nioqper: error from nioqrc+
+2012-07-30 18:16:09.584242 : nioqper: ns main err code: 12571+
+2012-07-30 18:16:09.584250 : nioqper: ns (2) err code: 12560+
+2012-07-30 18:16:09.584258 : nioqper: nt main err code: 530+
+2012-07-30 18:16:09.584266 : nioqper: nt (2) err code: 54+
+2012-07-30 18:16:09.584275 : nioqper: nt OS err code: 0+
+2012-07-30 18:16:09.584285 : nioqer:entry+
+2012-07-30 18:16:09.584293 : nioqer: incoming err = 12150+
+2012-07-30 18:16:09.584301 : niomapnserror:entry+
+2012-07-30 18:16:09.584311 : niqme:entry+
+2012-07-30 18:16:09.584321 : niqme:reporting NS-12571 error as ORA-12571+
+2012-07-30 18:16:09.584330 : niqme:exit+
+2012-07-30 18:16:09.584337 : niomapnserror:exit+
+2012-07-30 18:16:09.584344 : nioqce:entry+
+2012-07-30 18:16:09.584352 : nioqce:exit+
+2012-07-30 18:16:09.584359 : nioqer: returning err = 12571+
+2012-07-30 18:16:09.584366 : nioqer:exit+
+2012-07-30 18:16:09.584374 : nioqrc: returning error: 12571+
+2012-07-30 18:16:09.584381 : nioqrc:exit+
+2012-07-30 18:16:09.584396 : nioqrs:entry+
+2012-07-30 18:16:09.584412 : nioqrs: state = interrupted (1)+
+2012-07-30 18:16:09.584425 : nscontrol:entry+
+2012-07-30 18:16:09.584435 : nscontrol:cmd=45, lcl=0x0+
+2012-07-30 18:16:09.584442 : nscontrol:normal exit+
+2012-07-30 18:16:09.584450 : nscontrol:entry+
+2012-07-30 18:16:09.584457 : nscontrol:cmd=1, lcl=0x0+
+2012-07-30 18:16:09.584464 : nscontrol:normal exit+
+2012-07-30 18:16:09.584476 : nioqsm:entry+
+2012-07-30 18:16:09.584485 : nioqsm: Sending break packet (1)...+
+2012-07-30 18:16:09.584493 : nscontrol:entry+
+2012-07-30 18:16:09.584500 : nscontrol:cmd=45, lcl=0x0+
+2012-07-30 18:16:09.584508 : nscontrol:normal exit+
+2012-07-30 18:16:09.584516 : nsdo:entry+
+2012-07-30 18:16:09.584525 : nsdo:cid=0, opcode=67, *bl=1, *what=17, uflgs=0x100, cflgs=0x3+
+2012-07-30 18:16:09.584534 : nsdo:rank=64, nsctxrnk=0+
+2012-07-30 18:16:09.584543 : nsdo:nsctx: state=8, flg=0x400d, mvd=0+
+2012-07-30 18:16:09.584552 : nsdo:gtn=32, gtc=32, ptn=10, ptc=8191+
+2012-07-30 18:16:09.584560 : nsdofls:entry+
+2012-07-30 18:16:09.584569 : nsdofls:DATA flags: 0x0+
+2012-07-30 18:16:09.584577 : nsdofls:normal exit+
+2012-07-30 18:16:09.584587 : nsdo:sending NSPTMK packet+
+2012-07-30 18:16:09.584596 : nspsend:entry+
+2012-07-30 18:16:09.584605 : nspsend:plen=11, type=12+
+2012-07-30 18:16:09.584614 : nttwr:entry+
+2012-07-30 18:16:09.584628 : ntt2err:entry+
+2012-07-30 18:16:09.584638 : ntt2err:soc 564 error - operation=6, ntresnt[0]=530, ntresnt[1]=54, ntresnt[2]=0+
+2012-07-30 18:16:09.584646 : ntt2err:exit+
+2012-07-30 18:16:09.584657 : nttwr:exit+
+2012-07-30 18:16:09.584668 : nspsend:0 bytes to transport+
+2012-07-30 18:16:09.584677 : nspsend:transport write error+
+2012-07-30 18:16:09.584684 : nspsend:error exit+
+2012-07-30 18:16:09.584692 : nsdo:error sending NSPTMK packet+
+2012-07-30 18:16:09.584700 : nserror:entry+
+2012-07-30 18:16:09.584709 : nserror:nsres: id=0, op=67, ns=12571, ns2=12560; nt[0]=530, nt[1]=54, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0+
+2012-07-30 18:16:09.584719 : nsdo:nsctxrnk=0+
+2012-07-30 18:16:09.584726 : nsdo:error exit+
+2012-07-30 18:16:09.584737 : nioqsm:send-break: failed to send break...+
+2012-07-30 18:16:09.584746 : nioqper: error from send-marker+
+2012-07-30 18:16:09.584753 : nioqper: ns main err code: 12571+
+2012-07-30 18:16:09.584761 : nioqper: ns (2) err code: 12560+
+2012-07-30 18:16:09.584769 : nioqper: nt main err code: 530+
+2012-07-30 18:16:09.584776 : nioqper: nt (2) err code: 54+
+2012-07-30 18:16:09.584784 : nioqper: nt OS err code: 0+
+2012-07-30 18:16:09.584792 : nioqsm:exit+
+2012-07-30 18:16:09.584799 : nioqer:entry+
+2012-07-30 18:16:09.584808 : nioqer: incoming err = 12152+
+2012-07-30 18:16:09.584817 : niomapnserror:entry+
+2012-07-30 18:16:09.584824 : niqme:entry+
+2012-07-30 18:16:09.584833 : niqme:reporting NS-12571 error as ORA-12571+
+2012-07-30 18:16:09.584840 : niqme:exit+
+2012-07-30 18:16:09.584847 : niomapnserror:exit+
+2012-07-30 18:16:09.584854 : nioqce:entry+
+2012-07-30 18:16:09.584861 : nioqce:exit+
+2012-07-30 18:16:09.584868 : nioqer: returning err = 12571+
+2012-07-30 18:16:09.584876 : nioqer:exit+
+2012-07-30 18:16:09.584884 : nioqrs:nioqrs: Couldn't send break. returning 12571+
+2012-07-30 18:16:09.584894 : nioqrs:exit+
+2012-07-30 18:16:09.584912 : nioqds:entry+
+2012-07-30 18:16:09.584921 : nioqds: disconnecting...+
+2012-07-30 18:16:09.584933 : nsclose:entry+
+2012-07-30 18:16:09.584945 : nsvntx_dei:entry+
+2012-07-30 18:16:09.584953 : nsvntx_dei:exit+
+2012-07-30 18:16:09.584964 : nstimarmed:entry+
+2012-07-30 18:16:09.584973 : nstimarmed:no timer allocated+
+2012-07-30 18:16:09.584980 : nstimarmed:normal exit+
+2012-07-30 18:16:09.584994 : nttctl:entry+
+2012-07-30 18:16:09.585009 : nttctl:entry+
+2012-07-30 18:16:09.585021 : nsfull_cls:entry+
+2012-07-30 18:16:09.585031 : nsfull_cls:cid=0, opcode=65, *bl=0, *what=0, uflgs=0x0, cflgs=0x0+
+2012-07-30 18:16:09.585040 : nsfull_cls:nsctx: state=8, flg=0x4009, mvd=0+
+2012-07-30 18:16:09.585048 : nsdo:entry+
+2012-07-30 18:16:09.585056 : nsdo:cid=0, opcode=67, *bl=0, *what=1, uflgs=0x0, cflgs=0x1+
+2012-07-30 18:16:09.585065 : nsdo:nsctx: state=8, flg=0x4009, mvd=0+
+2012-07-30 18:16:09.585074 : nsdo:gtn=32, gtc=32, ptn=10, ptc=8191+
+2012-07-30 18:16:09.585082 : nsdo:normal exit+
+2012-07-30 18:16:09.585089 : nsdofls:entry+
+2012-07-30 18:16:09.585097 : nsdofls:DATA flags: 0x40+
+2012-07-30 18:16:09.585105 : nsdofls:sending NSPTDA packet+
+2012-07-30 18:16:09.585113 : nspsend:entry+
+2012-07-30 18:16:09.585120 : nspsend:plen=10, type=6+
+2012-07-30 18:16:09.585128 : nttwr:entry+
+2012-07-30 18:16:09.585140 : ntt2err:entry+
+2012-07-30 18:16:09.585150 : ntt2err:soc 564 error - operation=6, ntresnt[0]=530, ntresnt[1]=54, ntresnt[2]=0+
+2012-07-30 18:16:09.585158 : ntt2err:exit+
+2012-07-30 18:16:09.585165 : nttwr:exit+
+2012-07-30 18:16:09.585173 : nspsend:0 bytes to transport+
+2012-07-30 18:16:09.585181 : nspsend:transport write error+
+2012-07-30 18:16:09.585188 : nspsend:error exit+
+2012-07-30 18:16:09.585196 : nserror:entry+
+2012-07-30 18:16:09.585205 : nserror:nsres: id=0, op=67, ns=12571, ns2=12560; nt[0]=530, nt[1]=54, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0+
+2012-07-30 18:16:09.585215 : nsdofls:exit (-1)+
+2012-07-30 18:16:09.585223 : nsbfr:entry+
+2012-07-30 18:16:09.585230 : nsbaddfl:entry+
+2012-07-30 18:16:09.585239 : nsbaddfl:normal exit+
+2012-07-30 18:16:09.585247 : nsbfr:normal exit+
+2012-07-30 18:16:09.585254 : nsbfr:entry+
+2012-07-30 18:16:09.585261 : nsbaddfl:entry+
+2012-07-30 18:16:09.585268 : nsbaddfl:normal exit+
+2012-07-30 18:16:09.585276 : nsbfr:normal exit+
+2012-07-30 18:16:09.585283 : nsfull_cls:normal exit+
+2012-07-30 18:16:09.585291 : nsiocancel:entry+
+2012-07-30 18:16:09.585303 : nsiofrrg:entry+
+2012-07-30 18:16:09.585313 : nsiofrrg:cur = 5e5f3f8+
+2012-07-30 18:16:09.585321 : nsbfr:entry+
+2012-07-30 18:16:09.585328 : nsbaddfl:entry+
+2012-07-30 18:16:09.585335 : nsbaddfl:normal exit+
+2012-07-30 18:16:09.585342 : nsbfr:normal exit+
+2012-07-30 18:16:09.585350 : nsiofrrg:exit+
+2012-07-30 18:16:09.585358 : nsiocancel:exit+
+2012-07-30 18:16:09.585365 : nsclose:closing transport+
+2012-07-30 18:16:09.585375 : nttdisc:entry+
+2012-07-30 18:16:09.585438 : nttdisc:Closed socket 564+
+2012-07-30 18:16:09.585453 : nttdisc:exit+
+2012-07-30 18:16:09.585463 : nsclose:global context check-out (from slot 0) complete+
+2012-07-30 18:16:09.585471 : nsnadisc:entry+
+2012-07-30 18:16:09.585484 : nadisc:entry+
+2012-07-30 18:16:09.585496 : nacomtm:entry+
+2012-07-30 18:16:09.585506 : nacompd:entry+
+2012-07-30 18:16:09.585513 : nacompd:exit+
+2012-07-30 18:16:09.585521 : nacompd:entry+
+2012-07-30 18:16:09.585527 : nacompd:exit+
+2012-07-30 18:16:09.585535 : nacomtm:exit+
+2012-07-30 18:16:09.585545 : nas_dis:entry+
+2012-07-30 18:16:09.585553 : nas_dis:exit+
+2012-07-30 18:16:09.585562 : nau_dis:entry+
+2012-07-30 18:16:09.585577 : nau_dis:exit+
+2012-07-30 18:16:09.585587 : naeetrm:entry+
+2012-07-30 18:16:09.585596 : naeetrm:exit+
+2012-07-30 18:16:09.585604 : naectrm:entry+
+2012-07-30 18:16:09.585613 : naectrm:exit+
+2012-07-30 18:16:09.585623 : nagbltrm:entry+
+2012-07-30 18:16:09.585632 : nau_gtm:entry+
+2012-07-30 18:16:09.585640 : nau_gtm:exit+
+2012-07-30 18:16:09.585648 : nagbltrm:exit+
+2012-07-30 18:16:09.585657 : nadisc:exit+
+2012-07-30 18:16:09.585665 : nsnadisc:normal exit+
+2012-07-30 18:16:09.585675 : nsvntx_dei:entry+
+2012-07-30 18:16:09.585682 : nsvntx_dei:exit+
+2012-07-30 18:16:09.585694 : nsopenfree_nsntx:nlhthdel from mplx_ht_nsgbu, ctx=5e5e0e0 nsntx=5e5e6c0+
+2012-07-30 18:16:09.585703 : nsiocancel:entry+
+2012-07-30 18:16:09.585710 : nsiofrrg:entry+
+2012-07-30 18:16:09.585718 : nsiofrrg:exit+
+2012-07-30 18:16:09.585725 : nsiocancel:exit+
+2012-07-30 18:16:09.585732 : nsmfr:entry+
+2012-07-30 18:16:09.585741 : nsmfr:2944 bytes at 0x5e5e6c0+
+2012-07-30 18:16:09.585748 : nsmfr:normal exit+
+2012-07-30 18:16:09.585755 : nsmfr:entry+
+2012-07-30 18:16:09.585763 : nsmfr:240 bytes at 0x5f2a610+
+2012-07-30 18:16:09.585771 : nsmfr:normal exit+
+2012-07-30 18:16:09.585778 : nsmfr:entry+
+2012-07-30 18:16:09.585785 : nsmfr:280 bytes at 0x63c010+
+2012-07-30 18:16:09.585792 : nsmfr:normal exit+
+2012-07-30 18:16:09.585803 : nladtrm:entry+
+2012-07-30 18:16:09.585820 : nladtrm:exit+
+2012-07-30 18:16:09.585828 : nsmfr:entry+
+2012-07-30 18:16:09.585836 : nsmfr:1496 bytes at 0x5e5e0e0+
+2012-07-30 18:16:09.585844 : nsmfr:normal exit+
+2012-07-30 18:16:09.585851 : nsclose:normal exit+
+2012-07-30 18:16:09.585859 : nioqds:exit+
+2012-07-30 18:16:09.585868 : nsbfree:entry+
+2012-07-30 18:16:09.585876 : nsbgetfl:entry+
+2012-07-30 18:16:09.585884 : nsbgetfl:normal exit+
+2012-07-30 18:16:09.585894 : nsbaddfl:entry+
+2012-07-30 18:16:09.585901 : nsbaddfl:normal exit+
+2012-07-30 18:16:09.585909 : nsbfree:normal exit+
+2012-07-30 18:16:09.585916 : nsbfree:entry+
+2012-07-30 18:16:09.585923 : nsbgetfl:entry+
+2012-07-30 18:16:09.585930 : nsbgetfl:normal exit+
+2012-07-30 18:16:09.585938 : nsbaddfl:entry+
+2012-07-30 18:16:09.585945 : nsbaddfl:normal exit+
+2012-07-30 18:16:09.585952 : nsbfree:normal exit+
+2012-07-30 18:16:09.585961 : nigtrm:Count in the NI global area is now 2+
+2012-07-30 18:16:09.585974 : nsbfrfl:entry+
+2012-07-30 18:16:09.585982 : nsbrfr:entry+
+2012-07-30 18:16:09.585991 : nsbrfr:nsbfs at 0x5f26470, data at 0x5f26520.+
+2012-07-30 18:16:09.585999 : nsbrfr:normal exit+
+2012-07-30 18:16:09.586006 : nsbrfr:entry+
+2012-07-30 18:16:09.586015 : nsbrfr:nsbfs at 0x5f28540, data at 0x5f285f0.+
+2012-07-30 18:16:09.586025 : nsbrfr:normal exit+
+2012-07-30 18:16:09.586033 : nsbrfr:entry+
+2012-07-30 18:16:09.586040 : nsbrfr:nsbfs at 0x5e5f480, data at 0x5e5f530.+
+2012-07-30 18:16:09.586048 : nsbrfr:normal exit+
+2012-07-30 18:16:09.586055 : nsbrfr:entry+
+2012-07-30 18:16:09.586063 : nsbrfr:nsbfs at 0x5f2a610, data at 0x5f2a9f0.+
+2012-07-30 18:16:09.586073 : nsbrfr:normal exit+
+2012-07-30 18:16:09.586082 : nsbrfr:entry+
+2012-07-30 18:16:09.586090 : nsbrfr:nsbfs at 0x62c7d0, data at 0x5f2ca10.+
+2012-07-30 18:16:09.586098 : nsbrfr:normal exit+
+2012-07-30 18:16:09.586106 : nsbfrfl:normal exit+
+2012-07-30 18:16:09.586153 : nigtrm:Count in the NL global area is now 3+ -
ORA-00604: error occurred at recursive SQL level 1 ORA-01003: no statement
Hi ,
we pass Query to ref cursor using with clause and it works fine on oracle Sql but raise an error when called from
ADO.net
for example
create or replace package body abc_details
as
proedure initial (p_refcursor out sys_refcursor)
is
begin
v_sql='with a as (select ..
, b as (select * from table(emppkg.empdetails))
open p_refcursor for v_sql;
end;
with oracle 10g it works fine on Sql prompt and fetches the results but when called from ado.net it
intermitantly fetches and error "ORA-00604: error occurred at recursive SQL level 1 ORA-01003: no statement "
Please suggest
Thanks in advance.wild guess here,
but emppkg.empdetails type look's like a pl/sql type,
while it should be a sql type.
Amiel -
제품 : 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 dataThis 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 -
Process wait SQL*Net message from dblink /SQL*Net message from client
Hi There,
We have an ETL process that we kindly need your help with. The process been running since Sun, where it transfers the data from one server (via remote query). The process was running ok till last night where it appeared
to have stopped working and/or the session is just idling doing nothing.
Here are some tests that we did to figure out what's going on:
1. when looking at the session IO, we noticed that it's not changing:
etl_user@datap> select sess_io.sid,
2 sess_io.block_gets,
3 sess_io.consistent_gets,
4 sess_io.physical_reads,
5 sess_io.block_changes,
6 sess_io.consistent_changes
7 from v$sess_io sess_io, v$session sesion
8 where sesion.sid = sess_io.sid
9 and sesion.username is not null
10 and sess_io.sid=301
11 order by 1;
logical physical
SID BLOCK_GETS reads reads BLOCK_CHANGES CONSISTENT_CHANGES
301 388131317 97721268 26687579 223052804 161334
Elapsed: 00:00:00.012. Check there is nothing blocking the session
etl_user@datap> select * from v$lock where sid=301;
ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
684703F0 6847041C 301 DX 35 0 1 0 45237 0
684714C4 684714F0 301 AE 199675 0 4 0 260148 0
619651EC 6196521C 301 TM 52733 0 3 0 45241 0
67F86ACC 67F86B0C 301 TX 458763 52730 6 0 45241 03. Check if the session is still valid:
etl_user@datap> select status from v$session where sid=301;
STATUS
ACTIVE4. Check if there is anything in long ops that has not completed:
etl_user@datap> SELECT SID, SERIAL#, opname, SOFAR, TOTALWORK,
2 ROUND(SOFAR/TOTALWORK*100,2) COMPLETE, TIME_REMAINING/60
3 FROM V$SESSION_LONGOPS
4 WHERE
5 TOTALWORK != 0
6 AND SOFAR != TOTALWORK
7 order by 1;
no rows selected
Elapsed: 00:00:00.005. Check if there is anything in long ops for the session:
etl_user@datap> r
1* select SID,SOFAR,TOTALWORK,START_TIME,LAST_UPDATE_TIME,TIME_REMAINING,MESSAGE from V$SESSION_LONGOPS where sid=301
SID SOFAR TOTALWORK START_TIM LAST_UPDA TIME_REMAINING MESSAGE
301 0 0 22-JUL-12 22-JUL-12 Gather Table's Index Statistics: Table address_etl : 0 out of 0 Indexes done
Elapsed: 00:00:00.00This is a bit odd!! This particular step have actually completed successfully on the 22nd of July, and we don't know why it's still showing in long opps!? any ideas?
6. Looking at the sql and what's it actually doing:
etl_user@datap> select a.sid, a.value session_cpu, c.physical_reads,
2 c.consistent_gets,d.event,
3 d.seconds_in_wait
4 from v$sesstat a,v$statname b, v$sess_io c, v$session_wait d
5 where a.sid= &p_sid_number
6 and b.name = 'CPU used by this session'
7 and a.statistic# = b.statistic#
8 and a.sid=c.sid
9 and a.sid=d.sid;
Enter value for p_sid_number: 301
old 5: where a.sid= &p_sid_number
new 5: where a.sid= 301
CPU physical logical seconds
SID used reads reads EVENT waiting
301 1966595 26687579 97721268 SQL*Net message from dblink 45792
Elapsed: 00:00:00.037. We looked at the remote DB where the data resides on, and we noticed that the remote session was also waiting on the db link:
SYS@destp> select a.sid, a.value session_cpu, c.physical_reads,
2 c.consistent_gets,d.event,
3 d.seconds_in_wait
4 from v$sesstat a,v$statname b, v$sess_io c, v$session_wait d
5 where a.sid= &p_sid_number
6 and b.name = 'CPU used by this session'
7 and a.statistic# = b.statistic#
8 and a.sid=c.sid
9 and a.sid=d.sid;
Enter value for p_sid_number: 388
old 5: where a.sid= &p_sid_number
new 5: where a.sid= 390
SID SESSION_CPU PHYSICAL_READS CONSISTENT_GETS EVENT SECONDS_IN_WAIT
390 136 0 7605 SQL*Net message from client 46101
SYS@destp>We have had an issue in the past where the connection was being dropped by the network when the process runs for few days, hence we have added the following to the sqlnet.ora and listener.ora files:
sqlnet.ora:
SQLNET.EXPIRE_TIME = 1
SQLNET.INBOUND_CONNECT_TIMEOUT = 6000
listener.ora:
INBOUND_CONNECT_TIMEOUT_LISTENER = 6000What else can we do and/or further investigate to work out the root cause of the problem, and may be help resolve this. We don't want to just stop and start the process again as it took few days already. We have
had a chat to the infrastructure team and they've assured us that there have been no network outages.
Also, the alert logs for both instances (local and remote) shows no errors what so ever!
Your input is highly appreciated.
Thanks
Edited by: rsar001 on Jul 25, 2012 10:22 AMRan the query on both local/remote db, and no rows returned:
etl_user@datap> SELECT DECODE(request,0,'Holder: ','Waiter: ')||vl.sid sess, status,
2 id1, id2, lmode, request, vl.type
3 FROM V$LOCK vl, v$session vs
4 WHERE (id1, id2, vl.type) IN
5 (SELECT id1, id2, type FROM V$LOCK WHERE request>0)
6 and vl.sid = vs.sid
7 ORDER BY id1, request
8 /
no rows selected
Elapsed: 00:00:00.21 -
CLIENT SIDE TRACING IN SQL*NET V2
제품 : SQL*NET
작성날짜 : 1997-10-10
Client Tracing
~~~~~~~~~~~~~~
1) Set the environment variable TNS_ADMIN to the directory where the
tnsnames.ora and listener.ora files exist.
The default location is $ORACLE_HOME/network/admin. Set $TNS_ADMIN
to this if it is not set. This ENSURES you know which files you are
using.
2) Start the listener: lsnrctl
> set password <password>
> start
Note any errors. If you do not have a password set then ignore the
set password command.
3) If the listener started, start the database.
4) Create a file in $HOME called .sqlnet.ora and add the lines:
trace_level_client= 16
trace_file_client=client
trace_directory_client= /tmp (or similar)
trace_unique_client=true
5) Try to connect from SQL*Plus thus:
sqlplus username/password@alias
or
sqlplus username/password
substituting a suitable alias.
6) If you get an error we may need to see the client trace file
/tmp/client_<PID>.trc where <PID> is the process ID of the
client process (*1).
This will be quite large so it is best to FAX or EMAIL it.
*1 Note: On earlier versions of SQL*Net the filename may NOT have
the process ID appended to it.
Listener Tracing:
~~~~~~~~~~~~~~~~~
1) Edit your $TNS_ADMIN/listener.ora file and add the lines:
TRACE_LEVEL_LISTENER = 16
TRACE_DIRECTORY_LISTENER = /tmp
TRACE_FILE_LISTENER = "listener"
2) Stop and restart the listener:
lsnrctl stop
lsnrctl start
Output should go to /tmp/listener.trcBy default in 11g traces will go to the ADR which is a new feature.
To disable that feature add the following line to your sqlnet.ora
diag_adr_enabled =OFF
[oops] saw that this is over a month old this post - sorry about that!
hope that helps
John
Edited by: Johnsung on Sep 27, 2012 3:59 PM -
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, MattThis 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
Maybe you are looking for
-
For some reason my adobe flash player will not load or reinstall. I keep getting a screen from adobe that says quit or intall but there is no button for the install to push. Only the quit is useable. I want to be able to view video but can't. Does th
-
First: When I copy raw files as DNG files, the right hand pane shows where the copies will be placed. (I use Windows 7) I do not have much of a choice, and cannot set a default. The default choice is "My Pictures" on the C: drive. I have an Solid
-
I have using the PB since 2 months , I have download an app from application afterwards my PB was not worked, I had to taken the photos in it to my PC by USB cable , and then I used security wipe and then restarted . But after initializing it had to
-
Hi , Will be thankful if anyone could help me out in the following issue: Created the Implementations Options - Cross charge enabled, Provider and Receiver information provide. Setup > Costing> Provider and receiver control enabled - Receiver informa
-
SQL Loader: multiple infiles, change constant
Hi, I looked on the internet, in my SQL Loader book, and on these forums and can't find an answer to a question I have. I have multiple infiles that are being loaded to 1 table. That's easy. The problem is that with each different infile, I have a co