MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 02/03/09, 15:16:32
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Problema en INSERT a BD

Hola gente ... les cuento mi caso, tengo un programa el cual muchos usuarios lo usan en dialogo, dentro del programa se realiza constantemente un INSERT a una tabla de BD y se detecto el caso de que cuando un usuario corre el programa, el programa se queda justo en ese INSERT, por ahi tbm me comentaron que es por la constante actualizacion de la tabla, alguien sabe de algun metodo o alguna forma de poder levantar ese incoveniente??, gracias a todos d antemano por su ayuda
__________________
David Carballido Córdova
Responder Con Cita
  #2  
Viejo 02/03/09, 15:47:03
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Aver si no he entendido mal el problema es por el acceso concurrente a insertar en una tabla

Lo primero que no me ha quedado claro es si el programa se queda colgado, tarda mucho o bien si da DUMP

Si da dump lo mas seguro es que en el acceso concurrente un usuario este intentando insertar un registro que ya existe, eso podria solucionarse o bien cogiendo la excepcion o bien utilizando MODIFY en lugar de INSERT

Si el problema no es ese lo primero que intentaria es en lugar de actualizar en "online" hacer el insert en una funcion que llamas con UPDATE TASK

Otra opcion seria crear un objeto de bloqueo para la tabla y jugar con el enqueue y dequeue

Si pudieras especificar un poquito mas el problema quiza te podamos ayudar
Responder Con Cita
  #3  
Viejo 02/03/09, 17:50:26
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Claro, el problema es q dentro existe una sentencia

INSERT ztabla FROM TABLE itab.

Cuando comienzo a debuggear y me quedo en ese paso y quiero pasar al siguiente no lo hace, se queda pensando justo en esa sentencia, no hay DUMP, es necesario q "n" usuarios lo usen en dialogo, no se puede bloquear la tabla =(, es por el tema de saturacion del buffer
__________________
David Carballido Córdova
Responder Con Cita
  #4  
Viejo 02/03/09, 18:26:21
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Vale ya entiendo

Creo que lo que esta pasando es que no tiene ninguna ventana de actualizacion libre y por eso se queda esperando, podrias hablar con el administrador de sistema para que aumentara el numero aunque eso no parece una solucion sino un "parche"

Otro camino seria que de forma transparente al usuario "optimizaras" los accesos a tabla

Por ejemplo asi a grandes rasgos podrias crear un area de memoria compartida donde los usuarios irian metiendo los registros y cada cierto tiempo leer los datos de esa area de memoria y volcarlos en la BBDD

El problema seria que los datos no se actualizarian en la tabla inmediatamente y eso quiza no te valdria

De todas formas me parece muy extraño que por acceso concurrente se quede pillada la tabla, que valores tienes rellenos en las opciones tecnicas de la tabla?¿
Responder Con Cita
  #5  
Viejo 02/03/09, 18:38:37
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Ahi esta la info tecnica
Imágenes Adjuntas
Tipo de Archivo: jpg tabla.jpg (53.9 KB, 35 visitas)
__________________
David Carballido Córdova
Responder Con Cita
  #6  
Viejo 03/03/09, 10:04:05
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Pues yo probaria a que en lugar de ser de tipo USER ponerla de tipo APPL0, para no tener sustos indeseados con la tabla hazte una copia y haz los cambios en tu tabla de copia pero puede ser que los errores vengan por el tipo de tabla

Porque lo que esta claro es que contra las tablas standard hay varios usuarios actualizando a la vez y no hay problemas

Postea los resultados aver si lo podemos solucionar
Responder Con Cita
  #7  
Viejo 03/03/09, 13:46:11
francesc francesc is offline
Member
 
Fecha de Ingreso: mar 2006
Localización: Barcelona
Mensajes: 58
A mi se me ocurren 2 posibles soluciones:
1.- Después de insert hacer un 'commit work and wait'.
2.- Realizar el insert dentro de un perform ..... on commit.
Responder Con Cita
  #8  
Viejo 03/03/09, 14:23:40
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Un poquito mas claro, busco una manera en la que "n" usuarios puedan actualizar una misma tabla Z, me intereso mucho tu idea Ballan, toy viendo tbm la manera de que esos usuarios puedan compartir un area de memoria en comun, la pregunta es si se puede realizar eso via ABAP, xq tbm existe el caso que dentro de una empresa muchos usuarios dedicados a un area actualizen un mismo objeto, si hay ideas por ahi me serviran de mucho, gracias por su ayuda
__________________
David Carballido Córdova
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 10:31:10.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web