Automic Workload Automation

  • 1.  ORA-00600: internal error code

    Posted Feb 22, 2017 03:13 PM

    You Asked

    Error message U0003590 UCUDB - DB error: 'OCIStmtExecute', 'ERROR ', '', 'ORA-00600: internal error code, arguments: [kdlwdb:objdchk_kcbnew_3], [0], [22722], [1], [4], [8], [], [], [], [], [], []' occur.

    That looks strange to me ...

    and we said ...

    Definition of an ORA-00600 error from the Oracle documentation:

    Error: ORA 00600
    Text: internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s]

    Cause: This is the generic internal error number for Oracle program exceptions. This indicates that a process has encountered a low-level, unexpected condition

    Action: Report this error to Oracle Support Services

    Note: The cause of this message may manifest itself as different errors at different times. Be aware of the history of errors that occurred before this internal error.

    Solution:

    An error handling has been fixed in Automation Engine 11.1.5, 11.2.3 and higher, where ORA-00600 (internal error code) has not been recognized by the automation engine (AE) as database error which led to a forced trace. Now ORA-00600 will be checked and transaction will be repeated after this oracle error.

    Workaround:

    For Automic Engine (AE) versions lower that versions above check out the section below:

    To trigger an exception handling for ORA-00600 you need to modify the file UC.MSL in the Automation Engine folder:

    1.       open the file with an editor like notepad++
    2.       search for the number 3555
    3.       go to line 1318
    4.       fill '600' after the number 470
    5.       do the same in line 1319 and 1320
    6.       save & close the file
    7.       restart all CP's / WP's
    8.       monitor the system

    After this change a process which ORA-00600 will be checked and transaction will be repeated after this oracle error.

     Extract of UC.MSL from our AE test system:

    line 1318: 0003555DI8,376,470,600,1012,1013,1033,1034,1041,1089,1460,1461,1502,1536,1632,1654,3114,3113,3130,3135,8001,8102,12154,12571,24324,25402,25405,25408,25425,30036

    line 1319: 0003555EI8,376,470,600,1012,1013,1033,1034,1041,1089,1460,1461,1502,1536,1632,1654,3114,3113,3130,3135,8001,8102,12154,12571,24324,25402,25405,25408,25425,30036

    line 1320: 0003555FI8,376,470,600,1012,1013,1033,1034,1041,1089,1460,1461,1502,1536,1632,1654,3114,3113,3130,3135,8001,8102,12154,12571,24324,25402,25405,25408,25425,30036



  • 2.  ORA-00600: internal error code

    Posted Feb 22, 2017 03:30 PM
    A guide to assessing and resolving ORA-600

    If you’re an Oracle DBA, you’re likely to have come across an error message in your Oracle Database alert.log files prefixed by ORA-600 such as

    Thu Jan 20 13:35:52 2011
    Errors in file /DATA/oracle/admin/
    prod/udump/prod_ora_2131.trc:
    ORA-00600: internal error code,
    arguments: [ktfbtgex-7], [1015817],
    [1024], [1015816], [], [], [], []

    Because these internal error messages include no attached explanation in the way that external error messages do (for example, “ORA-00942: table or view does not exist”), it is difficult to assess the seriousness of the error and whether it is cause for concern.

    This column explains what you can do to assess some ORA-600 errors and identify solutions.

    ORA-600 is a catchall message that indicates an error internal to the database code. The key point to note about an ORA-600 error is that it is signaled when a code check fails within the database. At points throughout the code, Oracle Database performs checks to confirm that the information being used in internal processing is healthy, that the variables being used are within a valid range, that changes are being made to a consistent structure, and that a change won’t put a structure into an unstable state. If a check fails, Oracle Database signals an ORA-600 error and, if necessary, terminates the operation to protect the health of the database.

    The first argument to the ORA-600 error message indicates the location in the code where the check is performed; in the example above, that is ktfbtgex-7 (which indicates that the error occurred at a particular point during tablespace handling). The subsequent arguments have different meanings, depending on the particular check.