JUEGO 2.1 SCALA SQLEXception Conexión cronometrada esperando una conexión gratuita disponible -- scala campo con jdbc campo con playframework campo con playframework-2.0 campo con h2 camp Relacionados El problema

Play 2.1 Scala SQLException Connection Timed out waiting for a free available connection


-1
vote

problema

Español

He estado trabajando en este tema durante bastante tiempo y no puedo encontrar una solución ...

Una aplicación web construida con Play Framework 2.2.1 usando H2 DB (para dev) y un paquete de modelo simple. Estoy tratando de implementar un punto final de Rest JSON y el código funciona ... pero solo una vez por instancia del servidor.

  def createOtherModel() = Action(parse.json) {   request =>     request.body  "name" match {       case _: JsUndefined => BadRequest(Json.obj("error" -> true,         "message" -> "Could not match name =(")).as("application/json")       case name: JsValue =>           request.body  "value" match {             case _: JsUndefined => BadRequest(Json.obj("error" -> true,               "message" -> "Could not match value =(")).as("application/json")             case value: JsValue =>               // this breaks the secod time               val session = ThinkingSession.dummy               val json = Json.obj(                   "content" -> value,                   "thinkingSession" -> session.id,                 )               )               Ok(Json.obj("content" -> json)).as("application/json")           }         } else {           BadRequest(Json.obj("error" -> true,             "message" -> "Name was not content =(")).as("application/json")         }     } }   

¡Así que básicamente leí el JSON, eco del valor "valor", cree un modelo obj y envíe su identificación.

El ThinkingSession.dummy función hace esto:

  def all(): List[ThinkingSession] = {  // Tried explicitly closing connection, no difference //val conn = DB.getConnection() //try { //  DB.withConnection { implicit conn => //    SQL("select * from thinking_session").as(ThinkingSession.DBParser *) //  } //} finally { //  conn.close() //}   DB.withConnection { implicit conn =>     SQL("select * from thinking_session").as(ThinkingSession.DBParser *)   } }  def dummy: ThinkingSession = {   (all() head) }   

Entonces, esto debería hacer un SELECT * FROM thinking_session , cree una lista de obj de modelo desde el resultado y devuelva el primero de la lista.

Esto funciona bien la primera vez después de que comience el servidor pero la segunda vez obtengo un

  play.api.Application$$anon$1: Execution exception[[SQLException: Timed out waiting for a free available connection.]]     at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.1]     at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10.jar:2.2.1]     at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.1]     at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.1]     at scala.Option.map(Option.scala:145) [scala-library.jar:na]     at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2.applyOrElse(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.1]   Caused by: java.sql.SQLException: Timed out waiting for a free available connection.     at com.jolbox.bonecp.DefaultConnectionStrategy.getConnectionInternal(DefaultConnectionStrategy.java:88) ~[bonecp.jar:na]     at com.jolbox.bonecp.AbstractConnectionStrategy.getConnection(AbstractConnectionStrategy.java:90) ~[bonecp.jar:na]     at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:553) ~[bonecp.jar:na]     at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:131) ~[bonecp.jar:na]     at play.api.db.DBApi$class.getConnection(DB.scala:67) ~[play-jdbc_2.10.jar:2.2.1]     at play.api.db.BoneCPApi.getConnection(DB.scala:276) ~[play-jdbc_2.10.jar:2.2.1]   

mi aplicación.conf (sección db)

  db.default.driver=org.h2.Driver db.default.url="jdbc:h2:file:database/[my_db]" db.default.logStatements=true db.default.idleConnectionTestPeriod=5 minutes db.default.connectionTestStatement="SELECT 1" db.default.maxConnectionAge=0 db.default.connectionTimeout=10000   

Inicialmente lo único establecido en mi configuración fue la conexión y se produjo el error. Añadí todas las demás cosas al leer el problema en la web.

Lo interesante es que cuando uso el H2 en memoria DB funciona una vez después de que comience el servidor y después de eso falla. Cuando utilice el sistema de archivos H2 DB, solo funciona una vez, independientemente de las instancias del servidor.

¿Puede alguien darme una idea de este problema? Han encontrado algunas cosas en el problema de Bonecp e intentó actualizar a 0.8.0-RC1 pero nada cambió ... Estoy en una pérdida = (

Original en ingles

I have been working on this issue for quite a while now and I cannot find a solution...

A web app built with play framework 2.2.1 using h2 db (for dev) and a simple Model package. I am trying to implement a REST JSON endpoint and the code works... but only once per server instance.

def createOtherModel() = Action(parse.json) {   request =>     request.body \ "name" match {       case _: JsUndefined => BadRequest(Json.obj("error" -> true,         "message" -> "Could not match name =(")).as("application/json")       case name: JsValue =>           request.body \ "value" match {             case _: JsUndefined => BadRequest(Json.obj("error" -> true,               "message" -> "Could not match value =(")).as("application/json")             case value: JsValue =>               // this breaks the secod time               val session = ThinkingSession.dummy               val json = Json.obj(                   "content" -> value,                   "thinkingSession" -> session.id,                 )               )               Ok(Json.obj("content" -> json)).as("application/json")           }         } else {           BadRequest(Json.obj("error" -> true,             "message" -> "Name was not content =(")).as("application/json")         }     } } 

so basically I read the JSON, echo the "value" value, create a model obj and send it's id.

the ThinkingSession.dummy function does this:

def all(): List[ThinkingSession] = {  // Tried explicitly closing connection, no difference //val conn = DB.getConnection() //try { //  DB.withConnection { implicit conn => //    SQL("select * from thinking_session").as(ThinkingSession.DBParser *) //  } //} finally { //  conn.close() //}   DB.withConnection { implicit conn =>     SQL("select * from thinking_session").as(ThinkingSession.DBParser *)   } }  def dummy: ThinkingSession = {   (all() head) } 

So this should do a SELECT * FROM thinking_session, create a model obj list from the result and return the first out of the list.

This works fine the first time after server start but the second time I get a

play.api.Application$$anon$1: Execution exception[[SQLException: Timed out waiting for a free available connection.]]     at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.1]     at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10.jar:2.2.1]     at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.1]     at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.1]     at scala.Option.map(Option.scala:145) [scala-library.jar:na]     at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2.applyOrElse(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.1]   Caused by: java.sql.SQLException: Timed out waiting for a free available connection.     at com.jolbox.bonecp.DefaultConnectionStrategy.getConnectionInternal(DefaultConnectionStrategy.java:88) ~[bonecp.jar:na]     at com.jolbox.bonecp.AbstractConnectionStrategy.getConnection(AbstractConnectionStrategy.java:90) ~[bonecp.jar:na]     at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:553) ~[bonecp.jar:na]     at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:131) ~[bonecp.jar:na]     at play.api.db.DBApi$class.getConnection(DB.scala:67) ~[play-jdbc_2.10.jar:2.2.1]     at play.api.db.BoneCPApi.getConnection(DB.scala:276) ~[play-jdbc_2.10.jar:2.2.1] 

My application.conf (db section)

db.default.driver=org.h2.Driver db.default.url="jdbc:h2:file:database/[my_db]" db.default.logStatements=true db.default.idleConnectionTestPeriod=5 minutes db.default.connectionTestStatement="SELECT 1" db.default.maxConnectionAge=0 db.default.connectionTimeout=10000 

Initially the only thing set in my config was the connection and the error occurred. I added all the other stuff while reading up on the issue on the web.

What is interesting is that when I use the h2 in memory db it works once after server start and after that it fails. when I use the h2 file system db it only works once, regardless of the server instances.

Can anyone give me some insight on this issue? Have found some stuff on bonecp problem and tried upgrading to 0.8.0-rc1 but nothing changed... I am at a loss =(

              

Lista de respuestas

0
 
vote

Trate de establecer un MAXCONNECTOGE y TIMEOUT ONIWOUT

 

Try to set a maxConnectionAge and idle timeout

 
 
 
 
-2
 
vote
vote
La mejor respuesta
 

Resulta que el error fue bastante en otro lugar ... fue un buen desbordamiento de la pila ... no he visto uno en mucho tiempo. Intenté votar mi pregunta, pero no es posible ^^

 

turns out the error was quite somewhere else... it was a good ol' stack overflow... have not seen one in a long time. I tried down-voting my question but it's not possible^^

 
 
 
 

Relacionados problema

1  Claves exteriores de la base de datos relacional en la primavera BOOT JPA / Hibernate  ( Relational database foreign keys in spring boot jpa hibernate ) 
Estoy usando el bota de primavera JPA con Gradle. Estoy luchando para encontrar una guía que pueda seguir qué enfoque en la creación de una base de datos rela...

1  ¿El modo de compatibilidad MySQL de H2 es compatible con el tipo "Conjunto" de MySQL?  ( Does h2s mysql compatibility mode support mysqls set type ) 
Veo que admite enumentar, pero no he podido encontrar nada en el tipo de conjunto ( https://dev.mysql.com/doc/refman/5.7/en/set.html ). Si H2 no lo admite, ...

0  No se puede usar QueryBuilder con Nombre de columna = "` grupo` "en Ormlite  ( Cannot use querybuilder with column name group in ormlite ) 
El código class Record(Model, Base): """""" __tablename__ = "records" NAME = Column(String, primary_key = True) TITLE = Co...

0  En Fedora 15, Start Lift App en Fedora recibiendo org.h2.jdbc.jdbcsqlexception  ( On fedora 15 start lift app on fedora getting org h2 jdbc jdbcsqlexception ) 
en Fedora 15, después de hacer MVN Jetty: Ejecutar, estoy obteniendo la siguiente excreción cuando está tratando de inicializar el Metamapper para el usuario ...

2  Inserto H2 Seleccione en la actualización de la tecla DUPLICATE LOS ERRORÍA DE VIAJACIÓN DE LA TECLA PRIMica "  ( H2 insert select on duplicate key update throws unique index or primary key vio ) 
H2 (comenzó con MODE = MYSQL ON) Admite la inserción en la declaración de actualización de la tecla Duplicar solo con la cláusula de valores, mientras se lanz...

4  ROO de primavera: el controlador JDBC no está disponible para 'org.h2.driver'  ( Spring roo jdbc driver not available for org h2 driver ) 
Estoy ejecutando Eclipse Indigo en Ubuntu Linux, Herramientas de primavera 2.7.1, ROO de primavera 1.1.5. Estoy leyendo Comenzando con Roo y cuando intento ...

14  ¿Por qué estoy obteniendo jdbcsqlexception (caracteres no hexagonales) con mi base de datos de H2 / Spring Boot?  ( Why am i getting jdbcsqlexception non hex characters with my h2 database spr ) 
Entonces, la versión corta, supongo que tengo algún tipo de problema de codificación de caracteres, o el DB está almacenando / devolviendo la fecha en un form...

1  H2 Base de datos Timestamp Insertar NULL  ( H2 database timestamp insert null ) 
buen día, Necesito borrar una marca de tiempo en mi base de datos H2. ¡Puedo establecer valores, pero no puedo configurarlo en nulo / borrarlo! ¿Cuál es e...

5  La consola de arranque de primavera JPA H2 no funciona, aplicación.Properties Archivo ignorado  ( Spring boot jpa h2 console not running application properties file ignored ) 
La guía de arranque de primavera dice que puedo obtener la consola H2, pero no está funcionando para mí. http: // localhost: 8080 / H2 / Página de error ...

3  Comparación MEMSQL y H2  ( Memsql and h2 comparison ) 
Estoy considerando mudarse de H2 a MEMSQL, y apreciaría mucho cualquier comentario: Mi aplicación tiene que consultar muy rápidamente al mismo tiempo de las...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos