Experimental Physics and
| |||||||||||||||
|
Does anyone have experience using Cosylab's java channel access (CAJ) in a Hi Chris: Are you the same Chris who used to be on the 'other' coast of the US? At the SNS, we had problems with the pure java CA client lib when it comes to IOCs that use CA security. The CA server on the IOCs would enter a state where it's hung. New CA connections would create new client threads, but each new thread hangs waiting for some semaphore inside the access security library's asAddClient() routine. Try searching previous tech talk messages: http://www.aps.anl.gov/epics/tech-talk/2006/msg00503.php, and look around April 25, 2006 for messages from Jeff and me. The symptom: No new CA connections, and a 'caget some_PV' will issue the 'timeout' error messag after about 1 second (as common for missing PVs), but hang for another 29 seconds before exiting (symptomatic for this error where the new client thread is created but then hangs). Since this is very bad for operational IOCs, the only remedy being a reboot, we quit using CAJ for now. The problem is probably caused by CAJ sending user/host information in the 'wrong' order or at a 'bad' time, but with CA it's of course a bit difficult to determine what's a 'correct' message or the 'right' time ;-). At one time we caught the error with a version of EPICS base that was patched to allow a 'semShow' on the access security semaphore. I think it showed that another CA task held the semaphore, but I can't find the detail any longer. Maybe Jeff remembers, I'm pretty sure I emailed him the results. I also saw occasional messages on the IOC CAS: request from someIP:port => "bad resource ID" which only occurred when using CAJ. So while I think CAJ is terrific, I would only use it through a gateway until these kinks are worked out. With the JNI-based CA client library for Java, there are also issues that Tom Pelaia at the SNS and Matej at Cosylab are currently investigating: As far as I understand, the JNI code includes a list for the incoming monitors. If the java client code doesn't digest them fast enough, that list grows ad infimum, instead of engaging the CA flow control. We first thought it's a memory leak, since the app keeps growing. It's not, just a list that grows, but nonetheless fatal. -Kay
| ||||||||||||||
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |