Nuestro cliente CocaCola Guatemala tiene un planillero en cada departamento (15 mas o menos), normalmente pagan planilla el mismo dia, por ende generan planillas el mismo dia, al hacer esto los procesos se quedan colgado, se tiene que bajar y subir el servicio de generacion de planilla y ahi ya les permite generar a todos, existe alguna solucion para esto?

asked 11 Oct '13, 14:42

FerdyB's gravatar image

FerdyB
955166176178
accept rate: 48%


Lo que ocurre es que las generaciones en paralelo provocan "dead lock" a nivel de base de datos.

El GenPlaWinService tiene una configuración que le indica cuantas planillas puede ejecutar en paralelo. Ahora bien esta configuración es un semáforo que serializa la ejecución de la parte de base de datos, es decir la inicialización y la finalización. La ejecución de fórmulas se hace en paralelo en memoria en diferentes threads para cada planilla que se envía a ejecutar.

Sin embargo, esto no garantiza que en el momento de abrir los cursores, las tablas no estén bloqueadas por las transacciones abiertas en los procesos de inicialización, finalización y sincronización de datos entre cursores modificables y la base de datos.

Ahora bien, este funcionamiento comparado con el VisualHUR es superior, porque permite el paralelismo de las operaciones en memoria. Pero adolece de los mismos defectos y es el bloqueo entre usuarios que generan la planilla.

La recomendación es la misma para Evolution y VisualHUR: Las transacciones deben ser concretas y deben liberar los locks lo más rápido que sea posible.

Entonces la única manera es que los procesos de inicialización y finalización sean rápidos y las transacciones sean lo más concretas y rápidas. No hay ninguna solución mágica, solo trabajo de optimización a nivel de base de datos.

Cuidado con los cursores modificables, porque cuando se actualizan devuelta a la base de datos necesitan tiempo para sincronizarse y ese tiempo bloquea las tablas.

Finalmente, recorda que Evolution implementa la misma técnica de generación de planilla que VisualHUR, entonces aplican las mismas buenas prácticas y soluciones que se aplicarían si fuera VisualHUR. De hecho estoy seguro que tendrías el mismo problema si fuera VisualHUR el que estuviera instalado en lugar de Evolution.

link

answered 15 Oct '13, 15:59

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Evolution en BitBucket

En este sitio puede acceder al código fuente, centro de descargas y reportar bugs, propuestas y mejoras para Evolution.

Evolution en JIRA

En este sitio puedes sugerir nueva funcionalidad para Evolution, o puedes votar por la funcionalidad ya propuesta por otros usuarios.

Tags:

×47
×2

Asked: 11 Oct '13, 14:42

Seen: 2,418 times

Last updated: 15 Oct '13, 15:59

[Acerca de] [Preguntas Frecuentes] [Privacidad] [Soporte] [Contacto]
Copyright 2013-2018. Asesores en Informática