Re: [jgroups-users] upgrading to 3.6.8
Questions/problems related to using JGroups <[email protected]>
| Newsgroups | gmane.comp.java.javagroups.general |
|---|---|
| Message-ID | <CAPO65OjJ-8u1J=x4FDWUV=bMiBB8=ZcE37B72W=2vU5t80=BAA@mail.gmail.com> |
>
> > - Use new JChannel(Protocol ... protocols) constructor.
>
Am unable to create my channel now, and wonder if it's a problem with the
way I'm using the JChannel constructor or something.
The problem I'm seeing is:
--- begin ---
java.lang.Exception: Property assignment of initial_hosts in TCPPING with
original property value null and converted to null could not be assigned
at
org.jgroups.stack.Configurator.resolveAndAssignField(Configurator.java:1154)
at
org.jgroups.stack.Configurator.resolveAndAssignFields(Configurator.java:1119)
at org.jgroups.JChannel.<init>(JChannel.java:196)
at org.jgroups.JChannel.<init>(JChannel.java:172)
at com.enterprisedb.efm.Environment.createJChannel(Environment.java:390)
at com.enterprisedb.efm.nodes.EfmNode.doStartup(EfmNode.java:1032)
at com.enterprisedb.efm.nodes.EfmAgent.run(EfmAgent.java:161)
at
com.enterprisedb.efm.main.ServiceCommand.main(ServiceCommand.java:112)
Caused by: java.lang.Exception: Conversion of initial_hosts in TCPPING with
original property value null failed
at
org.jgroups.conf.PropertyHelper.getConvertedValue(PropertyHelper.java:88)
at
org.jgroups.stack.Configurator.resolveAndAssignField(Configurator.java:1148)
... 7 more
Caused by: java.lang.NullPointerException
at java.util.StringTokenizer.<init>(StringTokenizer.java:199)
at java.util.StringTokenizer.<init>(StringTokenizer.java:221)
at org.jgroups.util.Util.parseCommaDelimitedHosts(Util.java:2717)
at
org.jgroups.conf.PropertyConverters$InitialHosts.convert(PropertyConverters.java:71)
at
org.jgroups.conf.PropertyHelper.getConvertedValue(PropertyHelper.java:85)
... 8 more
--- end ---
I thought maybe I wasn't creating the list properly to set on TCPPING, but
it looks ok to me. When I step through this code in
org.jgroups.stack.Configurator:
public static void resolveAndAssignFields(Object obj,
Map<String,String> props) throws Exception {
//traverse class hierarchy and find all annotated fields
for(Class<?> clazz=obj.getClass(); clazz != null;
clazz=clazz.getSuperclass()) {
Field[] fields=clazz.getDeclaredFields();
for(Field field: fields)
resolveAndAssignField(obj, field, props) ;
}
}
...I see that the 'props' map is always empty, which is what causes the
problem. It's empty because of this constructor:
public JChannel(Collection<Protocol> protocols) throws Exception {
prot_stack=new ProtocolStack();
setProtocolStack(prot_stack);
for(Protocol prot: protocols) {
prot_stack.addProtocol(prot);
prot.setProtocolStack(prot_stack);
}
prot_stack.init();
// Substitute vars with defined system props (if any)
List<Protocol> prots=prot_stack.getProtocols();
Map<String,String> map=new HashMap<>();
for(Protocol prot: prots)
Configurator.resolveAndAssignFields(prot, map);
}
So I don't see how this can ever work, but am not really following what's
going on. Is there something wrong in the way I'm creating the channel?
This is the code I'm using:
return new JChannel(
new TCP()
.setValue("oob_thread_pool_keep_alive_time", 5000)
.setValue("timer_keep_alive_time", 3000)
.setValue("bind_addr", InetAddress.getByName(<get address>))
.setValue("bind_port", bindingPort)
.setValue("thread_pool_min_threads", 1)
.setValue("thread_pool_keep_alive_time", 5000)
.setValue("send_buf_size", 640000)
.setValue("oob_thread_pool_queue_max_size", 100)
.setValue("oob_thread_pool_max_threads", 8)
.setValue("thread_pool_queue_enabled", false)
.setValue("sock_conn_timeout", 300)
.setValue("oob_thread_pool_min_threads", 1)
.setValue("loopback", false)
.setValue("oob_thread_pool_queue_enabled", false)
.setValue("max_bundle_timeout", 30)
.setValue("thread_pool_queue_max_size", 100)
.setValue("recv_buf_size", 5000000),
new TCPPING()
.setValue("initial_hosts", <create List<IpAddress> object>),
new MERGE3()
.setValue("min_interval", 10000)
.setValue("max_interval", 30000),
new FD_SOCK(),
new FD_ALL2()
.setValue("timeout", <get timeout in sec> * 1000L),
new VERIFY_SUSPECT()
.setValue("timeout", 1500),
new BARRIER(),
new NAKACK2()
.setValue("use_mcast_xmit", false),
new UNICAST3(),
new STABLE()
.setValue("desired_avg_gossip", 50000)
.setValue("max_bytes", 4000000)
.setValue("stability_delay", 1000),
createAuthProtocol(....),
new GMS()
.setValue("join_timeout", 3000),
new MFC()
.setValue("max_credits", 2000000)
.setValue("min_credits", 800000),
new FRAG2(),
new STATE_TRANSFER()
);
Thanks,
Bobby
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
javagroups-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/javagroups-users