Les comento que hay un cliente el cual tiene 4 a 6 personas encargadas de generar la planilla y algunas veces en fechas pico ellos generan la planilla al mismo tiempo y el proceso de la generación se queda colgando. La solución momentánea que se les ha indicado es que se reinicie el servicio de la generación de Planilla.

Este mismo inconveniente se ha visto en otros clientes y la solución ha sido la misma, reiniciar los servicios.

El problema es que es tedioso estar reiniciando los servicios cada vez que el proceso quede colgando y muchas veces el inconveniente se produce en horas de la noche (10 u 11 p.m.) lo cual hace casi imposible darle seguimiento o poder replicar el problema.

Por lo tanto, que otras soluciones nos pueden brindar?

asked 06 Aug '14, 16:40

Josue%20Mancilla's gravatar image

Josue Mancilla
(suspended)
accept rate: 42%


La respuesta es encontrando porque se inhabilita el servicio.

Necesitamos que nos incluyas archivos logs, errores almacenados en el Event Viewer, o cualquier otra información que nos permita identificar si hay algo que no está funcionando bien.

link

answered 06 Aug '14, 17:24

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

Fernando por correo te envié los logs solicitados.

(27 Aug '14, 23:21) Josue Mancilla Josue%20Mancilla's gravatar image

¿qué versión de Evolution es?

(27 Aug '14, 23:42) Fernando Paz ♦♦ Fernando%20Paz's gravatar image

En la bitácora del Event Viewer que enviaste, aparecen los siguientes errores:

  • Exception of type 'System.OutOfMemoryException' was thrown
  • The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached
  • Message Queue service is not available

Entonces me parece que la revisión tiene que ser orientada a evaluar el consumo de memoria de los procesos. Dado que las excepciones se controlan correctamente por GenPlaWinService, pareciera que él no es el responsable, si no que es SQL Server el que llega a un estado en que no le contesta a servicio.

  • ¿El SQL Server se está ejecutando en el mismo servidor donde está Evolution?

  • ¿Qué versión de SQL Server se está usando?, porque hay mensajes de SQL Express en el log del Event Viewer, si no se está usando, entonces ¿por qué está instalado en el servidor de Evolution? Si es solamente para las bases de AppFabric, estas bases se pueden configurar para que estén en otro servidor.

  • Como puede verse en el Stack Trace de los dos primeros errores fallan en la línea 102 del servicio GeneraPlanillaWcfService. Está linea de código es una instrucción SELECT a la base de datos, que obtiene el período a calcular y la formulación del tipo de planilla asociado. Esta instrucción es el primer acceso a la base de datos que hace el generador de planilla.

  • ¿Cuál es el nivel de monitoreo del AppFabric? Si no se están evaluando posibles problemas con el Workflow, entonces el monitoreo de AppFabric debe reducirse para liberar el CPU y la memoria que consume. (Ver respuesta a la pregunta en QA #532)

Adjunto las excepciones completas para ver la situación de error al que llega el Generador de Planilla

Al enviar la orden de inicio al WCF de calculo de planilla
Exception of type 'System.OutOfMemoryException' was thrown.

   at System.Data.Objects.DataClasses.RelationshipManager.CreateRelatedEnd[TSourceEntity,TTargetEntity](RelationshipNavigation navigation, RelationshipMultiplicity sourceRoleMultiplicity, RelationshipMultiplicity targetRoleMultiplicity, RelatedEnd existingRelatedEnd)
   at System.Data.Objects.DataClasses.RelationshipManager.GetRelatedReference[TSourceEntity,TTargetEntity](String relationshipName, String sourceRoleName, String targetRoleName, NavigationPropertyAccessor sourceAccessor, NavigationPropertyAccessor targetAccessor, RelationshipMultiplicity sourceRoleMultiplicity, RelatedEnd existingRelatedEnd)
   at System.Data.Objects.LightweightCodeGenerator.<>c__DisplayClass4`2.<CreateGetRelatedEndMethod>b__0(RelationshipManager manager, RelatedEnd relatedEnd)
   at System.Data.Objects.LightweightCodeGenerator.GetRelatedEnd(RelationshipManager sourceRelationshipManager, AssociationEndMember sourceMember, AssociationEndMember targetMember, RelatedEnd existingRelatedEnd)
   at System.Data.Objects.DataClasses.RelationshipManager.GetRelatedEndInternal(String relationshipName, String targetRoleName, RelatedEnd existingRelatedEnd, AssociationType relationship, Boolean throwOnError)
   at System.Data.Objects.DataClasses.RelationshipManager.GetRelatedEndInternal(String relationshipName, String targetRoleName)
   at System.Data.Objects.EntityEntry.FixupReferencesByForeignKeys(Boolean replaceAddedRefs)
   at System.Data.Objects.ObjectStateManager.FixupReferencesByForeignKeys(EntityEntry newEntry, Boolean replaceAddedRefs)
   at System.Data.Objects.ObjectStateManager.AddEntry(IEntityWrapper wrappedObject, EntityKey passedKey, EntitySet entitySet, String argumentName, Boolean isAdded)
   at System.Data.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)
   at lambda_method(Closure , Shaper )
   at System.Data.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)
   at System.Data.Common.Internal.Materialization.Shaper`1.RowNestedResultEnumerator.MoveNext()
   at System.Data.Common.Internal.Materialization.Shaper`1.ObjectQueryNestedEnumerator.TryReadToNextElement()
   at System.Data.Common.Internal.Materialization.Shaper`1.ObjectQueryNestedEnumerator.ReadElement()
   at System.Data.Common.Internal.Materialization.Shaper`1.ObjectQueryNestedEnumerator.MoveNext()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Aseinfo.VH4.WindowsServices.Salarios.GeneraPeriodoPlanillaWcfService.Iniciar(IniciarPlanillaData data, IGenericEntityRepository repository) in c:\VH4\VH4\WindowsServices\GeneraPlanillaWindowsService\Salarios\GeneraPeriodoPlanillaWcfService.cs:line 102
   at Aseinfo.VH4.WindowsServices.Salarios.GenPlaHostWcf.Execute() in c:\VH4\VH4\WindowsServices\GeneraPlanillaWindowsService\Salarios\GenPlaHostWCF.cs:line 113

También este aparece muchas veces:

Al enviar la orden de inicio al WCF de calculo de planilla
The underlying provider failed on Open.
Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.

   at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
   at System.Data.EntityClient.EntityConnection.Open()
   at System.Data.Objects.ObjectContext.EnsureConnection()
   at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Aseinfo.VH4.WindowsServices.Salarios.GeneraPeriodoPlanillaWcfService.Iniciar(IniciarPlanillaData data, IGenericEntityRepository repository) in c:\VH4\VH4\WindowsServices\GeneraPlanillaWindowsService\Salarios\GeneraPeriodoPlanillaWcfService.cs:line 102
   at Aseinfo.VH4.WindowsServices.Salarios.GenPlaHostWcf.Execute() in c:\VH4\VH4\WindowsServices\GeneraPlanillaWindowsService\Salarios\GenPlaHostWCF.cs:line 113

Y finalmente aparece este:

Al procesar la cola de períodos a generar
Message Queue service is not available.

   at System.Messaging.MessageQueue.Create(String path, Boolean transactional)
   at Aseinfo.VH4.WindowsServices.Salarios.GestorCola..ctor(String genPlanillaQueuePath, Int32 queueReceiveSecondsTimeOut)
   at Aseinfo.VH4.WindowsServices.Salarios.GenPlaHostWcf.Execute()
link

answered 28 Aug '14, 00:56

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:

×83
×47

Asked: 06 Aug '14, 16:40

Seen: 2,026 times

Last updated: 28 Aug '14, 00:56

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