On 12/4/07 5:00 PM, Kay-Uwe Kasemir wrote:
Hello Lewis:
Thanks for the info.
Our setups are different, but not that much.
Your example works for me with the PVs hosted on a VME IOC and the
following Linux workstation setup:
* Dual Intel Xeon 2.8 GHz w/ hyper-threading enabled
* Red Hat Enterprise Linux WS release 3 (Taroon Update 9)
* EPICS 3.14.8.2
* JCA 2.3.1
* Sun's jdk1.5.0_12
What is your setup?
What happens if you change JNI_THREAD_SAFE to JNI_SINGLE_THREADED?
No errors with JNI_SINGLE_THREADED, but the example is a cooked-down
version of a bigger application that should really be JNI_THREAD_SAFE,
uses async. connection handling etc.
Same EPICS base and JCA as you.
JDK 1.5.0_9 or 1.5.0_13
Data source is soft IOC on either the same or different host.
Test host either RedHat Enterprise Linux Client release 5.1 with
kernel 2.6.18-53.el5 and g++ (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14),
or the older Red Hat Enterprise Linux AS release 4 (Nahant Update 4) with
kernel 2.6.9-42.EL and g++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3).
Both are single-core CPUs.
One is an Intel Xeon 2.8 GHz and /proc/cpuinfo shows the 'ht' flag,
but I guess hyperthreading is not enabled, because I see a single CPU.
-Kay
Hi, Kay.
Hmm...maybe someone more knowledgeable than me will be able to help with
this; I don't know what's wrong.
If you're interested in trying more things, you could change your
dispose() method calls to destroy(). Since dispose() calls destroy()
and catches any exception and discards it, you may not be seeing an
exception that could help with debugging.
One other thing, but I really doubt it will help, I noticed that when
one uses
JCALibrary.getInstance().createContext(JCALibrary.JNI_THREAD_SAFE)
the created context uses the same event dispatcher as with
JCALibrary.getInstance().createContext(JCALibrary.JNI_SINGLE_THREADED)
namely, gov.aps.jca.event.DirectEventDispatcher. I don't remember how
the event dispatchers work, but maybe this is not the right event
dispatcher for JCALibrary.JNI_THREAD_SAFE?? Or maybe it's fine. You
could try changing this to gov.aps.jca.event.QueuedEventDispatcher with
something like this:
DefaultConfiguration conf =
new DefaultConfiguration("JCAContextTest");
conf.setAttribute("class", JCALibrary.JNI_THREAD_SAFE);
DefaultConfiguration dispatcherConf =
new DefaultConfiguration("event_dispatcher");
dispatcherConf.setAttribute("class",
"gov.aps.jca.event.QueuedEventDispatcher");
conf.addChild(dispatcherConf);
final Context context = jca.createContext(conf);
-lewis
- Replies:
- Re: Java CA context cleanup issues on Linux? Kay-Uwe Kasemir
- References:
- Re: Java CA context cleanup issues on Linux? Kay-Uwe Kasemir
- Navigate by Date:
- Prev:
Re: Multiple IOC Robert Emery
- Next:
string monitoring in medm Umashankar Panda
- 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
- Navigate by Thread:
- Prev:
Re: Java CA context cleanup issues on Linux? Kay-Uwe Kasemir
- Next:
Re: Java CA context cleanup issues on Linux? Kay-Uwe Kasemir
- 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
|