martes, 31 de enero de 2017

Primera carga lenta en aplicación web asp.net sobre IIS

Cómo arreglar problema con primer carga lenta en aplicación web asp.net sobre IIS

Para quienes hayan trabajado con versiones de IIS 7 en adelante, si han tenido la mala fortuna de tener que probar ustedes mismos su aplicación a fondo, se habrán topado con el problema de la primera carga lenta de su aplicación web.

Imaginen que su aplicación está lista para ser presentada al cliente final con un primer login con el usuario del cliente y Kaboom! falla el primer request de login. Así que este problema no es para menospreciarse.

Encontré varias soluciones en internet pero debido a mi falta de tiempo apliqué el que me pareció mejor. Aquí abajo les dejo los pasos.

Basicamente consiste en desactivar el "idle timeout"

Deben tener cuidado si tienen problemas con la memoria del servidor ya que esta opción es utilizada precisamente para liberar memoria cuando la aplicación no ha sido utilizada en cierto tiempo. Si no tienen problemas de memoria pueden aplicarla sin problemas.

Solución.

  1. Ir a IIS Manager
  2. Seleccionar Application Pools del lado izquierdo
  3. Seleccionar la Application pool que tienes ligada a tu aplicación web.
  4. En el panel derecho Actions selecciona Advanced Settings...
  5. En la ventana Advanced Settings, pon el Idle Time-out (minutes) en cero (0)
  6. Reinicia tu Application pool en IIS
  7. Reinicia tu aplicación web en IIS


Les dejo abajo imagen.



Espero les sirva.





domingo, 29 de enero de 2017

Probar stored procedure de Oracle con cursor de salida en SQL Developer

Cómo probar stored procedure de Oracle con cursor de salida en SQL Developer.

Estuve buscando encontrar un problema de performance relacionado con el tiempo de respuesta de una aplicación en el momento de hacer login.

Dado que la aplicación es externa sólo puedo verificar del lado de la base de datos.

Para esto decidí verificar el tiempo de respuesta del stored procedure que realiza el login a la aplicación y para esto me vi en la necesidad de llamar al stored procedure directo desde SQL Developer y ver el tiempo de respuesta.

El stored procedure tiene un parámetro de salida de tipo cursor en el que devuelve los datos del usuario registrado que está intentando acceder.

Un punto importante es que el cursor el stored procedure es dinámico por lo que devuelve el resultado de un query variable. Por lo tanto no puedo usar el tipo de registro de una tabla existente (Tabla%ROWTYPE)

La clave aquí es definir el tipo de registro que devuelve el cursor dinámico. Campo por campo deben definir el nombre y tipo tal cual el cursor devuelve. Si les falta o sobra alguno, no va a jalar.

Aquí abajo en negritas la variable registro es definida como IS RECORD y cada campo definido uno por uno para poder hacer el FETCH con el cursor sin que haya problemas.

Les dejo la firma del stored:

PROCEDURE MI_STORED (p_status OUT NUMBER,pocResultado OUT PKG_MI_PAQUETE.defcursor, p_email IN VARCHAR2,p_password IN VARCHAR2)

SQL para probarlo:

SET serveroutput ON;
DECLARE
v_status NUMBER;
v_resultado sys_refcursor;
TYPE registro IS RECORD (ID NUMBER,NOMBRE VARCHAR(60));
v_registro registro;

v_email VARCHAR2(60);
v_password VARCHAR2(30);
BEGIN
v_email:='correo@correo.com';
v_password:='micontrasena';
PKG_MI_PAQUETE.MI_STORED(v_status, v_resultado, v_email, v_password);
LOOP
FETCH v_resultado INTO v_registro;
EXIT WHEN v_resultado%notfound;
dbms_output.put_line('ID   –>' || v_registro.ID);
dbms_output.put_line('Nombre –>' || v_registro.NOMBRE);
END LOOP;
END;


Espero les sirva.

jueves, 26 de enero de 2017

Ver fecha con horas y minutos en SQL Developer

Cómo ver la fecha con horas y minutos en SQL Developer

Por default, las fechas en SQL Developer vienen únicamente en formato MM/DD/YYYY o algo similar sólo mostrando mes, día y año.

Esto es un problema si estás consultando algún campo de tipo fecha con horas y minutos y necesitas visualizar esa información.

Los campos DATE generalmente guardan horas, minutos, segundos y milisegundos por lo menos.

Solución.

Para poder ver la fecha con horas y minutos al ejecutar tus consultas, realiza los siguientes pasos en SQL Developer.

Menu: Tools > Preferences > Database > NLS

Una vez ahí, edita el parámetro Date Format:

DD-MON-RR HH:MI:SS

O algún otro formato que necesites. Por ejemplo:

YYYY-MM-DD HH24:MI:SS

Con esto ya podrás ejecutar consultas y ver las fechas con horas y minutos en SQL Developer.

Espero les sirva.