martes, 17 de diciembre de 2013

UnicastUdpSocket: Increasing the Maximum Socket Buffer Size

Hace poco estuvo configurando un cluster en coherence y me encontré con el siguiente Warning:
UnicastUdpSocket failed to set receive buffer size to 1428 packets (2096304 bytes); actual size is 145 packets (212992 bytes). Consult your OS documentation regarding increasing the maximum socket buffer size. Proceeding with the actual value may cause sub-optimal performance.
Para lo cual me di a la tarea de investigar y encontrar lo siguiente:
Para realizar el incremento en el buffer socket de memoria real y en memoria virtual en linux es necesario agregar las líneas siguientes:
# increase TCP max buffer size setable using setsockopt()
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
En el archivo  /etc/sysctl.conf  y por último reiniciar el servicio con “sysctl -p”:
a continuación puedes revisar si los valores quedaron como se les indico en el archivo de la siguiente manera:
cat /proc/sys/net/core/rmem_max
cat /proc/sys/net/core/wmem_max
de esta forma también se puede consultar dichos valores antes de realizar el cambio.
Espero les sirva, para mayor información visiten el link de la fuente.

Saludos.


jueves, 13 de septiembre de 2012

Carga de Archivos XML con Javascript compatible con todos los navegadores



Hola, una vez mas quiero aportarles un tema sencillo y básico pero que alguna vez nos ha causado molestias desarrollando aplicaciones web con javascript en los diferentes navegadores existentes, el cual consiste en la lectura de archivos xml desde javascript y recorrer los diferentes elementos utilizando DOM. 

Investigando encontré una cantidad de funciones y formas para cargar un archivo xml supuestamente compatibles con al menos tres de los navegadores mas utilizados (Internet Explorer 9, Google Chrome y Firefox) pero ninguno cumplia a cabalidad lo que deseaba, es por eso que  busqué y probé varios hasta que me encontré con la página http://www.w3schools.com de donde obtuve la siguiente función:

function loadXMLDoc(xml)
            {
                if (window.XMLHttpRequest)
                  {
                      xhttp=new XMLHttpRequest();
                  }
                else
                  {
                      xhttp=new ActiveXObject("Microsoft.XMLHTTP");
                  }
                xhttp.open("GET",xml,false);
                xhttp.send();
                return xhttp.responseXML;
            }


Con ésta función es posible cargar archivos xml con javascript, siendo éste compatible con los navegadores mencionados anteriormente (al menos con esos los probé y funcionó exitosamente) así que para utilizarlo solamente es necesario invocarlo y enviarle como parámetro el nombre o ruta del archivo xml, como se muestra a continuación:

var xmlDoc;
var nodos=null;
xmlDoc=loadXMLDoc("info.xml");
nodos = xmlDoc.documentElement.childNodes;

Con lo anterior obtenemos todos los elementos existentes dentro de un archivo xml, y se almacena en la variable 'nodos' que se podrá recorrer utilizando todas las funciones existentes de DOM. Eso era todo. Saludos!

Bibliografia:
http://www.w3schools.com/dom/dom_loadxmldoc.asp
http://www.w3schools.com/dom/dom_nodes_access.asp
http://www.w3schools.com/dom/tryit.asp?filename=try_dom_list_loop


viernes, 9 de marzo de 2012

Creación de proyectos en SONAR

Buenas tardes, después de mucho tiempo decidí retomar mis apuntes con el fin de poder recordar y a su vez poder ayudar a quienes, quizás, pasaron al igual que yo por muchos tropiezos para entender algunas cosas que se investigan en la red de redes.

Ahora si, al punto, Para aquellas personas que están utilizando o quieren utilizar SONAR como la aplicación para seguir sus desarrollos de aplicaciones y auditar su código.

Una vez es instalada la aplicación es necesario crear los proyectos que se van a auditar, existen tres formas para esto.

  1. Crear el proyecto a través de tareas de ANT.
  2. Crear el proyecto a través de MAVEN.
  3. Crear el proyecto a través del archivo sonar-runner.

Para ésta entrada me enfocare en las dos últimas.

Para crear un proyecto en SONAR con MAVEN primero (y como es de esperarse) se debe instalar MAVEN una vez descargado se deben seguir las indicaciones de su instalación.
Posterior a su instalación es necesario que el proyecto que vamos a auditar (ya sea java, php o cualquier otro tipo de proyecto) cuente con su respectivo archivo POM, si el proyecto no fue creado con MAVEN se puede crear un archivo POM con mínimo el siguiente estructura:



<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>groupID</groupId>
 <artifactId>artefactoID</artifactId>
 <name>nombreProyecto</name>
 <version>2.1</version>
 <build>
  <sourceDirectory>[ruta código fuente]</sourceDirectory>
  <outputDirectory>[ruta código compilado]</outputDirectory>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <source>1.5</source>
     <target>1.5</target>
     <excludes>
      <exclude>**/*.*</exclude>
     </excludes>
    </configuration>
   </plugin>
  </plugins>
 </build>
 <properties>
  <sonar.dynamicAnalysis>false</sonar.dynamicAnalysis>
 </properties>
</project>  

una vez se configure éste archivo, es decir, colocando el id del grupo, el id del artefacto y por último la ruta de los archivos fuente y bytecodes se debe ingresar al directorio donde se encuentra éste archivo (pom.xml) y se ejecuta el siguiente comando:
mvn sonar:sonar
éste comando se encarga de analizar el proyecto y crearlo en la base de datos de SONAR de tal manera que se  pueda auditar desde la aplicación.


La siguiente forma de analizar y crear el proyecto para ser gestionado el SONAR es descargar el proyecto sonar-runner-1.2 el cual se encarga de analizar dichos proyectos modificando el archivo
sonar-runner.properties. como se muestra en la siguiente página :  http://docs.codehaus.org/display/SONAR/Analyse+with+a+simple+Java+Runner

una vez se configure el archivo se ejecuta el archivo sonar-runner.bat desde su ubicación actual. Éste método es efectivo en los casos en los que quiera analizar código de una aplicación que conste de muchos proyectos, puesto que en el parámetro sources es posible separar diferentes ubicaciones donde se encuentre el código fuente. Es de tener en cuenta que la ruta de los fuentes debe ir hasta antes de donde empiezan los paquetes, ejemplo te tiene la siguiente ruta de un proyecto:

C:\PruebaSonar\src\java\main\co\com\pruebasonar\*.java

la línea sources debe quedar así:

sources =  C:\PruebaSonar\src\java\main\
Por último se ejecuta el archivo por lotes sonar-runner.bat desde su directorio y listo,  ésta "runner" se encarga de crear el proyecto en la base de datos de SONAR y analizarlo.

Espero les sirva mucho esto, cualquier duda me pueden contactar a mi correo electrónico.

Saludos,


Bibliografia:

http://docs.codehaus.org/display/SONAR/Use+Sonar
http://docs.codehaus.org/display/SONAR/Analyse+with+Maven
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=usarsonarsinmaven













miércoles, 12 de noviembre de 2008

Restaurar una BD MySQL desde un script sql

Algunas veces se necesita restaurar una base de datos desde un script sql, para esto hay distintos mecánismos o herramientas que lo hacen transparente al usuario final, pero que pasa si no se puede hacer utilizando un asistente? es aquí donde uno debe hacer uso de la consola, y utilizar comandos a un nivel un poco mas bajo.

mysql --password=TuClave --user=TuNombreDeUsuario -h ipServidor
basedatos
< respaldo.sql

para ejecutar este comando se debe hacer desde un shell del sistema operativo, no hay necesidad de entrar al shell del MySQL, para esto se coloca el comando mysql seguido de la contraseña y el nombre de usuario que permite conectarse al gestor de la BD (MySQL), posteriormente se especifica en que lugar se encuentra este gestor a través de su número ip, si la restauración se hace desde el mismo computador en lugar de una dirección ip se coloca localhost , a continuación se debe colocar el nombre de la base de datos sobre la cual se va a realizar la restauración (Esta BD debe existir) y por último se coloca el nombre del script sql que contiene los datos de restauración.

Eso es todo espero les sirva de algo...