29 noviembre 2010

Como integrar JDBC-tools sobre un datasource dentro de JBoss AS 5.1

En este post se explica una forma de integrar la herramienta JDBC-tools con el servidor JBoss para el uso de datasource manejados por éste.

El fin de esta integración es poder loguear las ejecuciones realizadas por el datasource, el cuál utiliza la aplicación, sobre el driver de la base.
El ambiente, sobre el cual se ha realizado/comprobado esta configuración, consta de las siguientes herramientas:

  • JBoss Application Server 5.1.0
  • JDBC-tools 1.1.1
  • JDK 1.6 update 17 a 20



Pasos a seguir:



Paso 1.
Conseguir la herramienta JDBC Tools la cual puede descargarse de su sitio http://jdbc-tools.sourceforge.net.


Paso 2.
Dentro del distribuible se encuentran los archivos que se deben incluir en el servidor de la siguiente manera,


Paso 3.
Ubicar las librerías jdbc-tools y jdbc-listener en el directorio del servidor server\\lib.


Paso 4.
Ubicar los archivos de configuración jdbc-tools.properties y jdbc-listener.properties en el directorio server\\conf.


Paso 5.
Modificar el archivo jdbc-listener.properties como se muestra más adelante en el punto jdbc-listener.


Paso 6.
Modificar el archivo jdbc-tools.properties como se muestra en el sub-punto jdbc-tools.


Paso 7.
Modificar la definición del datasource como se ejemplifica en el punto Datasources<./p>

Una vez realizados estos pasos, toda ejecución sobre el driver, a través del datasource en cuestión, se logueará en un archivo de nombre jdbc-logging.log en el directorio bin del servidor. Notar que se realiza un respaldo automático de este archivo, cada vez que se vuelve a iniciar el servidor, en archivo con el mismo nombre a los que se le concatena la fecha y hora.

Aquí debajo se detallas los archivos mencionados en los pasos anterios.


JDBC-listener.properties

En este archivo deben estar definido únicamente las siguientes variables.



jdbc.listener.classes: com.facdatum.jdbc.logger.JDBCLogger
driver.delegate: oracle.jdbc.driver.OracleDriver
datasource.delegate: java:Delegate (sustituir por el nombre del datasource a través del cual se conecta la aplicación)
datasource.props: serverName:localhost,portNumber:1521
jndi.factory: org.jnp.interfaces.NamingContextFactory
jndi.context.url: jnp://localhost:1099


JDBC-tools.properties

En este archivo deben estar definido únicamente las siguientes variables.

jdbc.listener.classes: com.facdatum.jdbc.logger.JDBCLogger
driver.delegate: oracle.jdbc.driver.OracleDriver
datasource.delegate: java:Delegate (sustituir por el nombre del datasource a través del cual se conecta la aplicación)
datasource.props: serverName:localhost,portNumber:1521
jndi.factory: org.jnp.interfaces.NamingContextFactory
jndi.context.url: jnp://localhost:1099
driver.path oracle14.jar
driver.class oracle.jdbc.driver.OracleDriver
driver.url jdbc:oracle:thin:@localhost:1521:XE
driver.user nombre de usuario en la base de datos
driver.password password del usuario en la base de datos
valores por defecto para las variables: jdbc.include, jdbc.exclude, app.include, app.exclude, jdbc.duration.filter.limit, jdbc.duration.filter.change, jdbc.duration.store.filepath, log.levels, log.path, log.filename, call.include, call.exclude y jdbc.planner.repeat.



Datasources
<local-tx-datasource>
<jndi-name><datasource_nombre></jndi-name>
<connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name><db_usuario_nombre></user-name>
<password><db_usuario_pass></password>
<min-pool-size>5</min-pool-size>
<max-pool-size>10</max-pool-size>
<valid-connection-checker-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
</valid-connection-checker-class-name>
<exception-sorter-classname>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-classname>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>

<local-tx-datasource>
<jndi-name><datasource_nombre></jndi-name>
<connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url>
<driver-class>com.facdatum.jdbc.listener.driver.DataSourceListener</driver-class>
<user-name><db_usuario_nombre></user-name>
<password><db_usuario_pass></password>
<min-pool-size>5</min-pool-size>
<max-pool-size>10</max-pool-size>
<exception-sorter-classname>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-classname>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>


23 noviembre 2010

Error de certificado omega.contacts.msn.com en Pidgin

Para aquellos que usan Pidgin, aquí les dejo un link a la página donde encontré la solución para el error de certificado omega.contacts.msn.com, el cual es causa y consecuencia de que no podamos acceder a nuestras cuentas de mail.live.com o hotmail.com.


Fix Pidgin (MSN) Omega.contacts.msn.com Certificate Errors

A continuación agregaré la traducción para la solución.



[...] Si ud usa Pidgin con MSN, probablemente se habrá topado reiteradas veces con el error de certificado "omega.contacts.msn.com" estos últimos días. Bueno, aquí encontrará el cómo solucionarlo.

1. Descargue éste certificado omega.contacts.msn.com.

2. En Pidgin, vaya al menú Herramientas > Certificados y elimine el certificado "omega.contacs.msn.com" que ahí encuentre. Luego elija "Agregar" y agregue el certificado que descargó en el paso 1 y cuando le pida el nombre de servidor ingrese el siguiente (sin las comillas): "omega.contacts.msn.com"


Pidgin arreglo omega.contacts.msn.com

Ahora de OK y eso es todo!. [...]


Actualización: Si bien la solución funciona sin mayores problemas, sucedía que cada vez que uno iniciaba sesión debía volver a agregar el certificado. Para solucionar esto simplemente deberemos copiar el certificado omega.contacts.msn.com al directorio .purple/certificates/x509/tls_peers, por ej. ejecutando el siguiente comando,

mv omega.contacts.msn.com .purple/certificates/x509/tls_peers


16 septiembre 2010

Instalar Oracle SQL Developer en Ubuntu

En este post se explica una manera de instalar la herramienta Oracle SQL Developer en Ubuntu.

Ésta es una potente herramienta gráfica gratuita para desarrollar con bases de datos, la cual corre sobre java. Por esto último y antes de seguir con esta guía, debemos verificar si se tiene instalada una versión de JRE según necesite la versión de SQL Developer que instalemos (lo cual pueden saberlo accediendo al archivo relnote.html que viene junto a la herramienta).

Para verificar la JRE instalada puede correrse el comando que se resalta en el siguiente ejemplo.

vos@equipo:~$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)


Ahora, si no se cuenta con una versión de SQL Developer se puede descargar de su sitio oficial en Oracle.com, al cual puede accederse directamente con este link.


Una vez que hayamos conseguido el zip deberemos descomprimirlo en el directorio /usr/lib/sqldeveloper, que bien se podría optar por uno diferente pero debe tenerse presente que la explicación se realiza sobre el mismo. Esto debe hacerse con permisos de root así que, suponiendo que ubicamos el zip en el escritorio, una manera de hacerlo sería con el siguiente comando,

sudo unzip -q ~/Desktop/sqldeveloper--no-jre.zip -d /usr/lib
.
Luego debemos darle permisos de ejecución al script de arranque sqldeveloper.sh,
sudo chmod +x sqldeveloper.sh



A fin de poder correr la herramienta como una aplicación cualquiera por parte de cualquier usuario, primero modificamos el script de arranque que se recién se mencionó. Este tiene el siguiente contenido,

#!/bin/bash
cd "`dirname $0`"/sqldeveloper/bin && bash sqldeveloper $*

del cual modificaremos la segunda línea como se muestra aquí,
#!/bin/bash
cd /usr/lib/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*


Y segundo, crearemos un link a este en el directorio /usr/bin así,
sudo ln -s /usr/lib/sqldeveloper/sqldeveloper.sh /usr/bin/sqldeveloper




Llegado a este punto, nos encontramos en condiciones de probar si la aplicación levanta sin mayores complicaciones. Para probar bastaría con correr el comando que sqldeveloper que recién se definió pero antes de esto debemos tener presente que, para levantar, el script de arranque busca la variable de entorno JAVA_HOME. Si este se encuentra definido a nivel de batch (que se puede comprobar con el comando export | grep JAVA_HOME) no habrá problema alguno. Pero sí puede suceder que no este definida y que el script no ubique los directorio "clasicos" donde podría estar instalada.
Para esto veremos una forma de indicarle al script el directorio de la maquina java modificando la propia configuración de la herramienta para aprender un poco más de ésta, y no así una correcta definición de la variable de entorno que explicaré próximamente en otro post.
Así primero veremos los directorios de las maquinas java que tenemos instalados utilizando el comando como se muestra en el ejemplo,

$ update-alternatives --list java
/usr/lib/jvm/java-6-openjdk/jre/bin/java
/usr/lib/jvm/java-6-sun/jre/bin/java

De estas utilizaremos la segunda opción en este ejemplo.
Ahora editaremos el archivo /usr/lib/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf modificando la línea que es bastante intuitivo entender lo que hace
SetJavaHome ../../jdk

por esta otra con lo cual nos aseguramos de dejar la herramienta funcionando
SetJavaHome /usr/lib/jvm/java-6-sun



Hecho esto no habría que poner más reparos en la instalación de la herramienta pero para facilitar aún más el acceso, agregaremos una entrada en el menú Applications \ Programming.
Lo primero entonces es crear un archivo de nombre sqldeveloper.desktop, que ubicaremos en el escritorio, con el siguiente contenido,
[Desktop Entry]
Encoding=UTF-8
Name=SQL Developer
Comment=Oracle SQL Developer
Categories=Development;
Hidden=false
Icon=/usr/lib/sqldeveloper/icon.png
Exec=sqldeveloper
Terminal=false
Type=Application

Notar que en este se indica que se levantará el SQL Developer ejecutando el comando sqldeveloper que hemos creado en el paso anterior.

Y segundo lo moveremos con permisos de root al directorio /usr/share/applications con el siguiente comando por ejemplo,

sudo mv ~/Desktop/sqldeveloper.desktop /usr/share/applications



Nro de visita Cantidad de visitas recibidas