sábado, 29 de septiembre de 2007

Como usar modelos de Django en programas python

Encontré un tutorial (en inglés) que explica los pasos necesarios para utilizar las clases de modelo definidas en Django, pero desde un script python (o sea, 'fuera' de la aplicación web donde están los modelos).

http://www.cotellese.net/2007/09/27/running-external-scripts-against-django-models/

miércoles, 12 de septiembre de 2007

Tomcat, Apache y "All threads (200) are currently busy"

Por alguna cuestión cuyo origen no he podido detectar, me ha traido muchos problemas un apache que se conecta a Tomcat (JBoss 4) utilizando AJP. Luego de unos días, Tomcat empezó a generar estos mensajes de error:

ERROR [org.apache.tomcat.util.threads.ThreadPool] All threads (200) are currently busy, waiting. Increase maxThreads (200) or check the servlet status

Pero definitivamente el problema no está en la cantidad de threads necesarios para servir el sitio, sino que por alguna razón las conexiónes quedaban "ocupadas", y en la página de status de Tomcat aparecían todos los threads como en "Stage KeepAlive"...
La solución es bastante sencilla, sólo hace falta configurar el timeout (connectionTimeout) en el contector AJP:

<!-- A AJP 1.3 Connector on port 8009 -->
<Connector port="8009" address="${jboss.bind.address}" emptysessionpath="true" enablelookups="false" redirectport="8443" protocol="AJP/1.3" connectiontimeout="60000">
</Connector>


Seteando el timeout en 60 segundos solucioné el problema.