impdp system/**** dumpfile=file.dmp logfile=imp_file.log full=y;
expdp system/**** dumpfile=file.dmp schemas=schema_owner logfile=file_owner.log
Como no lo apunte… se me volverá a olvidar 
systems administration related
impdp system/**** dumpfile=file.dmp logfile=imp_file.log full=y;
expdp system/**** dumpfile=file.dmp schemas=schema_owner logfile=file_owner.log
Como no lo apunte… se me volverá a olvidar 
Google reader dejará de estar disponible en poco tiempo y para los que usamos la aplicación es una verdadera faena. A mi personalmente me encantaba la aplicación, al menos un par de veces en semana podía leer y estar al tanto de muchas noticias y sobre todo, cientos de publicaciones sobre linux y administración de sistemas, blogs en su mayoría y por supuesto howtoforge 
Gracias a Feedly, he migrado el contenido de forma simple a su plataforma, no he tenido que hacer absolutamente nada, excepto vender un poco de mi información a la compañía aceptando una serie de condiciones, pero qué más da, ya lo tienen muchas otras.
Como no me ha gustado un pelo esta faena, me quejaré del único modo que puedo, dejaré de usar poco a poco, los servicios de la empresa aunque tenga que pagar a la competencia.
Lo tengo que publicar, paraa los que nos encanta la consola… esta es la chorrada del día, que ayudará a desconectar durante 5 minutos y poder echar unas risas con los compañeros 
TerminalHero – El GuitarHero para los amantes de la consola.
Todos los desarrollos sufren modificaciones y estas provocan una actualización constante de los diagramas UML que hayamos creado previamente. Entiendo muy importante este diagrama como complemento en la documentación de cualquier desarrollo.
ObjectAid es un plugin para Eclipse que nos permite crear de forma simple este diagrama, mediante drag and drop de las clases que componen el proyecto. Este plugin podemos incluirlo en nuestro IDE del siguiente modo
http://www.objectaid.com/updateCuidado los rapidillos al instalar, tenemos 2 posibles plugins y tan solo “ObjectAid Class Diagram plugin” es gratis, el otro requiere licencia. Ahora sí, todo adelante !
Ahora toca comenzar a meter clases en el diagrama y para ello creamos un nuevo “Class Diagram", dándolo el directorio y nombre del diagrama. Arrastra ahora tus clases y configura el plugin como más te guste haciendo clic derecho sobre el lienzo. También permite clic derecho sobre las clases para abrir un menú que ofrece más posiblidades.
Desde que estoy usando HSQL para pruebas y algunos proyectos estoy encantado. Fácil, simple y extremadamente liviano es este motor que nos permite jugar tanto como deseemos, pero ¿Cómo se inicia y explora el contenido creado en nuestro modelo de datos?
Pues vamos a ir empezando arrancando el cacharrito
|
1 |
java -classpath hsql.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 your_database |
Una vez iniciado vamos a ver su contenido iniciando un interfaz propio
|
1 |
java -classpath hsql.jar org.hsqldb.util.DatabaseManagerSwing |
Pulsando OK podrás ver el contenido de tu base de datos.
Se agradece la ayuda recibida del maestro Jaime 
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
public class UtilSQL { private static Connection connection; // Unica ejecucion static { Server hsqlServer = null; try { hsqlServer = new Server(); // HSQLDB vuelca informacion en el arranque // y parada que no necesitamos saber // Normalmente setLogWriter apuntaria un objeto Writer // para almacenar los logs, yo lo dejo a NULL, no quiero trazas hsqlServer.setLogWriter(null); hsqlServer.setSilent(true); // Nombre de la base de datos 'your_database' // y donde vamos a dejar los ficheros de esta // your_database.properties and your_database.script hsqlServer.setDatabaseName(0, "your_database"); hsqlServer.setDatabasePath(0, "your_database"); // Arrancando el server hsqlServer.start(); Class.forName("org.hsqldb.jdbc.JDBCDriver"); // El usuario por defecto para HSQLDB es 'SA' sin password connection = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/your_database", "SA", ""); } catch (Exception e) { System.err.println("ERROR: fallo en la conexion."); } } public static Connection getConnection() { return connection; } public static void closeConnection() { // Instanciando Server hsqlServer = new Server(); // Cierra la conexion if (connection != null) { try { connection.close(); } catch (SQLException e) { System.err.println("Cascazo: fallo en la conexion."); } } // Para el servidor if (hsqlServer != null) { hsqlServer.shutdown(); } } } |
Haciendo algunas pruebas con HSQL y algo de código JAVA he tratado de almacenar cierta información que he requerido recuperar sin fijarme demasiado en lo que introducía, estas cadenas pueden contener caracteres en mayúscula o minúscula, acentuados… al lanzar la consulta SQL el típico LIKE que solemos usar, ha pasado completamente y quería recibir las cadenas tal cual.
Vamos a verlo con un ejemplo:
En base de datos tenía Verde y debería tener un resultado positivo al tratar de buscar algo como ver, rde…
|
1 |
SELECT * FROM table WHERE column LIKE '%erd%'; |
Para solucionarlo hay que agregar una partícula a la consulta:
|
1 |
SELECT * FROM table WHERE LCASE(column) LIKE '%erd%'; |
Como solución alternativa, también es posible crear la columna con un VARCHAR_IGNORECASE, pero entonces no habríamos aprendido 
Hoy ha vuelto a suceder, el servidor que tengo contratado en Hetzner ha dejado de responder (hasta que no se le envía un “reset” remoto desde el panel de administración del servidor). El motivo que nos llevó a la contratación de este servidor ha sido la capacidad y precio frente a la estabilidad del sistema.
La media se situa en una “sufrida” caída del sistema una vez al mes, que en nuestro caso (con una excepción) no ha tenido un problema que nos obligase a plantearnos un cambio de proveedor, pero sí valorar un backup online. Para los curiosos diré que la excepción fue un “backend” hecho polvo.
Comparando precios y características de Hetzner con otros proveedores de hosting a nivel nacional, era imposible localizar alguno que nos ofreciera algo más económico a 200€ / mes por una máquina que iguale al 4S que usamos actualmente (avisa si lo encuentras pisha). Incluso Cyberneticos, la empresa con la que personalmente tengo todos los dominios y hostings personales, se quedaba lejos de los precios que buscaba.
Hetzner está genial por su precio, pero a veces, puede salir caro.
¿¿Donde tienes tus servidores ??
Hoy nos hemos encontrado con un error interesante, que después de darle muchas vueltas nos ha llevado a buscar en google.
El error:
Estado HTTP 503 – Concurrent call to conversation
type Informe de estado
mensaje Concurrent call to conversation
descripción El servicio requerido (Concurrent call to conversation) no está disponible en este momento.
JBossWeb/2.0.1.GA
Llegados a este punto surgen algunas preguntas que cualquiera se haría.
Basta con mirar en los primeros resultados de búsqueda para obtener información sobre lo que está pasando, uno de los problema puede ser debido a los tiempos de timeout; amplíalo.
|
1 2 3 |
<core:manager <em><strong>concurrent-request-timeout="500"</strong></em> conversation-timeout="120000" conversation-id-parameter="cid" parent-conversation-id-parameter="pid" /> |
|
1 |
Otro problema puede ser por clicar varias veces en un botón ajax-link, pero que podemos contrar con el atributo eventsQueue para este botón. Incluso podemos agregar más atributos para un mayor control: requestDelay (que especifica el tiempo de espera antes de enviar la petición) e ignoreDupResponses=”true” (A4J se ignorará la petición si existe una similar en la cola)
Existen más formas, pero que cada busque su método.
Voy a compartir con todos vosotros en este, el primer post desde hace unos años, cómo es mi arquitectura actual sobre Proxmox en un servidor dedicado del proveedor Hetzner. Como el dinero es el que manda, en nuestro caso estamos usando un servidor 4S (estaba de oferta la instalación) con una sola IP pública.
Proxmox es una plataforma de virtualización gratuita que permite virtualizar todo tipo de sistemas, para ello la plataforma soporta OpenVZ y KVM (yo uso KVM) y muchas más opciones como alta disponibilidad, autenticación centralizada, almacenamiento…
Como apunte, puedo verificar que también funcionan estupendamente sistemas W2003Server y W2008Server 😀
Desde la consola de administración del sistema Hetzner (Hetzner Robot) vamos a decirle al sistema que se cargue la imagen de Debian a 64 bits minimal. Debo decir que probé a montarlo en un sistema CentOS, pero me encontré con muchos problemas y tuve que hacerlo con Debian. Todo el inicio del sistema y su acceso inicial es intuitivo y sencillo, sobre la estructura que tendrá el sistema poco puedo decir porque este aspecto es como el culo, cada uno tiene el suyo.
Os recomiendo cambiar algunas cositas importantes en el sistema:
Ya está todo listo, tenemos el sistema como nos gusta, todo cerrado y limitado para comenzar con la instalación de proxmox.
Agrega en el fichero sources.list las siguientes líneas:
deb http://download.proxmox.com/debian squeeze pve
Agrega la key del repo:
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
Recargamos la lista de paquetes con el nuevo repo:
aptitude update
Instalamos el Kernel Proxmox, este realmente contiene el hypervisor:
aptitude install pve-kernel-2.6.32-12-pve
Una vez instalado, instalamos Proxmox:
aptitude install proxmox-ve-2.6.32
Deberá aceptase la instalación de dependencias y la instalación del servidor citadel (en mi caso mantuve las opciones por defecto).
Una vez instalado tendremos que agregar el nuevo virtualhost que se genera en apache:
a2ensite pve-redirect.conf
Reiniciamos apache mediante el modo AGA:
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
(Costumbre adquirida de Don Agustín García, gran amigo y maestro)
Se necesitan instalar los siguientes paquetes (Configurar al gusto):
aptitude install ntp ssh lvm2 postfix ksm-control-daemon vzprocps mtr-tiny mc
*La instalación de postfix preguntará por el tipo de servidor (Internal site) y por el host: cdtec.es
Ahora tenemos todo el sistema montado y necesitamos acceder a la herramienta Web para crear nuestras máquinas.
pveum groupadd sysadmin
pveum aclmod / -group sysadmin -role Administrator
Creamos el usuario (vale el creado anteriormente) y lo hacemos sysadmin
pveum useradd panzuela@pam (Puedes cambiarle el password con pveum passwd usuario@pam)
Finally, add user to the admin group:
pveum usermod panzuela@pam -group sysadmin
Ya estamos listos para acceder al sistema, pon en tu navegador la siguiente ruta:
https://<IP>:8006
Ya tenemos el sistema listo para comenzar a virtualizar máquinas. Es nuestraropia “cloud”.
Pues ya estamos de nuevo en línea y poco a poco iremos colocando errores de todo tipo, además de agregar algunos comentarios y porqué no decirlo, todo lo que me de la gana poner 😀
A todos aquellos que se sientan aludidos, les invito a beber un poco de agua.