AndyG , thanks for your answer.
        Okay its a kind of a solution but , some day if i change activemq on 
separate server.
Its not good.I think multipulse also should be added to activemq too...
and apollo also.
        It will be very good i think.




 

On 26 Şub 2013, at 17:43, AndyG <[email protected]> wrote:

> So this is much easier than you think  and is what I have already said. If
> ActiveMQ is on localhost to OpenEJB this will do:
> 
> I am guessing you know how to create and access a simple stateless bean from
> OpenEJB: http://tomee.apache.org/examples-trunk/simple-stateless/README.html
> 
> Create a simple EJB with one method - String[] hosts =
> aSimpleBean.getHosts();
> 
> In that method lookup and return the hosts
> 
> final Set<String> hosts = new TreeSet<String>();
> try {
>            final InetAddress localhost = InetAddress.getLocalHost();
>            hosts.add(localhost.getHostAddress());
>            //Multi-homed
>            final InetAddress[] all =
> InetAddress.getAllByName(localhost.getCanonicalHostName());
>            for (final InetAddress ip : all) {
> 
>                if (ip.isLinkLocalAddress() || ip.isMulticastAddress()) {
>                    continue;
>                }
> 
>                final String ha = ip.getHostAddress();
>                if (!ha.replace("[", "").startsWith("2001:0:")) { //Filter
> Teredo
>                    hosts.add(ha);
>                    hosts.add(ip.getCanonicalHostName());
>                }
>            }
>        } catch (UnknownHostException e) {
>            log.warning("Failed to list machine hosts", e);
>        }
> 
> return hosts.toArray(new String[hosts.size()]);
> 
> 
> Now get that bean, get the host list and use it to connect to ActiveMQ
> 
> ctxProps.put(Context.INITIAL_CONTEXT_FACTORY,
> "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
>        ctxProps.put(Context.PROVIDER_URL, "Try each host in a loop until
> you can connect!");
> 
> This is about as simple as it gets. All the code is open source.
> 
> If ActiveMQ is remote then configure it's own discovery:
> http://activemq.apache.org/discovery.html
> 
> 
> 
> --
> View this message in context: 
> http://openejb.979440.n4.nabble.com/slow-multicast-discovery-can-be-optimized-by-caching-server-tp4660726p4661030.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Reply via email to