Conectar Java (JDBC) a Oracle RAC

octubre 25th, 2012

Lo normal es que nuestras conexiones JDBC esten dadas a través del String URL de la siguiente forma

jdbc:oracle:thin:@HOST:1521:SID

En Oracle 10g me dio buenos resultados (ante el error ORA-12505)

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)
(ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=host2) (PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service)))

Pero en 11g la documentación dice

jdbc:oracle:thin:@HOST:1521/SID

Con lo que ha funcionado completamente (notese que antes del SID los dos puntos cambia por slash).

HTML y AMF

octubre 24th, 2012

Desde hace un tiempo que se viene concretando la caída en el apoyo a la tecnología Adobe Flex, por otras emergentes a la mano de HTML 5, al punto que Adobe traspaso el dominio del codigo a la fundación Apache para que esta se encargara de la gestión de este código.

No deja ser interesante eso si, que muchas compañías invirtieron en Flex en algunos casos más de lo necesario para contar con esta tecnología de la mano de Adobe, y hoy estan pensando en mudarse a HTML 5, entre otros.

Las problematicas de aplicaciones que optaron por Webservices o JSON para la transmisión de información, no tendrán que reinventar la rueda para poder conectar sus aplicaciones HTML 5 a los ‘end points’ que utilizaron para Flex, los que si estan complicados son los que utilizaron BlazeDS para transmitir la información de retorno, esto porque el retorno de BlazeDS es en formato AMF, que optimiza la comunicación seriabilizando ésta en paquetes muchos mas pequeños que un Webservices o un JSON. La barrera de entrada para generar estas transformaciones entonces radicaban en reutilizar los ‘end points’ de AMF, lo que se logra a través de un Javascript que fue liberado hace bastante tiempo ya.

Puedes ver el javascript aqui y la página de su creador.

Ser o no ser Arquitecto de Software

octubre 24th, 2012

¿De que se habla cuando se dice Arquitectura de Software?
¿Por que se necesita?
Al punto que una jefa de recurso humanos de una compañía de desarollo de Software me hizo derechamente la pregunta ¿Porque necesitamos un arquitecto? cuando le presente mi cargo como «Arquitecto»… aun cuando creo que ella inicialmente pensó en construcción y no en software.

La verdad es que de vez en cuando veo una tras otra definicion, algunas de las cuales no me hacen más que reír, y otras reflexionar. Dentro de esta última un articulo interesante es ¿Quién necesita un arquitecto?.

Con esto quiero comenzar una serie de artículos relacionados a la arquitectura de software, que es lo que es, y como se relaciona el arquitecto con el desarrollo de aplicaciones.

Un capturador de video para demos de aplicaciones

octubre 22nd, 2012

Uno de las necesidades que poseemos los desarrolladores, es capturar un video de la aplicación que es mucho mejor explicar visualmente que a través de texto, ya que en muchos casos la lectura puede hacerse engorrosa debido a que muchas veces no existen las palabras adecuadas para explicar una aplicaon.

Existen varios capturadores para este tipo de presentaciones, a saber:

Camtasia
Captivate

con diferentes costos, pero para quienes estan buscando algo gratuito y bueno es Jing

https://www.techsmith.com/jing.html

Que inmediatamente queda al tope sobre otros gratuitos como el camstudio por la calidad de lo que generan, independientemente de esto, es obvio que tanta maravilla termina al poner al final un enlace a Jing y su descarga.

Como iniciar Enterprise Manager en Oracle 11g

octubre 18th, 2012

El comando para iniciar es

emctl start dbconsole

Esto, asumiendo que esta todo configurado debiese iniciar correctamente.

impdp con cambio de tablespace

octubre 18th, 2012

La costumbre de la exportacion e impotacion con la base de datos Oracle se basaba en el uso de los comandos exp e imp respectivamente. Estos comando tienen cambios en la version 11g, que segun la documentación ayudan a la performance de Oracle, por ejemplo en la version Enterprise de Oracle Database el comando exp, no exporta las tablas cuando estas no tienen registros debido a que no tienen espacio asignado, por lo que hay que hacer un truco para que estas se puedan exportar.

Se crearon para esta versión los comando expdp e impdp, que se utilizan «casi» de la misma forma que los tradicionales, ejemplo de exportacion

expdp schemas=scott directory=export dumpfile=backup.dmp logfile=backup.log compression=all

En este caso export es un directorio que previamente debe ser creado en oracle de la siguiente forma

$ sqlplus /nolog 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 17 13:39:30 2012
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> create or replace directory export as '/opt/oracle/data';
Directory created.
SQL> grant read, write on directory export to GPI;
Grant succeeded.
SQL> exit

Para luego hacer la importacion.

 impdp user/password@sid directory=export dumpfile=backup.dmp logfile=backup.log 

Que en muchos de los casos es suficiente, pero para algunos como yo, que tiene ordenado cada usuario con su respectivo tablespace tiene la necesidad de «remapear» los tablespace de a los existentes dentro de la instancia actual añadiendo la clausula REMAP_TABLESPACE

 impdp user/password@sid directory=export dumpfile=backup1.dmp logfile=backup.log remap_tablespace=TS_SCHEMA_SDAT:SCHEMA_DAT,TS_SCHEMA_SIDX:SCHEMA_IND