Archivo de la etiqueta: error

Weblogic em error localhost:7001/em not found

Si te has encontrado <ironia> este precioso y bonito error porque tienes la suerte de trabajar con Oracle Weblogic </ironia> es porque no tienes instalado Enterprice Manager Weblogic de Oracle.

En concreto has intentado acceder a la url http://localhost:7001/em y obtienes error “not foud”.

Error 404–Not Found

¿Y cómo instalarlo? ¡Ajá! Como habrás observado el foro Oracle de este tema tiene menos respuestas que una rueda de prensa sobre la corrupción del PP.

  1. Voy a suponer que sabéis qué es WebLogic y toda la parafernalia de alrededor.

  2. Tenéis instalado WebLogic 10.3.6

  3. Podéis acceder a la consola de weblogic http://localhost:7001/console

En mi caso, estoy intentando hacer un simple e indefenso HelloWorld siguiendo alguno de estos post.

Pero omiten esta parte, la de configurar Web Logic. Bien, también he buscado post sobre weblogic (Información sobre WebLogic).

SOLUCIÓN

“Sí nena, tengo la solución”

  1. Descargar weblogic 10.3.6. El fichero se llama wls1036_generic.jar http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html

  2. Doble click en .jar. Pulsar siguiente.

  1. Selecciona la carpeta correcta donde esté Middleware. Ojo! Yo he elegido donde tengo mi entorno de Eclipse. Siguiente.

  2. Aparece la siguiente ventana para mandarles información. La evitamos quitando la selección del checkbox y pulsando siguiente.

  3. Decimos que SI no queremos información (aquí se han lucido).

  4. Y esperamos (tarda en salir la siguiente ventana). Seleccionamos que “No deseo recibir información” y pulsamos continuar (por qué poner siguiente como todas las veces, si continuar mola más).

  5. Seleccionamos todos los componentes habidos y por haber y pulsamos siguiente.

  6. Siguiente

  7. Se pone a instalar.

  8. Cuando se instala se inicia “WebLogic Platform 10.3.6

  9. Pulsamos sobre Getting started with WebLogic Server

  10. Pulsamos sobre Ampliar dominio

  11. Seleccionamos el dominio de Weblogic. Aparece por defecto. Los dominios los he creado desde Eclipse o JDeveloper. También se pueden crear desde WebLogic. Siguiente.

  12. Ajá!!!!!!! Sorpresa sorpresa. Enterprise Manager no está instalado. Seleccionamos que lo instale.

  13. Le decimos la carpeta donde instalar  EM. Mejor poner la de defecto como sale en la imagen.

  14. Seleccionamos la parte inferior y pulsamos Siguiente.

  15. Pulsamos siguiente (la prueba de conexión va a fallar)

  1. Seleccionamos “Despliegues y servicios” siguiente.

  1. Pulsamos siguiente (por defecto están todas marcadas)

  1. Otra de siguiente

  2. Pulsamos Ampliar

  3. Pulsamos Listo

  4. Cerramos WebLogic. (cerrar el cms de Windows)

  5. Arrancamos WebLogic sobre el fichero startWebLogic.cmd.

  6. Probamos http://localhost:7001/em

Exacto! Después de 25 sencillos pasos has conseguido tener bien configurado WebLogic. El resto seguro que es un mundo de felicidad y sencillez! ¡Hasta la próxima amiwitos!

Notas: Para llegar a la solución se llevaron unas cuantas horas, unos cuantos tacos y unos cuantos mecawens. Por suerte, nadie resultó herido.

Agradecimientos a Alex y Manuel, mis compis de aventura.

Anuncios

SQL Error (1093): You can’t specify target table for update

SQL Error (1093): You can’t specify target table ‘menus_items’ for update in FROM clause

But why? Si estoy haciendo un insert!!

Os voy a comentar el motivo de mi sorpresa al encontrar el error y su preciosa solución.

Tengo una tabla con los diferentes campos  del menus, en “menus_items”. La tabla tiene una clave primaria menu_item_id que es AUTO_INCREMENT (por lo tanto está omitida en el insert).

La tabla tiene los siguientes campos:

menu_item_id,

menu_id,

parent_menu_item_id,

`code`,

`name`

Quiero que cuando inserte una secuencia en la tabla, parent_menu_item_id sea el identificador menu_item_id resultado de una búsqueda en la misma tabla por código.
Es decir, resultado de la query:

(select menu_item_id from menus_items where code='core-system' limit 1)

Así que ejecuto mi insert molón:

INSERT INTO
`menus_items`
(
<p dir="ltr">menu_id,</p>
<p dir="ltr">parent_menu_item_id,</p>
<p dir="ltr">`code`,</p>
<p dir="ltr">`name`</p>
)
VALUES
(
<p dir="ltr">1,</p>
<p dir="ltr">(select menu_item_id from menus_items where code='core-system' limit 1), 'system-auth-users',</p>
<p dir="ltr">'Usuarios'</p>
)
);

ERROR!!

SQL Error (1093): You can’t specify target table ‘menus_items’ for update in FROM clause

Efectivamente, estoy buscando sobre  una tabla en la cual estoy modificando. Si quisiera hacer una subquery a otra tabla no hay problema. Por ejemplo:

INSERT INTO
`menus_items`
(
<p dir="ltr">parent_menu_item_id,</p>
<p dir="ltr">`code`,</p>
<p dir="ltr">`name`</p>
)
VALUES
(
<p dir="ltr">(select menu_id from menus where code='BACKEND'),</p>
<p dir="ltr">'system-auth-users',</p>
<p dir="ltr">'Usuarios'</p>
)
);

Pero al ser la misma tabla MySQL no lo permite.

¿Entonces?

Bien, como solución podemos hace uso de variables:

select @MENU_ITEM_ID:=menu_item_id from menus_items where code='core-system' LIMIT 1;

Y ahora haciendo uso de la variable:

INSERT INTO
`menus_items`
(
parent_menu_item_id,
 `code`,
`name`
)
VALUES
(
@MENU_ITEM_ID,
'system-auth-users',
'Usuarios'
);

OHHHH

Me encanta :))

Si es necesario más información, si no queda claro, o si no es lo que estabais buscando. Comentarlo para que pueda mejorarlo 😉

Un saludo!


Cómo activar y visualizar el log de MySQL

En ocasiones no sabemos lo que MySQL hace por debajo. No sabemos si ha llegado a lanzarse la consulta  o qué error está dando porque no estamos capturando la excepción en la aplicación que estamos desarrollando.

La alternativa: activar y visualizar el log de MySQL.

Escribe las siguientes secuencias entrando en mysql desde consola.

Primero entra en mysql:

mysql -p

Luego activa la tabla de log de mysql:

set global general_log=ON

Pasos básicos: veamos la tabla general_log:

mysql> describe mysql.general_log;
+--------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+-------------------+-----------------------------+
| event_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| user_host | mediumtext | NO | | NULL | |
| thread_id | int(11) | NO | | NULL | |
| server_id | int(10) unsigned | NO | | NULL | |
| command_type | varchar(64) | NO | | NULL | |
| argument | mediumtext | NO | | NULL | |
+--------------+------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.07 sec)

Así que esta tabla la puedes utilizar como una tabla común del esquema “mysql”. Ejemplos:

Si deseamos encontrar las últimas llamadas a mysql. 

select * from mysql.general_log order by event_time desc limit 5;

Si deseamos buscar por una IP concreto que ha lanzado la llamada a esa base de datos:


select * from mysql.general_log where user_host like '%192.168.%' order by event_time desc limit 5;

OJO! Esta tabla crece y crece sin parar. Es recomendable desactivarla


set global general_log=OFF

y de vez en cuando limpiarla:


truncate table mysql.general_log;

Toda ayuda para ver los errores es poca! Espero os sea de utilidad

Agradecimientos a @rcasas

Error al crear icono de escritorio desde el jnlp Java

La situación: Al ejecutar el jnlp, se auto-creaba un icono en el escritorio.
Ahora: En actualizaciones se borra el icono y/o al descargarlo e instalarlo también.
Solución encontrada: Desinstalar la versión 7 de java. Volver a ejecutar el jnlp y comprobar que arranca con la versión 6 de java. Así, funciona.

Este error que no he conseguido solucionar por ahora y que al equipo de desarrollo nos está llevado más de un quebradero de cabeza, se ha tomado la postura cómoda de pensar que el error es de java 7. Posiblemente habrán cambiado alguna opción de configuración del jnlp o algo se está haciendo mal pero es muy extraño que el mismo jnlp, tras la actualización de java 7, no funcione correctamente.

No he encontrado ni en blogs,  google, ni las páginas oficiales de Oracle una solución mejor.

Al menos es una solución… Se agradece cualquier comentario o ayuda!

Can’t create table (errno: 150)

Este error es tan típico, que una vez que se ya has sufrido estos fallos, se intentan evitar teniendo un poco de cuidado al crear las tablas. Muchos ya lo conocéis y hay mil páginas…. pero he querido completarlo con algún detalle! Ahí van!

  1. Opción:  Estás añadiendo una clave foránea cuyo tipo no coincide al tipo que hace referencia.

OJO! con INT(11) VS INT(10) : algunas herramientas que hacen de interfaz de bases de datos crean PRIMARY_KEY como INT(11) y el resto de campos de tipo numérico como INT(10).

OJO! con UNSIGNED. Si recibes código heredado y te estás volviendo loco puede que esté indicado como UNSIGNED.

OJO! que la clave foránea sea pueda ser NULL, no influye. Ejemplo:

`modified_by` INT(11) NULL DEFAULT NULL.

 

  1. Opción: Estás añadiendo una clave foránea y el campo al que estás haciendo referencia no existe con ese valor.

Es decir. Imaginemos que a la clave ‘modified_by’ lo tienes inicializado a 5. Te has dado cuenta que has añadido el campo, pero no has añadido la propiedad de que es una foreing key a la tabla de usuarios! Si luego al poner que modified_by es fk te sale este error, comprueba que el usuario 5 existe en la tabla de usuarios.

OJO! Cuando modifiques una tabla con un campo existente ‘modified_by’ que es nulo y pongas que la foreing key no puede ser nulo. Ejemplo:

`modified_by` INT(11) NOT NULL.

No te va a dejar modificar la tabla a no ser de que le pongas un valor inicializado y que sea correcto. Tendrás que actualizar el campo modified_by por un valor correcto y luego crear la tabla. (el mismo caso que antes, pero ahora con NULL).

 

  1. Opción: Si pones “On Delete Set Null” pero el campo está definido como NOT NULL.

OJO! Te contradices más que el programa electoral de Rajoy!

 

Error en ejecución MySQL

Cuando estamos desesperados, cuando sabemos que algo oscuro está haciendo MySQL, cuando sospechamos que hay algunas tablas bloqueadas o algún error de memoria en MySQL, en estos casos, aconsejo leer el log de MySQL.

Para ello hace falta ir al servidor donde tenemos instalado mysql.

Entrar en la misma consola de Mysql mediante:

mysql -p

Y activar el log.

set global general_log=ON

desc mysql.general_log;

Para desactivarlo hace falta poner

set global general_log=OFF

En mi caso me fue de gran utilidad!! suerte!!