EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Java CA context cleanup issues on Linux?
From: "J. Lewis Muir" <[email protected]>
To: tech talk <[email protected]>
Date: Tue, 04 Dec 2007 19:32:21 -0500
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  <20072008  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  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·