L.I.A. Aldo Sampé Salcedo Welcome to Alien Systems
Universidad Simón Bolívar.
Maestría en Ciencias Computacionales y Administración de la Tecnología.
L.I.A. Aldo Sampé Salcedo
Dr. Raúl Morales Salcedo
Encyclopedia
Capitulo 4
Manejando los Procesos
Para poder mencionar aspectos de los procesos tenemos que indicar que hay 2 tipos de procesos
Proceso de servidor dedicado: que nos hace referencia a solo un proceso par un usuario.
Compartición de servidor de procesos: Puede atender multiples sesiones en proceso.
En nuestra configuración siempre esta disponible y abilitada la seccion de servidor dedicado, sin embargo
nosotros debemos especificar la configuración y abilitar el compartir servidor y procesos.
Servidor dedicado de Procesos.
En nuestro ejemplo 2 procesos de usuario estan conectados a la Base de Datos a traveś del servidor dedicado de procesos y estos son paralelos
cuando estan corriendo simultaneamente.
Servidor de procesos compartidos.
Para este caso el Usuario de conecta al despachador ya que este soporta multiples conecciones al mismo
tiempo y cada conexio es como un circuito virtual y se puede considerar como un pedazo de memoria
compartida y cuando es requerida se le manda a llamar ya que se encuentra en la queue.
Coneccion con el sistema de Pool
Database Resident Connection Pooling (DRCP)
Nos provee de un tipoco sistema web para poder manejar el pool para que se pueda realizar la repartición
entre los proceso. Este tipo de arquitectura es muy relevante con los multiprocesos.
Algunas de las restricciones sobre el sistema en cuestion del Pool.
Shut down the database.
Stop the database resident connection pool.
* Change the password for the connected user.
* Use shared database links to connect to a database resident connection pool that is
* On a different instance.
* Se all Advanced Security Option (ASO) options such as encryption, certificates,and so on.
* Use migratable sessions on the server side directly by using the OCI_MIGRATE
* option or indirectly via OCIConnectionPool.
Configuración del Servidor compartido de Oracle.
Compartir los recursos de memoria, Esto no se necesita configurar antes dela inicializacion del sistema
dentro de nuestro archivo de parametros. Pero lo mas recomendable es que lo inicialicemos desde un
principio para no tener algun problema mas adelante.
Dentro de estos parametros es donde podemos configurar las opciones deseadas.
SHARED_SERVERS: especifica el numoer inicila de server a compartir y podemos especificar cuantos user son a los que podemos compartir la conección.
AX_SHARED_SERVERS: Especifica el maximo numoer de serverdores a compratir.
SHARED_SERVER_SESSIONS: Especifica el total de server a compartir.
DISPATCHERS: Configura el al despachador para compartir los procesos.
Limitando el Número de sesiones a compartir por el server.
SHARED_SERVER_SESSIONS no especifica el número maxico de sesiones actuales a compartir por medio del server.
Este parametro no tiene un valor asignado por default.
Configuración del Desapachador
El despachador por inicialización tiene los parametros y podemos configurarlo para que pueda compartir
mas sesiones. Mediante la orden.
dispatchers="(PROTOCOL=tcp)"
Que la podemos definir dentro de SHARED_SERVER
Podemos forzar al despachador para uqe pueda usar un puerto especifico con la siguiente sitaxis
DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5000))"
DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5001))"
Para poder apagar procesos de los despachadores especificos.
Se puede realizar con el ALTEER SYSTEMS y puedes dejar la sesion que sea solo quqe hace falta
especifirla y la podemos ver con V$DISPATCHER que es un vista especial para ver los procesos.
SELECT NAME, NETWORK FROM V$DISPATCHER;
ALTER SYSTEM SHUTDOWN IMMEDIATE 'D002';
Iniciando la Base de Datos con una coneccion recidente del Pool
Podemos iniciar la Base de Datos con:
SQL> EXECUTE DBMS_CONNECTION_POOL.START_POOL();
Y para poder desabilitarla usamos:
SQL> EXECUTE DBMS_CONNECTION_POOL.STOP_POOL();
Para poder terminar sesiones dentro de la Base de Datos.
ALTER SYSTEM KILL SESSION '7,15';
Sierra la sesion 7 con numero de serie 15.
Y si queremos ver que sesion es la que acaba de termianr podemos ejecutar este query.
SELECT SID, SERIAL#, STATUS
FROM V$SESSION
WHERE USERNAME = 'JWARD';
SID SERIAL# STATUS
----- --------- --------
7 15 ACTIVE
12 63 INACTIVE
Para poder terminar una sesion activa.
Este es el mensaje que nos arroja cuando una sesion aun esta activa
ORA-00028: your session has been killed
Y para poder comprobarlo nos da este mensaje.
ORA-01012: not logged on