Sei sulla pagina 1di 14

Alumno: JULIO CESAR RODRÍGUEZ

ACTIVIDAD: AA10-Ev2-Manejo de transacciones, bloqueos y control de concurrencia

1. Elaborar 2 transacciones diferentes insertando, actualizando o eliminando registro de esta


base de datos, todas estas transacciones deben quedar abiertas, tomar impresione de
pantalla de la consulta de la variable que almacena las transacciones activas y copiar el
código de las 2 transacciones como evidencia.

2. Abrir una consulta nueva en SQL Server 2008 R2 y escribir el siguiente comando COMMIT
TRANSACTION y verificar de nuevo la cantidad de transacciones activas y determinar que
hace este comando en la base de datos SecSalud.
una transacción es un conjunto de operaciones tratadas como una sola. Este conjunto de
operaciones debe marcarse como transacción para que todas las operaciones que la
conforman tengan éxito o todas fracasen.

La sentencia que se utiliza para indicar el comienzo de una transacción es 'BEGIN TRAN'. Si
alguna de las operaciones de una transacción falla hay que deshacer la transacción en su
totalidad para volver al estado inicial en el que estaba la base de datos antes de empezar.
Esto se consigue con la sentencia 'ROLLBACK TRAN'.

Si todas las operaciones de una transacción se completan con éxito hay que marcar el fin de
una transacción para que la base de datos vuelva a estar en un estado consistente con la
sentencia 'COMMIT TRAN'.

3. Que sucede al hacer una consulta de todos los datos de la tabla EPS si anteriormente se
ejecuta el siguiente comando: 
BEGIN TRANSACTION INSERT 
INTO EPS (ideps, nombre, estadoeps) 
VALUES (15,’confisena’,1)  '
Para la cancelación de la transacción anterior ¿qué comando se debe utilizar?.
error: Cannot insert explicit value for identity column in table 'EPS' when IDENTITY_INSERT is
set to OFF. 

sql server no permite insertar datos a llaves primarias de forma normal se utiliza el comando
SET IDENTITY_INSERT EPS para solucionar el problema

BEGIN TRANSACTION 
SET IDENTITY_INSERT EPS ON 
INSERT INTO EPS (ideps, nombre, estadoeps) 
VALÚES (15,'confisena',1)

4.Que le falta a la siguiente transacción para que se efectúen los cambios en la base de datos
Secretaria de Salud.

BEGIN TRANSACTION
INSERT INTO persona (idPersona, tipoidentificacion,  nombre, apellido, fechaNacimiento,
sexo) 
VALUES (1112548, 1, 'Pedro', 'Garcia', 1982-01-27, 'M');
INSERT INTO EPS (nombre, estadoeps) 
VALUES ('confinacional',4);
se agrega el comando SET IDENTITY_INSERT [tabla] ON, para que esta transacción pueda
correr

BEGIN TRANSACTION
SET IDENTITY_INSERT EPS ON
INSERT INTO Persona (idPersona, tipoidentificacion, nombre, apellido, 
fechaNacimiento, sexo)
VALUES (111245548, 1, 'Pedro', 'Garcia', 1982-01-27, 'M')
INSERT INTO EPS (ideps, nombre, estadoeps)
VALUES (16,'confiacional',4) 
5. En el siguiente cuadro especificar para cada tipo de transacción si es implícita, explicita o
automática. 
6. Abra una nueva consulta.   Use la base de datos Secretaria de Salud En una nueva consulta
ejecute sp_lock y revise los resultados.

Abra informe de transacciones de bloqueo para verificar que no hay ningún bloqueo activo.
Clic derecho en su bd -> informe -> informe estándar → Todas las transacciones de bloqueo.
BEGIN TRAN
PRINT 'Transacciones Activas'
SELECT @@TRANCOUNT
SELECT * FROM EPS
BEGIN TRAN
PRINT 'Actualizamos la tabla EPS'
SELECT * FROM EPS
UPDATE EPS SET nombre = 'SALUDCOOPx' WHERE nombre =
'SALUDCOOP'
PRINT 'Miramos la actualización'
SELECT * FROM EPS WHERE ideps = 1
PRINT 'Transacciones Activas'
PRINT @@TRANCOUNT
SELECT * FROM EPS
PRINT 'Identificador de bloqueo'
SELECT @@spid
ROLLBACK TRANSACTION

al correr esta transaccion y al enviar las 3 consultas se presento un bloqueo en la consulta


select * from eps esta se quedo en un loop, para solucionar el problema se agrego la
instrucción ROLLBACK TRANSACTION, desbloqueo el proceso y le dio continuidad a la consulta
Consulta de lectura.
Escritura
JMETER 

Creacion del plan

Luego se define la conexión jdbc:


definen las peticiones a la base de datos, 

Peticion 1

Peticion 2
Peticion 3

Luego se anexa el componente grafico: 


Aquí una vez dato el Play en ejecutar, vemos como el grafico comienza a tener cambios y ver
los resultados de las transacciones o consultas de forma graficas definida en los hilos de
conexión. 

Potrebbero piacerti anche