Archive for August, 2007

ORA-00604 se ha producido un error a nivel 1 de SQL recursivo. ORA-01655 con GeneXus y Oracle

Tuesday, August 28th, 2007


ORA-00604: se ha producido un error a nivel 1 de SQL recursivo.
ORA-01655: no se ha podido ampliar el cluster SYS.c_FILE#_BLOCK# con 8 en el tablespace SYSTEM

Testeando una aplicación con .NET y Oracle 10g Express Edition al crear la base de datos con GeneXus, la misma falló indicando el error mencionado.

La versión de Oracle 10g Express es limitada en algunos aspectos.
Por default en su instalación define un tablespace system, undo, otro de usuarios y no posee una administración gráfica de estos objetos.
Es decir no existe posibilidad de manipular, alterar tamaño etc, de estos objetos de forma gráfica y hay que ejecutar comandos en línea.

El error se debía a que el tablespace de system es definido por default con 600 mb y (por apresurado) al crear el usuario/esquema con el cual corrí la creación de las tablas no lo asocié con otro tablespace que no sea system, por ejemplo “users” y llené el datafile de system.

La solución sería borrar el usuario creado con opción cascada y así borraría todas las tablas creadas hasta el momento y crear nuevamente el usuario asociándolo al tablespace correcto.

La otra alternativa, más rápida, sería agrandar el tablespace system con el siguiente comando de línea.

ALTER DATABASE DATAFILE ‘D:\ORACLEXE\ORADATA\XE\SYSTEM.DBF’ RESIZE 1000M;

Pero como comenté antes es lo menos recomendable, pero también funciona si es algo rápido y no definitivo que estamos probando simplemente.

Si te interesa saber, las limitantes para usar Oracle 10g Express Edition son:

1 GB de memoria para el servidor de base de datos
1 procesador
Una instancia por equipo
Espacio disponible para datos e índices 4GB.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

error CS0117: ‘com.genexus.ui.GXColumna’ does not contain a definition for ‘refreshOnChange’ con GeneXus e .NET

Sunday, August 26th, 2007

Me encontré con este error migrando una aplicación VB para .NET Win.
El problema se debía a que un work panel tenía la propiedad “when to refresh” que estaba seteada para “while variables are being modified”, y dicho workpanel no tenía ninguna condición de filtro asociada a ninguna variable. Es decir evidentemente en alguna época tuvo una condición de filtro que cuando se cambiaba el valor hacía el refresh en la grilla y luego se quitó, quedando la propiedad seteada con un valor incorrecto, ya que no era necesaria.
Esto funcionaba sin inconvenientes en Visual Basic, pero a .NET no le gustaba.

Solución: setear por default la propiedad “when to refresh” para “when a grid receives focus”.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

ORA-03113 end of file on communication file en Oracle con comando Analyze

Monday, August 13th, 2007

El otro día comentaba un error de Oracle ORA-03113 el cual sinceramente, es uno de los más desagradables que puede dar Oracle, porque ciertamente, antes de ocurrir este error ocurrió otro previo.
En el post anterior refería a un renombrado de tablas y pérdida de estadísticas.
Bien, la solución era Analizar las tablas involucradas nuevamente.
Como prevención comenzamos a utilizar esta estrategia, pero nos encontramos con el mismo error, pero ahora desde el Sqlplus.
El problema era que algunas de las tablas que queríamos Analizar, tenían dentro de las columnas claves, “caracteres extraños” del tipo chr(10) chr(13), etc.
Para descubrir esto simplemente bastó hacer un group by por cada campo de la tabla y en algunos casos ya obtuvimos el ORA-03113

Ejemplo:

Tabla1
Col1 char(30)
Col2 char(30)
Col3 char(30)

Col1
A
A
B

Col2
A||B
A||C
AB

(Los || simulan los caracteres especiales que no los puedo reproducir en el post)

Col3
A
B
C

Al realizar un select Col1,count(*) from Tabla1 group by Col1;
El resultado es correcto

Idem para Col3

Pero al realizar la consulta para Col2, luego de no demorar mucho, obtenemos el ORA-03113

Por fortuna, estábamos a punto de instalar el patch 4547809 para Oracle 9.2.0.8 lo cual fue realizado, y para nuestra sorpresa… los analize comenzaron a funcionar perfectamente.

Entonces recomiendo actualizar este patch para quienes no lo hayan hecho y estén con Oracle 9 ya que además de este, soluciona un paquete grande de bugs.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

ORA-03113 end of file on communication file con GeneXus y Oracle

Friday, August 10th, 2007

En algunos casos tenemos algunos reportes pdf o excel que van sobre un DataView GeneXus que apunta a Views complejas en Oracle, para ganar performance.
Hace algunos días renombramos algunas tablas que participan en algunas de esas views y nos encontramos con un error ORA-03113 ejecutando la aplicación.
Lo interesante es que pasaba en un servidor y en otro no.
La diferencia estaba en la capacidad de uno y otro, procesador, memoria, etc, en el que no daba problema, eran mayores que en el servidor que retornaba el error.
Luego de buscar que había cambiado de una fecha para acá, encontramos que podría ser el “renombrado de tablas” la causa del problema.
Solución corrimos las estadísticas nuevamente para las tablas renombradas y todo volvió a la normalidad.

Ejemplo:

analyze table nuestratabla compute statistics;

Existen distintas variantes del comando analyze pero con la más simple de todas, ya soluciona el problema.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com