22
Oct

Java Day 2013, Guatemala.

El 9 de noviembre se llevará a cabo el evento "Java Day 2013" en el territorio Guatemalteco, en este evento se encontrarán varios conferencistas con experiencia en Java, tales como David Recinos Orellana, Jorge Alejandro Cajas Mota, Jorge Mota, Marco del Cid, Walter Barrios y Wences Aran. 
En este evento tendré la oportunidad de compartir la conferencia "Grid de JVM's para aplicaciones java con Oracle Coherence", la conferencia trata sobre utilizar Oracle Coherence para poder armar redes de Maquinas Virtuales de Java en diferentes arquitecturas dependiendo si se necesita aumentar el rendimiento de las escrituras o lecturas. Una vez formada la red de JVMs las aplicaciones java pueden hacer uso de ella para poder almacenar sus objetos y así no depender de los contenedores del servidor de aplicaciones que estén utilizando. En Oracle WebLogic 12c los Managed Servers pueden enlazarse con Oracle Coherence para proporcionar una alta disponibilidad de los datos así también la red de JVMs puede utilizarse para almacenar objetos programáticamente.
 
La agenda del evento la pueden encontrar en este link:  http://www.guate-jug.net/jday13/agenda/
 
java day
Facebooktwitterlinkedinmailby feather
7
Oct

cursor: pin S wait on X

Hace unos días me encontré con un ambiente RAC 11.2 de 3 nodos en cual el evento "Cursor: pin S wait on X"  sobrepasaba los límites comúnes de espera en el Grid Control.

img1

Sintomas:

  • No se encontraron bloqueos en ninguno de los 3 nodos.
  • Dentro de la sección de Performance del Grid Control aparecía una sola consulta que generaba aproximadamente el 97% de este evento de espera. La consulta era parecida a lo siguiente:

Select campo1, campo2, campo3 from target;

  • Al revisar qué tipo de objeto era "target" me dí cuenta que era de tipo vista. 
  • Revisé qué texto era el que conformaba dicha vista, el texto era parecido al siguiente:

select campo1, campo2, campo3, campo4 from tabla@mydblink;

  • Al revisar los datos con los que fué creado el database link "mydblink" se encontró que el database link estaba apuntando a una base de datos que no estaba arriba. 

Causa:

Al realizar una consulta utilizando un dblink el cliente espera durante varios segundos hasta recibir un "time out". Al haber varios clientes consumiento el mismo database link, es ahi donde generan las esperas de tipo "Cursor: pin S wait on X". La causa es que la base de datos que consume el database link no se encuentra ejecutandose.

Solución:

Levantar la base de datos a la que apunta el database link.

Al levantar el servicio de la base de datos la grafica de "Concurrencia" dentro de la sección "Performance" en el Grid Control sufrió un corte radical.

img2

 

Facebooktwitterlinkedinmailby feather
2
Oct

Oracle 12c: Data Redaction

Oracle 12c cuenta con la nueva característica llamada "Oracle Data Redaction", esta característica no debe de ser confundida con "Oracle Data Masking" pues son totalmente diferentes. Oracle Data Masking "disfraza" los datos a nivel físico, mientras Oracle Data Redaction "disfraza" los datos en tiempo de ejecusión sin afectar el rendimiento.

Oracle Data Redaction trabaja con Politicas similarmente a la Auditoria en 12c.

Las politicas para disfrazar los datos son varias, por mencionar algunos ejemplos: Las politicas pueden ser aplicadas a un usuario, a varios usuarios, a una tabla completa o solamente a una columna. Se puede disfrazar los datos mediante una "expresión regular" (¿Te acuerdas de los compiladores?), puede ser un disfraz completo o un disfraz parcial. 

Un ejemplo de un disfrazado de datos completos sería:

Dato Original: Deiby Gomez

Dato Disfrazado: c<Md>

Un ejemplo de un disfrazado parcial sería:

Dato Original: Deiby Gomez

Dato Disfrazado: Deiby<Md>

data redaction

 

 

 

 

 

 

 

 

Si necesitan ampliar sus conocimientos sobre ésta nueva característica sugiero visitar la documentación oficial de Oracle: http://docs.oracle.com/cd/E16655_01/appdev.121/e17602/d_redact.htm

Ahora, pasemos a la práctica:

 

Creación de tabla con sus elementos:

[oracle@orcl12c ~]$ sqlplus dgomez@pdb1

SQL*Plus: Release 12.1.0.1.0 Production on Wed Oct 2 11:10:05 2013

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter password:
Last Successful login time: Wed Oct 02 2013 11:09:49 -06:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> show con_name

CON_NAME
——————————
PDB1
SQL>

SQL> create table dgomez (id integer not null primary key, first_name varchar2(20), last_name varchar2(20));

Table created.

SQL> insert into dgomez values(1,'Deiby','Gomez');

1 row created.

SQL> insert into dgomez values(2,'Ivan','Garcia');

1 row created.

SQL> insert into dgomez values(3,'Daniel','Cacia');

1 row created.

SQL> commit;

Commit complete.

Creación de la Politica para Disfrazar los datos:

[oracle@orcl12c ~]$ sqlplus sys@pdb1 as sysdba

SQL> show con_name

CON_NAME
——————————
PDB1


BEGIN
DBMS_REDACT.ADD_POLICY(OBJECT_SCHEMA =>'DGOMEZ',
OBJECT_NAME =>'DGOMEZ',
POLICY_NAME =>'Mi_Politica',
EXPRESSION =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'')=''DGOMEZ''',
COLUMN_NAME =>'FIRST_NAME',
FUNCTION_TYPE=>DBMS_REDACT.RANDOM);
END;
/


PL/SQL procedure successfully completed.

SQL> SELECT POLICY_NAME FROM REDACTION_POLICIES;

POLICY_NAME
——————————————————————————–
Mi Politica

Consultar los datos con un usuario diferente a DGOMEZ, en este caso "SYS":

SQL> select * from DGOMEZ.DGOMEZ;

        ID FIRST_NAME           LAST_NAME
———- ——————– ——————–
         1 Deiby                Gomez
         2 Ivan                 Garcia
         3 Daniel               Cacia

Consultar los datos con el usuario DGOMEZ y comprobar los datos disfrazados:

[oracle@orcl12c ~]$ sqlplus dgomez@pdb1


SQL>  select * from dgomez.dgomez;

        ID FIRST_NAME           LAST_NAME
———- ——————– ——————–
         1 @jpwd                Gomez
         2 4Qy*                 Garcia
         3 r:N$6N               Cacia

Agregar la columna "LAST_NAME" al proceso:

[oracle@orcl12c ~]$ sqlplus sys@pdb1 as sysdba

BEGIN
DBMS_REDACT.ALTER_POLICY(OBJECT_SCHEMA=>'DGOMEZ',
OBJECT_NAME=>'DGOMEZ',
POLICY_NAME=>'Mi_Politica',
ACTION=>DBMS_REDACT.ADD_COLUMN,
COLUMN_NAME=>'LAST_NAME',
FUNCTION_TYPE=>DBMS_REDACT.RANDOM);
END;
/

Comprobar los datos con el usuario DGOMEZ:

[oracle@orcl12c ~]$ sqlplus dgomez@pdb1

SQL>  select * from dgomez.dgomez;

        ID FIRST_NAME           LAST_NAME
———- ——————– ——————–
         1 XW%@1                OFN R
         2 @V(J                  ~KD_C
         3 B%m7PK               c<Md>

¿Cómo habilitar una politica?

BEGIN
DBMS_REDACT.ENABLE_POLICY(OBJECT_SCHEMA => 'DGOMEZ',
OBJECT_NAME =>'DGOMEZ',
POLICY_NAME =>'Mi_Politica');
END;

¿Cómo Deshabilitar una política?

BEGIN
DBMS_REDACT.DISABLE_POLICY(OBJECT_SCHEMA => 'DGOMEZ',
OBJECT_NAME =>'DGOMEZ',
POLICY_NAME =>'Mi_Politica');
END;

¿Cómo eliminar una política?

BEGIN
DBMS_REDACT.DROP_POLICY(OBJECT_SCHEMA=>'DGOMEZ',
OBJECT_NAME=>'DGOMEZ',
POLICY_NAME=>'Mi_Politica');
END;
/

Facebooktwitterlinkedinmailby feather
1
Oct

[Security:090477]Certificate chain received from [IP] was not trusted causing SSL handshake failure

Sintomas:

Al consumir un servicio web externo desde el Oracle Service Bus el siguiente error es lanzado: [Security:090477]Certificate chain received from yourhost [IP] was not trusted causing SSL handshake failure

image002

 

 

 

 

 

Causa:

El certificado del Servicio que se desea invocar no está importado dentro del Oracle Service Bus.

Solución:

  • Descargar el Certificado del Servicio Web, esto se puede realizar mediante un navegador web, introduciendo el URI del servicio web y luego descargar el archivo del certificado.
  • Transferir el archivo de certificado al servidor en donde está instalado el Oracle Service Bus.
  • Abrir una terminal hacia el Servidor de Oracle Service Bus y ejecutar el archivo setDomainEnv.sh para establecer todas las variables de ambiente necesarias.
  • Importar el Certificado dentro del Servidor del Oracle Service Bus Mediante la siguiente sentencia:

keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass mypassword -noprompt -alias mycertificate -file /home/oracle/Certificado.cer

Donde "/home/oracle/Certificado.cer" es el certificado que se ha descargado.

  • Reiniciar el ambiente de WebLogic para que los cambios tomen efecto.

 

Facebooktwitterlinkedinmailby feather
1
Oct

Videojuego de Oracle

¡¡¡Oracle tiene un juego!!! 

Juegalo Aqui:

http://oraclerunner.com/

 

juego

Facebooktwitterlinkedinmailby feather