PDA

View Full Version : [JAVA-JMS]+Jboss cluster


texerasmo
22-01-2008, 13:57
Mi potete dare un mano...

L'obbiettivo che devo raggiungere è il seguente

Dovrei fare un applicazione standalone in java che utilizzi le code.
Allora sto utilizzzando JAVA+JMS su Jboss.


Ho un problema per la gestione del cluster

Il mio codice

.......

Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
properties.put(Context.URL_PKG_PREFIXES, "org.jnp.interfaces");
properties.put(Context.PROVIDER_URL, "10.173.172.176:1100,10.173.172.176:1200");
// properties.put(Context.SECURITY_AUTHENTICATION, "no");
//properties.put(Context., "no");

ctx = new InitialContext(properties);

//Queue Initializzation
cf = (QueueConnectionFactory)ctx.lookup("ConnectionFactory");
destination = (Queue)ctx.lookup("queue/order");
connection = cf.createQueueConnection();
session = connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
sender = session.createSender(destination);

.......

Per la gestionde del cluster mi hanno consigliato questa cosa per jboss

RMIAdaptor server = (RMIAdaptor) ctx.lookup("jmx/rmi/RMIAdaptor");
ObjectName hajndi = new ObjectName(jboss:service=HAJNDI,*);
Integer port = (Integer)server.getAttribute(hajndi,"Port");
String host =
(String)server.getAttribute(hajndi,"BindAddress");


// lookup alla queue connection factory....
String url =
"jnp://".concat(host).concat(":").concat(String.valueOf(port)).concat("/") ;

log.debug("url: "+url) ;

/* eseguo il lookup alla coda componendo l'url */
Queue queue = (Queue) ctx.lookup(url.concat(queueName));

/* eseguo il lookup alla QueueConnectionFactory componente
l'url */
QueueConnectionFactory factory = (QueueConnectionFactory)
ctx.lookup(url+"XAConnectionFactory");

String user = ConfMgr.getInstance().getJaasUser() ;
String pwd = ConfMgr.getInstance().getJaasPwd() ;

log.debug("utente: "+user) ;
log.debug("pwd : "+pwd) ;

if (user!=null && !user.equals("") && pwd!=null &&
!pwd.equals("") ){
connection = factory.createQueueConnection(user,pwd);
}else{
connection = factory.createQueueConnection();
}

// creo la sessione
session = connection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
sender = session.createSender(queue);

// invio del messaggio!
ObjectMessage message = session.createObjectMessage();
message.setObject(obj);
sender.send(message);

log.debug("queueName = "+queueName) ;



Non riesco a capire come gestire il CONTEXT e poi fare la connessione


Grazie