error: internal server error

13 views
Skip to first unread message

Paola Bruccoleri

unread,
Aug 4, 2015, 9:29:46 PM8/4/15
to Lista Play Latam
Hola todos!

Les escribo a ver si alguien puede darme alguna pista sobre un error que está apareciendo desde hace como 1 semana, 1 o 2 veces al día..
Es una aplicación realizada con play 2.0.4 hace ya unos años (2012) que siempre funcionó a la perfección y sin dramas.
Se conecta a mysql donde se encuentran determinados datos propios de esa aplicación y a ADS (advantage database server) ya que los sistemas de gestión de la empresa usan esa base de datos. De ahí saca datos de los clientes, etc y donde se graban las ventas.

En junio se cambió de servidor, de un 2008 server a un 2012 server. Hay un especialista experto en servidores que se encargó de su instalación y configuración. Hemos tenido algunos dramas con la migración pero se ha ido solucionando.

El tema es que como les dije, desde hace algunos días hay problemas.
La aplicación va grabando un log en forma diaria, y el error que se obtiene es el que pego abajo.
Fue desarrollada por unos terceros pero ahora no tienen tiempo de mantenerla porque se han dedicado exclusivamente a determinados clientes.
Ellos instalaron la misma en un Linux CentOS y copiaron 2 instancias para balancear.
o sea, todos los .jar de la aplicación están en:

/usr/acol/inst1

/usr/acol/ins2


y la aplicación la levantamos:
service acol1 start
service acol2 start

acol1 y acol2 son 2 scripts para levantar/parar la misma.

Por lo que dice el error, es que no hay conexiones libres disponibles... pero de qué?
los sistemas de gestión de la empresa no tienen problemas en el aceso a la base de datos.. y hay usuarios disponibles (de un total de una licencia de 25 usuarios se están usando 16, y hay configuradas muchas conexiones.. nunca se ha llegado al límite.

Se agradece CUALQUIER pista que se les ocurra!!
Por ahora, si paramos la aplicación y la levantamos nuevamente a mano, queda funcionando.
será algo en la configuración del servidor nuevo??
El linux CentOS ni se ha tocado,  lo mismo que la aplicación. Si precisan más datos, pregunten nomás.
Mil gracias
Saludos!

----------------------
2015-08-04 16:55:23,607 - [ERROR] - from application in play-akka.actor.actions-dispatcher-7


! @6n38511nd - Internal server error, for request [POST /bandeja/listPendingIds] ->

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[PersistenceException: java.sql.SQLException: Timed out waiting for a free available connection.]]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at akka.actor.Actor$class.apply(Actor.scala:318) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at play.core.ActionInvoker.apply(Invoker.scala:113) [play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at akka.actor.ActorCell.invoke(ActorCell.scala:626) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at akka.dispatch.Mailbox.run(Mailbox.scala:179) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:516) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:259) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1479) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
    at akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Timed out waiting for a free available connection.
    at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) ~[org.avaje.ebean-ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) ~[org.avaje.ebean-ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) ~[org.avaje.ebean-ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1468) ~[org.avaje.ebean-ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) ~[org.avaje.ebean-ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:201) ~[org.avaje.ebean-ebean-2.7.3.jar:na]
    at models.Credito.findAllIdsPending(Credito.java:188) ~[acol_2.9.1-2.0.10.jar:2.0.10]
    at controllers.Bandeja.listPendingIds(Bandeja.java:73) ~[acol_2.9.1-2.0.10.jar:2.0.10]
    at Routes$$anonfun$routes$1$$anonfun$apply$65$$anonfun$apply$66.apply(routes_routing.scala:508) ~[acol_2.9.1-2.0.10.jar:na]
    at Routes$$anonfun$routes$1$$anonfun$apply$65$$anonfun$apply$66.apply(routes_routing.scala:508) ~[acol_2.9.1-2.0.10.jar:na]
    at play.core.Router$HandlerInvoker$$anon$5$$anon$1.invocation(Router.scala:1090) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:33) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.GlobalSettings$1.call(GlobalSettings.java:57) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at controllers.BeforeAfterActions.call(BeforeAfterActions.java:36) ~[acol_2.9.1-2.0.10.jar:2.0.10]
    at play.mvc.Security$AuthenticatedAction.call(Security.java:39) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.core.j.JavaAction$class.apply(JavaAction.scala:74) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.core.Router$HandlerInvoker$$anon$5$$anon$1.apply(Router.scala:1089) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.core.ActionInvoker$$anonfun$receive$1$$anonfun$6.apply(Invoker.scala:126) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.core.ActionInvoker$$anonfun$receive$1$$anonfun$6.apply(Invoker.scala:126) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.utils.Threads$.withContextClassLoader(Threads.scala:17) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:125) [play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    ... 11 common frames omitted
Caused by: java.sql.SQLException: Timed out waiting for a free available connection.
    at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:503) ~[com.jolbox.bonecp-bonecp-0.7.1.RELEASE.jar:0.7.1.RELEASE]
    at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:114) ~[com.jolbox.bonecp-bonecp-0.7.1.RELEASE.jar:0.7.1.RELEASE]
    at play.db.ebean.EbeanPlugin$WrappingDatasource.getConnection(EbeanPlugin.java:146) ~[play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
    at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) ~[org.avaje.ebean-ebean-2.7.3.jar:na]
    ... 31 common frames omitted


Pablo Pidal

unread,
Aug 5, 2015, 12:22:35 PM8/5/15
to play-...@googlegroups.com

El error parece claro, se queda esperando por conexiones libres hasta que agota el timeout.
Esto puede deberse a la configuracion del orm en el código, por ejemplo en hibernate he tenido que tocar la configuración alguna vez para evitar esto.
También puede deberse al límite de conexiones en el dbms.
Asegúrate de que cerrais conexiones.

--
Has recibido este mensaje porque estás suscrito al grupo "Play Framework Latam" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a play-latam+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Paola Bruccoleri

unread,
Aug 5, 2015, 1:18:26 PM8/5/15
to play-...@googlegroups.com
HolaPablo..
espera conexiones libres a la bd?? porque si me fijo en el monitor de la bd, me sobran las conexiones libres!



en 3 años nunca ha pasado esto... la cantidad de usuarios no ha aumentado considerablemente; no son muchos concurrentes.

en el .conf tengo esto:

#Base de datos del cliente
proprietary.db.legacy.driver=com.extendedsystems.jdbc.advantage.ADSDriver
proprietary.db.legacy.url="jdbc:extendedsystems:advantage://192.168.1.205:6262;catalog=C:\\Programas\\ARCHIVOS;TableType=cdx;LockType=proprietary"
proprietary.db.legacy.user=AdsSys
proprietary.db.legacy.password=no
proprietary.db.legacy.poolMaximumActiveConnections=2
proprietary.db.legacy.poolMaximumIdleConnections=2


tú dices de modificar esto?
poolMaximumActiveConnections=2

deberé crear más instancias de la aplicación? (recuerda que tengo 2 instancias: acol1 y acol2)

a qué se deberá que de repente ha aparecido este error?
mil gracias!

PD: se supone que las conexiones quedan cerradas!... ahí ya no sé cómo lo programaron.. deberé meterme en el código a ver qué encuentro y dónde.

Se certificó que el correo no contiene virus.
Comprobada por AVG - www.avg.es
Versión: 2015.0.6086 / Base de datos de virus: 4392/10372 - Fecha de la versión: 04/08/2015


Reply all
Reply to author
Forward
0 new messages