Versión Evolution: 1.10.0.0

El escenario es el siguiente: Se tienen configuradas unas alertas para que se ejecuten en un día especifico del mes para ejecutar un SP (interface entre Evolution y un sistema del cliente) que envía unos datos generados en planilla (descuentos por un rubro especifico) hacia las tablas de otra base de datos de un sistema del cliente. El detalle es que este ultimo mes (Mayo) no se ejecutaron dichas alertas, y a mediados de mayo se aplico la actualización de la versión 1.9.1.2 a la versión 1.10.0.0, y ahora que estoy revisando encontré que la configuración de "Roles que tienen permiso de Ejecutar la Alerta", según tenia entendido que esto aplica para la ejecución manual de las alertas, entonces la pregunta es, ¿también afecta para la ejecución automática de las alertas esta configuración? Consulto esto porque el registro de ejecución indica que la ultima fue en abril y no hay registro de error que pudiera indicar que se ejecuto en mayo y dio algún tipo de problema y por ello no se cargo la información en el sistema del cliente.

asked 08 Jun '16, 10:08

Valentino%20Lopez's gravatar image

Valentino Lopez
(suspended)
accept rate: 42%


Sobre el tema de las alertas que no se ejecutaron, en el log se puede ver claramente que dan errores como este:

    2016-05-28 23:27:00,004 [AppJobWinServiceScheduler_Worker-2] INFO  Aseinfo.VH4.WindowsServices.ApplicationJobs.AlertaJob - Inicia la ejecución de alerta: 32DFB36E-8C98-404A-A0E8-F999C58F51DD
2016-05-28 23:27:00,004 [AppJobWinServiceScheduler_Worker-2] INFO  Aseinfo.VH4.WindowsServices.ApplicationJobs.AlertaJob - Reconfigurando el contenedor de Unity de la alerta: 32DFB36E-8C98-404A-A0E8-F999C58F51DD
2016-05-28 23:27:00,004 [AppJobWinServiceScheduler_Worker-2] INFO  Aseinfo.VH4.WindowsServices.ApplicationJobs.AlertaJob - Obteniendo los datos de la alerta: 32DFB36E-8C98-404A-A0E8-F999C58F51DD
2016-05-28 23:27:00,004 [AppJobWinServiceScheduler_Worker-2] INFO  Aseinfo.VH4.WindowsServices.ApplicationJobs.AlertaJob - Obteniendo máximo número de caracteres que se pueden manejar en una columna de resultado de alerta: 32DFB36E-8C98-404A-A0E8-F999C58F51DD
2016-05-28 23:27:00,019 [AppJobWinServiceScheduler_Worker-2] ERROR Aseinfo.VH4.WindowsServices.ApplicationJobs.AlertaJob - Error al ejecutar la alerta
System.Data.Entity.Core.EntityException: The underlying provider failed on Open. 
---> System.Data.SqlClient.SqlException: Login failed for user 'EvoDataUser'.
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   at System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(DbConnection connection, DbInterceptionContext interceptionContext)
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.<Execute>b__0()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
   at System.Data.Entity.Core.EntityClient.EntityConnection.Open()
   --- End of inner exception stack trace ---
   at System.Data.Entity.Core.EntityClient.EntityConnection.Open()
   at System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions)
   at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
   at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   at Aseinfo.Infrastructure.Base.Entity.EntityServiceBase`2.GetEntityById(IdT id, Expression`1[] includes) in c:\BuildAgent\work\89066541112bb801\Infrastructure\Base\Entity\EntityServiceBase.cs:line 309
   at Aseinfo.VH4.WindowsServices.ApplicationJobs.AlertaJob.Execute(JobExecutionContext context) in c:\BuildAgent\work\89066541112bb801\VH4\WindowsServices\ApplicationJobsWindowsService\ApplicationJobs\AlertaJob.cs:line 121

Esto indica que la alerta no se ejecutó porque no tiene acceso a la base de datos. Esto apoya los comentarios que hiciste sobre cambios que hicieron en el servidor SQL.

Cada vez que se cambia la cadena de conexión en Evolution, o se cambian los permisos de los usuarios de conexión, se deben "Detener" las alertas y volverlas a "Iniciar", ya que como parte de los datos de las mismas se almacena la cadena de conexión que usa para ejecutarse.

link

answered 08 Jun '16, 15:32

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

edited 08 Jun '16, 15:33

1

A veces la generación de alertas y/o la generación de planillas da error de "The underlying provider failed on Open" a pesar de que la cadena de conexión tenga como servidor "localhost". La solución que siempre me ha resultado es cambiar localhost por un punto "." y la alerta o la planilla ya se genera correctamente. A varios ya nos ha pasado esto y el truco del punto siempre funciona pero no hemos logrado determinar que cambia en la infraestructura del servidor para que la cadena de conexión deje de funcionar con localhost. Ciertamente hay virus y troyanos que modifican el archivo de host para que localhost ya no haga referencia a 127.0.0.1 pero seria muy muy muy poco probable que la misma situacion nos pase a varios con diferentes clientes

(09 Jun '16, 09:19) sbarahona ♦♦ sbarahona's gravatar image

Los permisos de la Alerta solo se verifican en una ejecución inmediata y desde el website cuando se va a iniciar. La ejecución automática de la alerta (lo que corre en el AppJobWinService) no verifica los permisos. Habría que revisar el log del día en el que se debió correr para verificar si hubo un error grave que no permitió que se guardara la bitácora.

¿Ha cambiado el server de base de datos o las credenciales con las que se loguea a la base desde la última ejecución? Si pasó esto, por aqui puede estar el problema!

link

answered 08 Jun '16, 11:32

sabanito's gravatar image

sabanito ♦♦
(suspended)
accept rate: 54%

Credenciales no han cambiado, pero si han aplicado cambios en el servidor de base de datos para tener redundancia.

En el log del AppJob se esta dando recurrentemente una excepcion que indica esto: System.Data.Entity.Core.EntityException: The underlying provider failed on Open A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible.

(08 Jun '16, 11:47) Valentino Lopez Valentino%20Lopez's gravatar image

Porque no le envías a Roberto algunos logs donde aparecen esos errores. Para ver el StackTrace y ayudarte a determinar que proceso es el que envía esos errores.

(08 Jun '16, 12:32) Fernando Paz ♦♦ Fernando%20Paz's gravatar image

Les dejo el link del archivo de log del 28/May fecha en la cual debían ejecutarse las alertas (11:30PM Aprox.), aunque la excepción aparece desde el inicio del archivo (2016-05-28 00:00:33,364)

https://aseinfocorp-my.sharepoint.com/personal/vlopez_aseinfo_com_sv/_layouts/15/guestaccess.aspx?guestaccesstoken=vqTKdPZNcL4GtJHQWgooL%2fHgDl6VCBnGro6cbS2mciI%3d&docid=1ce72838b6c54402aba2fc61241e3d09e

(08 Jun '16, 13:02) Valentino Lopez Valentino%20Lopez's gravatar image

Viendo el log todos los errores referidos a: "The underlying provider failed ...", se refieren a cuando trata de inicializar la tarea que inicializa flujos desde la base de datos.

Tenes que revisar los triggers en la base EvoTemp y eliminar el incorrecto, para evitar que se generen esos errores. El Job correcto está ejecutándose normalmente, también se ve en el log que se ejecuta inmediatamente antes del que da el error.

(08 Jun '16, 15:21) Fernando Paz ♦♦ Fernando%20Paz's gravatar image
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:

×25

Asked: 08 Jun '16, 10:08

Seen: 1,615 times

Last updated: 09 Jun '16, 14:55

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