martes, 13 de septiembre de 2016

Abortar conexión SQL SERVER desde .NET




En ocasiones, las consultas a base de datos quedan en ejecución o en espera ocupando recursos de los servidores SQL e incluso bloqueando la base de datos, por ello, es recomendable configurar el timeout para cada consulta según su tiempo de ejecución.


En el siguiente ejemplo se muestra como configurar el timeout a través de SqlCommand:

Try                                                                                         
{                                                                        
       //Consulta SQL                                                    
var sql = "SELECT * FROM USUARIO";                                       
//Conexión SQL                                                    
using (SqlConnection connection = new SqlConnection(connString))                
{                                                                 
              //Comando para ejecutar la consulta                               
              using (SqlCommand command = new SqlCommand(sql, connection))      
              {                                                                 
                        //Configuración del Timeout                             
                        command.CommandTimeout = 1; // En segundos                    
                        //Ejecución del comando                                       
                        SqlDataReader dataReader = command.ExecuteReader();           
               }                                                                
        }                                                                
}                                                                        
catch (Exception ex)                                                     
{                                                                        
     //Al generarse una excepción por exceder el timeout, automáticamente se cancela    la consulta a base de datos                               
}      

En el ejemplo anterior, se ha configurado el “CommandTimeout” en 1 segundo, si la consulta tarda más tiempo se generará una excepción y automáticamente se cancelará la consulta a nivel de aplicación y de base de datos. 

Para no dejar conexiones o consultas abiertas, es recomendable usar “using” que automáticamente, ejecuta las sentencias close y dispose.

Consideraciones:
·         Si se configura el CommandTimeout a 0, el timeout será infinito.  El tiempo de espera será el configurado en la base de datos (Generalmente 10 minutos).
·         En caso de no configurar el timeout, el valor por defecto es de 30 segundos.

Para cerrar físicamente la conexión a base de datos, se podría utilizar “ClearPool”, en el siguiente ejemplo se usa el comando dentro del catch para que cierre la conexión si se produce algún error en la aplicación.

catch (Exception ex)
{
      SqlConnection.ClearPool(connection);
}

Etiquetas:

Gestión de repositorios GIT con GITOLITE




Para la creación de repositorios, existe un archivo llamado gitolite.conf que contiene toda la información de los repositorios y los permisos según un usuario o un grupo de usuarios.

Para la gestionar los repositorios, es necesario iniciar sesión con el usuario gitolite3, para ello:
su gitolite3
[SIN CONTRASEÑA]

Ahora debemos abrir el archivo gitolite.conf:
vi ~/gitolite-admin/conf/gitolite.conf

En el archivo aparecerán los diferentes repositorios con los permisos correspondientes a usuarios o grupos de usuarios:
repo gitolite-admin     
    RW+  =   gitadmin   
                        
repo testing            
    RW+  =   @all       
                        
repo prueba             
   RW+ = usuario1       
                        


Se encuentran creados los siguientes repositorios:
  • ·         Gitolite-admin: El usuario gitadmin tiene permisos totales.
  • ·         Testing: Todos los usuarios tienen permisos totales.
  • ·         Prueba: Solo el usuario “usuario1” tiene permisos totales.


NOTA: Para crear un nuevo repositorio se deberá crear una nueva línea en el archivo con el formato que se encuentra en la imagen anterior. Los permisos para cada repositorio se configuran con los mismos comandos que Linux (R:Solo lectura, RW: Lectura y escritura, etc.)

Se deberán guardar los cambios en el archivo.

Ahora, vamos a gitolite-admin
cd ~/gitolite-admin 

Hacemos commit de los cambios efectuados:
git commit -a -m "Se ha agregado el repositorio <nombre_repo>" 

git push 






Etiquetas: ,

Clonar repositorios GIT



Para clonar un reposito de git, debemos iniciar sesión con el usuario que trabajará con el repositorio, para ello:

su <nombre_usuario>
[Ingresar contraseña]

Establecer conexión con el servidor de git:
ssh <Servidor_Git> 

Clonar el repositorio deseado:
git clone ssh://<Servidor_Git>/<Nombre_Repositorio>






Etiquetas:

Instalar GITOLITE en CentOs7


Instalar el repositorio EPEL(Extra Packages for Enterprise Linux):

## RHEL/CentOS 7 64-Bit ##
# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
# rpm -ivh epel-release-7-8.noarch.rpm

Instalar Gitolite

yum --enablerepo=epel -y install gitolite3

Para configurar Gitolite3, debemos iniciar sesión con el usuario gitolite3:
su - gitolite3
[SIN CONTRASEÑA]

Generar la clave ssh para el administrador de GIT:
ssh-keygen -f ~/.ssh/gitadmin 
gitolite setup -pk ~/.ssh/gitadmin.pub 

Configuramos el servidor de Git para el usuario:
vi ~/.ssh/config

Agregamos lo siguiente y guardamos:
host GitServer (Cambiar)
user gitolite3
hostname 10.10.8.120 (Cambiar)
port 22 (Cambiar)
identityfile ~/.ssh/gitadmin

Ejecutamos los siguientes comandos:
chmod 600 ~/.ssh/config 
git config --global user.name "gitolite3" 
git config --global user.email "gitolite3@srv.world" 
git config --global push.default simple

Para finalizar clonamos el repositorio para el administrador:

git clone ssh://GitServer/gitolite-admin 






Etiquetas: , ,

Instalar GIT en CentOs7




Para instalar GIT en un servidor Linux bajo CentOs 7, debemos seguir los siguientes pasos:
Actualizamos los paquetes existentes, para que la última versión de GIT funcione correctamente:

yum -y update

Instalamos GIT:
yum -y install git

Configuramos el user.name y el user.email:
git config --global user.name "<nombre_usuario>"
git config --global user.email "<correo>"

Podemos ver la configuración de git:

git config –list






Etiquetas: ,