viernes, 26 de diciembre de 2014

Raspberrypi B+ Disco duro 2T no lee

Y estas navidades una raspberry pi B+-

La raspberry pi B+ proporciona una corriende de 600mA en los puertos USB, por seguridad lo que causa problemas al enchufar perifericos que requieren una alimentación mayor, en mi caso un disco duro de 2TB que requiere 1A y 5V.

Para aumentar la corriende a 1A en los puertos USB, se edita el fichero /boot/config.txt en el sistema operativo que hayas intalado en tu SD, yo instale raspbmc, entonces te conectar por ssh a la raspeberry y editas ese fichero.

1)Iniciar raspberry sin conectar el disco duro.

2)Conseguir la ip de la raspberry. En raspmbc settings>system

3)Conectar via ssh a la raspberry. En raspmbc usuario:pi password:raspberry
  ssh pi@192.162.0.18

4) editar el fichero con vi.
sudo vi /boot/config.txt

5)Agregar 2 lineas al final del fichero
max_usb_current=1
safe_mide_gpio=4

6)Guardar los cambios, wq!

7)Reiniciar la raspberry y conectar el disco duro.

El disco duro sin estos cambios trataba de ser montado en el sistema, pero se queda infinitamente haciendo un ruido como de lectura en el disco y no se montaba nada nunca, y eso provoca que se quedara colgado el SO.


martes, 9 de diciembre de 2014

Enviar mensajes a cola

Holas!!!!!!!!!!!!!! Pues eso, ahora un quick code pare enviar mensaje a Colas, version para WebsphereMQ y ActiveMQ.

El marrón de WebsphereMQ es que hay que tener sus librerías que si lo tienes instalado las puedes pillar de donde lo hayas instalado o si no buscar arduamente en la red que estarán colgadas seguramente por algún lugar.

package com.myutils.services;

import javax.jms.Connection;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.log4j.Logger;

import com.ibm.mq.jms.MQConnectionFactory;
import com.ibm.mq.jms.MQQueue;
import com.ibm.msg.client.wmq.WMQConstants;

public class WebsphereMQService {

private static Logger log4j = Logger.getLogger(WebsphereMQService.class);

public void enviarMessage(String txtMsg){
try{
MQConnectionFactory mq = new MQConnectionFactory();
mq.setTransportType(1);//Se envia como cliente
mq.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
mq.setHostName("SERVIDOR_MQ");//Proporcionado por server
mq.setPort(1616);//Esto puede cambiar, proporcionado por server
mq.setChannel("NOMBRE.CANAL");//Proporcionado por server
mq.setQueueManager("QUEUE.MNG");//Proporcionado por server
Connection c = mq.createConnection("usuario", "password");
MQQueue q = new MQQueue("NOMBRE.QUEUE");//Nombre cola, proporcionado por server
   Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE);
   MessageProducer producer = s.createProducer(q);
   TextMessage message = s.createTextMessage(txtMsg.trim());
   producer.send(message);
   c.close();
}catch(Exception e){
log4j.error("Exception:", e);
}
}

}

//Proporcionado por server: son datos que nos deben de dar para conexión.


Y ahora para Active MQ.


package com.myutils.services;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.log4j.Logger;

public class ActiveMQService {

private static Logger log4j = Logger.getLogger(ActiveMQService.class);

/**
* Envia mensaje
* @param xml
* @throws BusinessException
*/
public void enviarMensaje(StringBuilder xml, String qName){
try{
ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:61616");//Servidor
   Connection conn = cf.createConnection();
   conn.start();
   Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Destination destination = session.createQueue(qName);//Nombre de cola
   MessageProducer producer = session.createProducer(destination);
   TextMessage message = session.createTextMessage(xml.toString());//Mensaje a enviar
   producer.send(message);
   conn.close();
}catch(Exception e){
log4j.error("Exception.", e);
}
}

}



Esto debería de funcionar y si no ......