Understanding and Diagnosing ORA-00600 [12333] / ORA-3137 [12333] Errors

東北胖子發表於2016-05-22

In this Document

  Purpose
  Troubleshooting Steps
  References

APPLIES TO:

Oracle Database - Enterprise Edition - Version 8.1.7.4 and later
Information in this document applies to any platform.

***Checked for relevance on 16-Jun-2014***

PURPOSE

This article will discuss the common causes and troubleshooting tips for ORA-00600 [12333]/ORA-3137 error. ORA-3137[12333] in 11g is the same as ORA-600 [12333] and the same diagnostic steps apply.

ORA-00600 [12333] can occur with three additional numeric values when a request is being received from a network packet and the request code in the packet is not recognized.

TROUBLESHOOTING STEPS

For any ONE-TIME occurrence we can safely ignore the error. This error does not cause to any potential data corruption or any data loss. Check Note 35928.1 for known issues and two basic usages of OERI(12333):

  • Usage with 3 additional numeric values 
  • Usage with 4 additional values ... new since 8.0.X

 In case the errors are seen consistently and no known issues matches to your issue then do the following

Common Causes & Solutions:

1.  Check the client software version. An incompatible client software is a common cause of this error. Upgrade the client software to current version (i.e. match the server version).

The following note explains the supported combinations of clients for a particular RDBMS Server release. 
Note 207303.1 Client / Server / Interoperability Support Between Different Oracle Versions

Similar issues are reported when the client installation is faulty.

2. An incompatible NLS Client setting can also trigger such internal errors. Check the NLS settings as explained in the following note. 
Note 77442.1 ORA_NLS (ORA_NLS32, ORA_NLS33, ORA_NLS10) Environment Variables explained

3. There are a number of bugs associated with the use of bind peeking. Turn off bind peeking as follows:
alter system set "_optim_peek_user_binds"=false;

4. Please review your listener.log and SQLNET log for network errors at the time of the ORA-600[12333] errors. Correct these errors.

Try to reproduce the issue from a different client machine, preferably from server. This will rule out the possibility of bad network. If the execution fails from a particular client then it could be due to the bad network from that client to server. The error ORA-600[12333] could occur when a request is being received from a network packet and the request code in the packet is not recognized.

5. Ask your sysadmin to correct any network delays. A slow network can lead to this error.

6. If the error still continues , then do the following to understand from where the error is generated.

  •  We need to understand which session/program/application that triggers this issue. This shall be found from the trace files under the session state object '(session)'. Sometimes the ORA-00600 [12333] trace files will not capture the session information.  In such cases we can check with the end users about any issues around the time-frame of this internal error. 
  • There is a HIGH chance for application run-time exception to lead to this ORA-00600 [12333]. Due to the unhandled exceptions there is a chance for incomplete information passed to the server hence the internal errors are raised. In such cases, handling those exceptions (or) addressing those errors on the application code will resolve the issue. 
  •  In few cases, the problem application will work for a while before it terminates with the error. This could be due to the TIMEOUT settings at the Application Server (or) Forms Server.,etc. To resolve this either tune the failing application to complete within the TIMEOUT value (or) reset the TIMEOUT to an optimal value.
  • There could be more possibilities here; in simple words the approach should be from application side, which would help us to understand the other issues that triggered this network interruption (ORA-00600 [12333]).
  • Check the 'Current SQL Statement' section of the incident trace files. Does each trace file point to the same SQL statement. If so, there may be a problem with the code.

 

7. If you notice JDBC Client as the failing program under Session state object, please check the following

  • That you use latest compatible version of JDBC Drivers in your application side. 
    Note 430839.1 to verify the version of JDBC Drivers and for Installation steps. 
  •  Monitor and try to handle correctly the timeouts from the application 
  • Check that idle or died programs/processes are not just killed at the client side but using a good cleaning procedure. 
  • Increase queue sizes / buffers and similar from the jdbc side.

Further diagnostics regarding JDBC Application driver can be found: 
Note 1361107.1 Suggestions For Troubleshooting ORA-3137 [12333] Errors Encountered When Using Oracle JDBC Driver 

8.  For database version 11.2.0.4 and above, you may encounter this error during a SQL*Net TCP/IP transport.

 

To determine if you encountered this bug, check your alert log for 

ORA-12592 or ORA-3106 
and check your incident trace file for 
'SQL*Net TCP/IP' or 'TCP/IP'
If any of these exist, proceed with the solution below:

 

1.
The fix for 18841764 will be included in 12.2 database release. This was not available at the time of writing.
2.
Download and apply  if it is available for your platform. 
3.
Workaround the error by setting 
sqlnet.send_timeout to any value except 0 on the server and client. In a previous incident setting it to 600 resolved the issue.

 

9. In-case if all the above suggestions does not help to identify the cause, and the ORA-00600 [12333] persists we may need to enable the networking tracings from the problem client and need to review the network traces to understand where the problem occurs. See Note 219968.1 Title: SQL*Net, Net8, Oracle Net Services - Tracing and Logging at a Glance. Check the network logs for errors and fix them with the network administrator.

E.g.:

ifconfig -a
=======
eth0 Link encap:Ethernet HWaddr ...
...

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7855996 errors:288 dropped:291 overruns:0 frame:0
TX packets:9874201 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1325085201 (1263.6 Mb) TX bytes:1313633137 (1252.7 Mb)
Interrupt:9 Base address:0x1080 

In this case the network administrator should investigate the RX packets errors listed above (RX packets:7855996 errors:288 dropped:291).

 

 


REFERENCES

NOTE:752297.1 - ORA-03137: TTC Protocol Internal Error : [12333] Using JDBC Driver

NOTE:1361107.1 - Troubleshooting ORA-3137 [12333] Errors Encountered When Using Oracle JDBC Driver
NOTE:207303.1 - Client / Server Interoperability Support Matrix for Different Oracle Versions
NOTE:35928.1 - ORA-600 [12333] "Fatal Two-Task Protocol Violation"
NOTE:77442.1 - ORA_NLS (ORA_NLS32, ORA_NLS33, ORA_NLS10) Environment Variables explained.
NOTE:430839.1 - Providing a JDBC Testcase to Oracle Support
NOTE:219968.1 - SQL*Net & Oracle Net Services - Tracing and Logging at a Glance
NOTE:1927582.1 - ORA-3137 [12333] from JDE client

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2317695/viewspace-2105016/,如需轉載,請註明出處,否則將追究法律責任。

相關文章