[TPA] mil problemas al deployar con Heroku #157
-
Bueno, este issue es medio manotazo de ahogado, pero probé mil cosas y no sirvieron de mucho Además, volvieron errores similares a los dichos en #86, pero esta vez con las cosas que se persisten dentro de la UI incluso aunque tenga ya puesto esto
y que cada operación con la db que hago
Aclaro de nuevo, entiendo que lo que sea cae es la conexión con la db y no la propia db Se les ocurre qué puede llegar a ser y cuál puede ser la solución? Una que no implique tarjetas de crédito de ser posible (? Gracias de antemano |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments
-
Buenas @foviedo ! Para lo que es que la conexión se mantenga viva y no usar una única conexión, se usa lo que se conoce como pools de conexiones, para no estar conectando, desconectandote (esto es costoso en el caso de las base de datos), tenes un objeto que se encarga de conectarse varias veces y mantener vivas esas conexiones. Hibernate te deja configurar esto por el persistence.xml. Te dejo un ejemplo de biblioteca que sirve para eso c3po (donde dice hibernate.cfg.xml, es el persistence.xml) y podes configurarle la query para saber si la conexión esta viva con esto normalmente se usa un
Esto no me cierra, porque si hace la consultas rapido, significa que tu sitio se va a renderizar rapido.
Cuando arranque es normal que tarde porque se levanta la aplicación, mas allá de eso seguramente tarde mas porque es una maquina peor la que te dan en una cuenta gratis. Podes ir viendo en los logs que va pasando para saber cual es el problema.
Te falto el esto :P
No se como lo tenes examente en tu código, pero esto no parece ser así, vos tenes que abrir y cerrar las transacciones donde arrancan y terminan tus casos de uso, en este caso en los controllers, cada operación POST/PUT/DELETE deberían tener ese cacho de código y no realizarse mas abajo (por ejemplo, no en los repositorios) porque sino estan cambiando la atomicidad de las operaciones. Solo hay que hacerle persist a los objetos nuevos, los update hibernate se da cuenta que cambiaron y los actualiza. |
Beta Was this translation helpful? Give feedback.
-
Buen día!
En su momento traté de usar c3p0 porque tutoriales de google y no me funcionó, pero tampoco lo intenté demasiado, voy a volver a fijarme
Tiene sentido, pero a mí me genera la duda, qué es lo que está cortando la conexión? La página porque se cansó de esperar a la transacción lenta de la base de datos? Reitero que si tengo la web de forma local esto no ocurre (por más que siga teniendo la db de forma remota)
Vos sabés que ahora no lo estoy pudiendo hacer estallar por otro medio que no sea la pantalla de registrarme
Mala mía, esto
AH, esto es relevante Gracias, voy a estar revisando esas cosas mencionadas |
Beta Was this translation helpful? Give feedback.
-
Perdón, otra pregunta si yo en una de esas a un Egreso que ya está persistido, le agrego un item que no está persistido. Debería hacer .persist(unItem)? O sólo con agregarlo a la lista de items del egreso basta para que se haga todo bien? |
Beta Was this translation helpful? Give feedback.
-
Una cosa mas Gas, en el issue #86 mencionaste: |
Beta Was this translation helpful? Give feedback.
-
Esto puede ser, cuando vos haces una request a un servidor los clientes suelen tener un timeout, así que tal vez esta timeouteando el cliente, o tal vez esta timeouteando el balancer de Heroku que le esta pegando a tu App. Depende que estes viendo si 500 o timeout, puede estar en distintos lugares el problema. Lo de c3po debería mejorar el tema conexiones. Claro, esto fuerza a JPA a esperar, pero no significa que el que te pidio la request te este esperando. Siempre es bueno usar valores mas pequeños, porque si en X tiempo no respondio la query entonces no vale la pena esperarla.
Si.
En este caso tenes dos opciones
|
Beta Was this translation helpful? Give feedback.
-
Esto es lo mismo que se hace en el after, el |
Beta Was this translation helpful? Give feedback.
-
Al final nos re sirvió, fue una combinación de varios factores o de uno de ellos y no me enteré cuál(? |
Beta Was this translation helpful? Give feedback.
Al final nos re sirvió, fue una combinación de varios factores o de uno de ellos y no me enteré cuál(?
Gracias!