Ciao a tutti; sono diversi giorni (e secondo me ormai troppi:-) ) che sto combattendo con i topic remoti di JBoss... allora la situazione è questa: ho un pc che funge da provider JMS remoto e uno o più client che cercano di collegarsi..ebbene concentriamoci su questo hardware:
1)Windows XP home edition SP 2
2)HP proliant con red-hat advanced server 7.3
Ora:
Se il mio portatile funge da server e cioè da provider
JMS e il proliant cerca di collegarsi tutto va alla
grande;
se, invece, è il contrario (come dovrà essere in
produzione) non riuscivo a stabilire la connessione;
dopo aver sbattuto la testa e addirittura aver fatto il
download della classe DLQHandler ed averla modificata
per farmi stampare nel log l'eccezione che avveniva ho
dovuto modificare il file hosts presente in /etc così
errori non ne avevo più, ma JBoss non parte +; infatti
si stabilisce la connessione, si cerca di agganciarsi
al topic ma basta rimane appeso; nel log trovo:
Arrivato a Creating DLQHandler basta si ferma; eppure se provo questo semplice client di prova:2005-01-14 09:57:25,155,TRACE,[main],[org.jboss.ejb.plugins.jms.JMSContainerInvoker],Constructing
2005-01-14 09:57:25,195,DEBUG,[main],[org.jboss.ejb.plugins.jms.JMSContainerInvoker],Creating jboss.j2ee:binding=InvokerMdb,jndiName=local/RemoteMDB,plugin=invoker,service=EJB
2005-01-14 09:57:25,195,DEBUG,[main],[org.jboss.ejb.plugins.jms.JMSContainerInvoker],Created jboss.j2ee:binding=InvokerMdb,jndiName=local/RemoteMDB,plugin=invoker,service=EJB
2005-01-14 09:57:25,285,DEBUG,[main],[org.jboss.ejb.plugins.jms.JMSContainerInvoker],Starting jboss.j2ee:binding=InvokerMdb,jndiName=local/RemoteMDB,plugin=invoker,service=EJB
2005-01-14 09:57:25,285,DEBUG,[main],[org.jboss.ejb.plugins.jms.JMSContainerInvoker],Initializing
2005-01-14 09:57:25,285,DEBUG,[main],[org.jboss.ejb.plugins.jms.JMSContainerInvoker],Looking up provider adapter: java:/RemoteJMSProvider
2005-01-14 09:57:25,285,DEBUG,[main],[org.jboss.ejb.plugins.jms.JMSContainerInvoker],Provider adapter: org.jboss.jms.jndi.JNDIProviderAdapter@a39de
2005-01-14 09:57:25,285,TRACE,[main],[org.jboss.ejb.plugins.jms.DLQHandler],Constructing
2005-01-14 09:57:25,285,DEBUG,[main],[org.jboss.ejb.plugins.jms.DLQHandler],Creating DLQHandler
dal mio pc tutto funziona correttamente.codice:package pub; import javax.jms.TopicConnectionFactory; import javax.jms.TopicSession; import javax.jms.Topic; import javax.naming.InitialContext; import javax.naming.Context; import javax.jms.TopicConnection; import javax.jms.ObjectMessage; import javax.naming.NamingException; import javax.jms.JMSException; import javax.jms.TopicPublisher; import java.util.Hashtable; import java.io.Serializable; public class Publisher { private static final String MODULE = Publisher.class.getName(); //private static final Logger log = Logger.getLogger(MODULE); public Publisher() { } public void createAndSendMsg(String ibName) { try { Serializable obj = new Msg("Angelo Immediata"); Context cont = getContext(); System.out.println( "Cerco connection factory" ); //TopicConnectionFactory factory = (TopicConnectionFactory) (cont.lookup("java:comp/env/jms/ConnectionFactory")); TopicConnectionFactory factory = (TopicConnectionFactory) (cont.lookup("java:ConnectionFactory")); System.out.println( "Ok" ); Topic coda = (Topic) cont.lookup("topic/angeloRemoteTopic"); //System.out.println( "Ok anche la topic" ); //System.out.println( "Cerco l'altra coda" ); cont.lookup( "topic/it.eng.nikko.ibTopic" ); //System.out.println( "Ok per l'altra coda" ); TopicConnection connessione = factory.createTopicConnection(); TopicSession sessione = connessione.createTopicSession(true, TopicSession.AUTO_ACKNOWLEDGE); TopicPublisher sender = sessione.createPublisher(coda); ObjectMessage msg = sessione.createObjectMessage(); msg.setObject(obj); sender.publish(coda, msg); sessione.commit(); sessione.close(); connessione.close(); } catch (NamingException ex) { ex.printStackTrace(); } catch (JMSException ex) { ex.printStackTrace(); } } private InitialContext getContext() throws NamingException { Hashtable props = new Hashtable(); props.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); props.put(InitialContext.PROVIDER_URL, "jnp://192.168.11.224:1099"); return new InitialContext(props); } }
Qualcuno sa come mai?