Tengo una aplicación implementada en Grails marco utilizando subyacente de Hibernación. Después de que se ejecuta durante un tiempo, recibí un Oracle DB error y lo resolvió por la reconstrucción del índice infractora. Me pregunto si alguien puede proponer la posible causa(s) y las formas de evitar que suceda.

Causada por:
org.springframework.jdbc.UncategorizedSQLException:

De hibernación de la operación: no se Pudo ejecutar JDBC de actualización por lotes;
uncategorized SQLException para SQL [actualización RSS_ITEM conjunto guid=?,
pubdate=?, link=?, rss_source_id=?, title=?, descripción=?,
rating_raw=?, rating_tuned=?, date_created=?, date_locked=? donde
RSS_ITEM_ID=?]; SQL estado [99999]; código de error [29861]; ORA-29861:
dominio índice está marcado CARGA/ERROR/INUTILIZABLE

; excepciones anidadas es java.sql.BatchUpdateException:
ORA-29861:
dominio índice está marcado CARGA/ERROR/INUTILIZABLE

InformationsquelleAutor hko19 | 2010-04-06

3 Comentarios

  1. 27

    Para localizar roto índice de uso:

    select index_name,index_type,status,domidx_status,domidx_opstatus from user_indexes where index_type like '%DOMAIN%' and (domidx_status <> 'VALID' or domidx_opstatus <> 'VALID');

    Para reconstruir el índice de uso:

    alter index INDEX_NAME rebuild;
    • Lo que si estoy recibiendo ninguna de las filas de la consulta anterior, pero aún se está produciendo este error ?
    • Creo, puede intentar eliminar el índice y crearla de nuevo.
    • Volver a generar el índice no estaba funcionando para mí, pero en Oracle SQL Developer navegar con el índice y haciendo clic en la pestaña SQL me mostró cómo crear el índice. Caer y, a continuación, crear de nuevo de la misma exacta de código sql trabajado.
  2. 14

    Dominio índices son un tipo especial de índice. Es posible construir nuestro propio uso de la OCI, pero las probabilidades son que usted está utilizando uno de los tipos de índices ofrecidos por Oracle Texto. Digo esto como su tabla parece incluir texto libre de columnas.

    El más comúnmente utilizado el índice de Texto es el CTXSYS.CONTEXTO de tipo de índice. El punto acerca de este tipo de índice es que no se mantiene una transaccional, con el fin de minimizar el esfuerzo implicado en la indización de documentos de gran tamaño. Lo que sucede es que un proceso en segundo plano, como una base de datos de trabajo, se inicia el índice de sincronización en una base regular. El índice se puede utilizar mientras se está sincronizando. Si la resincronización falla por cualquier razón, entonces usted tendrá que quitar y volver a crear el índice.

    Es una ocurrencia regular? Si es así puede que necesite volver a evaluar su aplicación. Tal vez otro tipo de índice (como CTXSYS.CTXCAT) puede ser más apropiado. Una cosa que me llama la atención acerca del mensaje de error es que la instrucción UPDATE toca un montón de columnas, incluyendo lo que parece ser la clave principal. Esto me hace pensar que tienen una sola genérico actualización de la declaración que establece cada columna, independientemente de si se ha cambiado realmente. Esta es una mala práctica con las normales de los índices; va a matar a su aplicación, si usted está utilizando los índices de texto.

  3. 4

    http://ora-29861.ora-code.com/

    Causa: se ha realizado Un intento de acceder a un dominio índice que se
    construido o está marcado no por un
    incorrecta DDL o marcada inutilizable
    por un DDL operación.

    Acción: Esperar si el índice especificado está marcada la CARGA de la Gota
    índice especificado si se marca ERROR
    Quitar o volver a generar el índice especificado si
    está marcada INUTILIZABLE.

    Que se espera debe ser lo suficientemente contexto. Se puede averiguar el problema de que?

Dejar respuesta

Please enter your comment!
Please enter your name here