Url de conexión JDBC a Oracle RAC

Recientemente uno de nuestros entornos ha migrado a Oracle RAC y hemos tenido el problemilla que os detallo a continuación.

Parece ser que en Oracle RAC la URL de conexión a la BBDD mediante JDBC no permite una de sus versiones clásicas. Así por ejemplo una conexión del estilo:

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

no funciona saltando la siguiente excepción:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
...

Para solucionarlo podemos utilizar la otra forma corta de url que aparece por ejemplo en este listado de formatos de conexión JDBC (en inglés ):

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

También podemos utilizar una URL en formato largo:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST>(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<SID>)))

Si tenemos varios servidores deberíamos poner una URL en el siguiente formato:

jdbc:oracle:thin:@<HOST1>^<HOST2>:1521:<SID>

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=<SID>)))

aunque esto último no lo he podrido probar lo he visto en el JUG de Padova (en inglés ).

Espero que le pueda servir de ayuda a alguien.

29 abril 2010 at 11:45 am 3 comentarios

Redondeando en Java

Si os habéis encontrado alguna vez con la necesidad de redondear un número en Java, habréis visto que no existe un método directo para hacerlo

A veces se hace multiplicando pasando a entero y dividiendo, pero no es una forma fiable.

La forma de hacerlo sería mediante el método setScale de la clase java.math.BigDecimal:


public static double round(double value, int decimalDigits) {
	BigDecimal bd = new BigDecimal(value);
	bd = bd.setScale(decimalDigits, BigDecimal.ROUND_HALF_UP);
	return bd.doubleValue();
}

Tenemos varias opciones a la hora de redondear que podemos ver en la documentación de BigDecimal.

Espero que os ayude.

27 febrero 2010 at 12:54 am Deja un comentario

Alerta de contenido no seguro en Internet Explorer

Estábamos desplegando una aplicación en un servidor seguro y al probar con Internet Explorer recibíamos en todas las páginas el siguiente mensaje.

Este mensaje indica que en la respuesta a nuestra petición segura https se acceden algunas partes mediante el protocolo no seguro http. Esto es un riesgo de seguridad y por eso nos alerta.

Tras varias pruebas intentando localizar el contenido no seguro di con una gran entrada de Eric Lawrence sobre el tema del contenido no seguro ( en inglés) que me ayudó a solucionar el problema.

Por un lado desde el punto de vista del navegador podemos hacer que no nos aparezca la ventanita. Evidentemente no es la solución óptima el obligar a que el navegador no nos muestre un aviso de seguridad, pero para un aprieto (una demo por ejemplo) nos puede ayudar. Para ello abrimos las opciones del navegador («Herramientas->Opciones de Internet») y vamos a la pestaña de «Seguridad». En la parte de «Internet» pulsamos «Nivel personalizado…» y buscamos la opción de «Mostrar contenido mixto». Cambiamos de «Preguntar» a «Habilitar».

Como desarrolladores debemos preocuparnos de que si nuestra aplicación va a ejecutarse bajo https nuestras páginas no llamen a contenido no cifrado. Para descubrir si hacemos peticiones http podemos utilizar el Web Developer para Firefox o una buena herramienta que también descubrí gracias al post mencionado anteriormente como es Fiddler.

En nuestro caso y tras ver que no hacíamos ninguna llamada http descubrimos que lo que ocurría es la posibilidad que señala Eric en su sitio. Parece ser que Internet Explorer marca como contenido no seguro una llamada a JavaScript del estilo:

<br />
&lt;script type=&quot;text/javascript&quot; id=&quot;contentloadtag&quot; src=&quot;javascript:void(0)&quot; &gt;<br />

Con eliminar el parámetro src se solucionará el problema. Una de las librerías JavaScript que utilizábamos tenía una llamada de ese tipo.

Espero que os sea útil.

15 enero 2010 at 9:06 pm 2 comentarios

Entradas anteriores Entradas siguientes


Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Feedjit

Feeds

Otros…

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites