Los cambios introducidos en la arquitectura de IDM11g nos llevan a atacar de otra forma los diferentes problemas que se pueden tener. De igual forma, el corto tiempo que lleva la versión en el mercado y su dependencia con otras herramientas, hacen difícil para quienes van empezando, que puedan detectar por donde atacar los problemas. Es por ello que en esta entrada, analizaremos diferentes errores en el arranque de nuestro dominio de IDM, las causas y su solución.
- Error en la inicialización de MDS
Mensaje de Error:
oracle.mds.config.MDSConfigurationException: MDS-01330: no se ha podido cargar el documento de configuración de MDS
MDS-01329: no se ha podido cargar el elemento "persistence-config"
MDS-01370: Configuración de almacén de datos para metadata-store-usage "ApmRoot" no válida.
ORA-06550: línea 1, columna 12:
PLS-00201: identifier 'MDS_INTERNAL_SHREDDED.GETREPOSITORYVERSION' must be declared
ORA-06550: línea 1, columna 7:
Causa: Posible mala configuración en el datasource que conecta a la base de datos, en específico del username.
Solucion: Modificar el archivo $IDM_DOMAIN/config/jdbc/apm-server-mds-jdbc.xml, en específico la propiedad «user», de forma que quede algo como:
<property>
<name>user</name>
<value>DEV_MDS</value>
</property>
- Error en la inicialización del clúster coherence
Mensaje de Error:
####<20/04/2011 12:24:32 AM CDT> <Error> <Coherence> <alien-natas> <AdminServer> <Logger@251282735 3.5.3/465p2> <<anonymous>> <> <> <1303277072116> <BEA-000000> <2011-04-20 00:24:32.116/300.434 Oracle Coherence GE 3.5.3/465p2 <Error> (thread=Cluster, member=n/a): Node /192.168.58.1:9095 is not allowed to create a new cluster; WKA list: [alien-natas.nekasys.com/127.0.0.1:9095]>
####<20/04/2011 12:24:32 AM CDT> <Error> <Coherence> <alien-natas> <AdminServer> <Logger@251282735 3.5.3/465p2> <<anonymous>> <> <> <1303277072156> <BEA-000000> <2011-04-20 00:24:32.155/300.473 Oracle Coherence GE 3.5.3/465p2 <Error> (thread=[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Error while starting cluster: java.lang.RuntimeException: Failed to start Service "Cluster" (ServiceState=SERVICE_STOPPED, STATE_ANNOUNCE)
Causa: OAM 11g utiliza Coherence para mantener las sesiones. Coherence a su vez utiliza dos métodos para inicializar el clúster cache: Multicast Unicast. La libreria de coherence sobre OAM11g usa unicast para establecer el clúster, y únicamente permite a la propia maquina iniciarlo (hostname y localhost). Este problema se puede por tanto presentar en dos casos:- OAM en H-A
- Maquina con múltiples direcciones IP
Solucion: Editar la lista de WKA para OAM, por ello es necesario:
- Copiar a alguna ruta temporal la libreria de coherence para OAM, $IDM_DOMAIN/config/fmwconfig/mbeans/oam/coherence.jar
- Descomprimir el jar que copiamos: jar xf coherence.jar, una vez descomprimido eliminarlo
- Abrir el archivo tangosol-coherence.xml
- Editar el archivo donde esta la configuración de la WKA, acorde al número de nodos, interfaces o direcciones IPs que queramos permitir, el siguiente es un ejemplo:
<well-known-addresses>
<socket-address id="1">
<address system-property="tangosol.coherence.wka"></address>
<port system-property="tangosol.coherence.wka.port">9095</port>
</socket-address>
<socket-address id="2">
<address system-property="tangosol.coherence.wka2"></address>
<port system-property="tangosol.coherence.wka2.port">9095</port>
</socket-address>
<socket-address id="3">
<address system-property="tangosol.coherence.wka3"></address>
<port system-property="tangosol.coherence.wka3.port">9095</port>
</socket-address>
<socket-address id="4">
<address system-property="tangosol.coherence.wka4"></address>
<port system-property="tangosol.coherence.wka4.port">9095</port>
</socket-address>
<socket-address id="5">
<address system-property="tangosol.coherence.wka5"></address>
<port system-property="tangosol.coherence.wka5.port">9095</port>
</socket-address>
</well-known-addresses> - Generar el jar, con el archivo ya modificado.
- Copiar y sobreescribir el jar en las siguientes rutas:
$IDM_DOMAIN/config/fmwconfig/mbeans/oam/
$IDM_DOMAIN/servers/AdminServer/tmp/_WL_user/oam_admin_11.1.1.3.0/g5iha/APP-INF/lib (Aqui el nombre depende de la aleatoriedad asi que deben validarlo en su instalacion).
- Por último debemos agregar las siguientes opciones a la variable EXTRA_JAVA_PROPERTIES en el archivo $IDM_DOMAIN/bin/setDomainEnv.sh (como sugerencia, que este en la misma línea donde el instalador hizo las modificaciones para agregar la configuración de coherence):
-Dtangosol.coherence.wka=home.nekasys.com -Dtangosol.coherence.wka2=clon.nekasys.com -Dtangosol.coherence.wka3=vmnet1.nekasys.com -Dtangosol.coherence.wka4=vmnet8.nekasys.com -Dtangosol.coherence.wka5=ipad.nekasys.com -Dtangosol.coherence.wka.port=9095 -Dtangosol.coherence.wka2.port=9095 -Dtangosol.coherence.wka3.port=9095 -Dtangosol.coherence.wka4.port=9095 -Dtangosol.coherence.wka5.port=9095
En el ejemplo previo se puede notar que se agregaron seis interfaces, la configuración variara según el numero de interfaces de la máquina o nodos que se agreguen en el clúster. A modo de ejemplo, la variable quedaría definida como:
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES} -Dsoa.archives.dir=${SOA_ORACLE_HOME}/soa -Dsoa.oracle.home=${SOA_ORACLE_HOME} -Dsoa.instance.home=${DOMAIN_HOME} -Dtangosol.coherence.clusteraddress=227.7.7.9 -Dtangosol.coherence.clusterport=9778 -Dtangosol.coherence.log=jdk -Dtangosol.coherence.wka=home.nekasys.com -Dtangosol.coherence.wka2=clon.nekasys.com -Dtangosol.coherence.wka3=vmnet1.nekasys.com -Dtangosol.coherence.wka4=vmnet8.nekasys.com -Dtangosol.coherence.wka5=ipad.nekasys.com -Dtangosol.coherence.wka.port=9095 -Dtangosol.coherence.wka2.port=9095 -Dtangosol.coherence.wka3.port=9095 -Dtangosol.coherence.wka4.port=9095 -Dtangosol.coherence.wka5.port=9095 -Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl -Djava.protocol.handler.pkgs=${PROTOCOL_HANDLERS} -Dweblogic.transaction.blocking.commit=true -Dweblogic.transaction.blocking.rollback=true -Djavax.net.ssl.trustStore=${WL_HOME}/server/lib/Nekasys.jks"
- Listo, pueden iniciar normalmente su dominio sin excepciones de coherence ni en el OAM
- Error en el refresh de sockets al iniciar Coherence
Mensaje de Error:
####<21/04/2011 09:18:23 PM CDT> <Error> <Coherence> <alien-natas> <AdminServer> <Logger@9267279 3.5.3/465p2> <<anonymous>> <> <> <1303438703399> <BEA-000000> <2011-04-21 21:18:23.398/274.616 Oracle Coherence GE 3.5.3/465p2 <Error> (thread=PacketSpeaker, member=1): Stopping cluster due to unhandled exception: com.tangosol.net.messaging.ConnectionException: Unable to refresh sockets: [UnicastUdpSocket{State=STATE_OPEN, address:port=192.168.2.251:9095}, TcpSocketAccepter{State=STATE_OPEN, ServerSocket=192.168.2.251:9095}]; last failed socket: UnicastUdpSocket{State=STATE_OPEN, address:port=192.168.2.251:9095}
Causa: Una de las interfaces de red del equipo esta activa, sin embargo no tiene asociada una dirección IP.
Solucion: Asignar una dirección IP a la interfaz, o desactivar la misma.
Esos fueron algunos de los issues con los que nos hemos topado, y las soluciones a los mismos.
De igual forma si tienen alguna duda y/o comentario no duden en escribirnos.
Happy Hacking!
—–
Entrada generada por:
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio <mschejtman@nekasys.com>