1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 <2009> 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 <2009> 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: CAJ questions |
From: | Matej Sekoranja <[email protected]> |
To: | [email protected] |
Date: | Sun, 2 Aug 2009 20:49:18 +0200 |
Hi,
I have 2 questions about CAJ, the native Java Channel Access client implementation. 1) It seems like it behaves differently on computers with multiplenetwork interfaces from the C implementation. On the C implementationby default the broadcast address of each the networks is used whensearching for PVs. On the CAJ implementation this does not seem to bethe case. It is not finding PVs on one of these networks with the default configuration, in my case on the 10.20.1.x subnet. However, if I set the following in my configuration file then it does work: gov.aps.jca.Context.auto_addr_list= false gov.aps.jca.Context.addr_list= 10.20.1.255 Is this an intended difference in behavior from the C implementation, and if so is it documented?
Until Java 1.6, there was no (clean) way to "introspect" network interfaces to get broadcast address of all. Therefore, CAJ uses 255.255.255.255 (auto) or be configured manually.
Java 1.6 supports this, but I do not want drop support for Java 1.5.(Well, in fact I do a small "hack": compile code as 1.5 compatible, detect Java version and use appropriate code).
2) My second question relates to knowing how to create configuration lines such as those above in the JCALibrary.properties file. The documentation links in the CAJ User Manual here: http://caj.cosylab.com/manual.html Include this one labelled "JCA tutorial on configuration": http://www.aps.anl.gov/bcda/jca/jca/2.1.2/tutorial.html But that tutorial only lists configuration lines like these: gov.aps.jca.jni.JNIContext.addr_list= toto.uses.this.ca.server gov.aps.jca.jni.JNIContext.auto_addr_list= falseThese are for the JNI (e.g. C) implementation, not for the native Javaimplementation.
See http://jca.cosylab.com/apidocs/gov/aps/jca/JCALibrary.html#CHANNEL_ACCESS_JAVA for native CAJ options.However you can use "gov.aps.jca.Context." prefix to configure all CA java implementations, but note that specific configuration (prefix) overrides the general one.
There is another link on the CAJ User Manual Page which is labelled as"CAJ configuration properties": http://www.cosylab.com/jca/apidocs/gov/aps/jca/JCALibrary.html#CHANNEL_ ACCESS_JAVA
Link about is the right one now. Fixed. Thanks. Cheers, Matej