Tengo una pregunta sobre el uso general de la declaración preparada junto con la agrupación de conexiones.Declaraciones preparadas junto con Connection Pooling
Las declaraciones preparadas generalmente están vinculadas a una sola conexión. En nuestra aplicación, un estado preparado se crea al inicio y se ejecuta en un momento posterior.
Si en el momento de la ejecución de una determinada declaración preparada específica, la conexión asociada a la declaración preparada está ocupada ejecutando otras declaraciones de cómo se ejecutará esta declaración requerida. ¿Esta instrucción esperará a que la conexión se libere o esta afirmación tener preferencia en la ejecución?
actualización
que han probado esta siguiendo función SLEEP() con la base de datos Derby Apache, que llama a la función del sueño en java TimeHandlingTest clase.
CREAR FUNCIÓN DORMIR() DEVOLUCIONES INTEGER IDIOMA JAVA PARÁMETRO ESTILO JAVA SIN NOMBRE EXTERNO SQL 'com.derby.test.TimeHandlingTest.sleep';
Y realizó dos declaraciones preparadas desde una conexión y llamó a la función Sleep() desde una instrucción preparada y una simple sql select con otra. La selección simple sql tomó casi el mismo tiempo (10s) para la cual la primera declaración preparada estaba durmiendo. Esto significa que un objeto de conexión no puede ser usado para ejecución por más de una declaración preparada a la vez. Por favor corrígeme si estoy equivocado.
¿Su código se está ejecutando en un servidor de aplicaciones? La respuesta varía cuando utiliza un DataSource en lugar de un DriverManager para obtener la conexión. –
@Vineet: Nuestra aplicación es una aplicación Java simple que no se ejecuta en el servidor de aplicaciones. Estamos recibiendo conexiones del administrador del controlador. –