The OpenEJB BrokerServer class is a hack we put in place to test the
OpenEJB MDB container. This class (hack) will be replaced with a
complete implementation, when we finish the OpenEJB/ActiveMQ
integration. If you are interested in working on this, please send
an email to the openejb-dev mailing list.
-dain
On Feb 5, 2007, at 9:34 AM, Fei Fei wrote:
Firstly,I am sorry,This is talking about project openejb.but
this mail list is used to project geronimo.But,I really hope
everyone can give me some advice.Thanks.
I review code at
org.apache.openejb.server.activemq.BrokerServer,I don't know this
class want to do anything,but I think some code is no auality,like
this:
public void init(Properties properties) throws Exception {
String port = properties.getProperty("port", "1527");
String bind = properties.getProperty("bind");
String disabled = properties.getProperty("disabled");
this.port = Integer.parseInt(port);
this.disabled = Boolean.parseBoolean(disabled);
@0
host = InetAddress.getByName(bind);
@1
if (this.disabled) {
return;
}
URI uri = new URI("tcp", null, bind, this.port, null, null,
null);
broker = new BrokerService();
broker.setPersistent(false);
broker.addConnector(uri);
}
public void start() throws ServiceException {
@2
if (disabled) return;
try {
broker.start();
} catch (Exception e) {
throw new ServiceException(e);
}
}
due to @1 and @2,I think if the field of disabled is false,this
class(or call service,it implements ServerService) will not
working,so ,the prob is,you specify the field type is boolean(then
sometimes it will value of false),but the @0 is working every
time,this invocation(InetAddress.getByName(..)) will use a great
many system resources,following invocation code(the char 'l:' means
'line:'):
l:956 public static InetAddress getByName(String host)
throws UnknownHostException {
return InetAddress.getAllByName(host)[0];
l:959 }
l:1000 public static InetAddress[] getAllByName(String host)
throws UnknownHostException {
......
return getAllByName0(host);
l:1061 }
l:1095 private static InetAddress[] getAllByName0 (String host)
throws UnknownHostException
{
return getAllByName0(host, true);
l:1099 }
l:1104 static InetAddress[] getAllByName0 (String host, boolean
check)
throws UnknownHostException {
.....
/* Make a copy of the InetAddress array */
objcopy = ((InetAddress [])obj).clone();
return (InetAddress [])objcopy;
l:1139 }
so,you see,I deem you review code to here,to a certainty found
some prob.yes ,it will work fine,but this project is from
Apache,isn't all best developer working with apache project?(I nill
write more.very tired now.I am going to bed..)
I think just change to:
public void init(Properties properties) throws Exception {
String disabled = properties.getProperty("disabled");
this.disabled = Boolean.parseBoolean(disabled);
@1
if (this.disabled) {
return;
}
String port = properties.getProperty("port", "1527");
this.port = Integer.parseInt(port);
String bind = properties.getProperty("bind");
@0
host = InetAddress.getByName(bind);
URI uri = new URI("tcp", null, bind, this.port, null, null,
null);
broker = new BrokerService();
broker.setPersistent(false);
broker.addConnector(uri);
}
if you see this message,give me some idea please,thanks.
- A Fei -
_________________________________________________________________
From predictions to trailers, check out the MSN Entertainment Guide
to the Academy Awards® http://movies.msn.com/movies/oscars2007/?
icid=ncoscartagline1