yes good point.

but

I understand it is not an if and only if relationship,

i.e. that if the CL are the same the call can go through natively and it
will work for sure.
however if one loaded the classes with a give CL and then doesn't set it on
the context we are screwed per you schema (no ContextCL) when it could work
(Classes are OK)... you are *requiring* from third party that they always
explicitely set the CL on every thread invocation.  I.e. it makes
integration tougher...

I was thinking about testing the Method passed, getClass, getClassLoader and
hash that one, i.e rely on the actual objects.

The problem with the above is that it is very slow since it is all
dynamic... and frankly overkill since I would rather require the
ContextCL... what do you think...

(hey maybe,
1- if same CCL then OK for sure
2- if same VM then test dynamic
)

marc


|-----Original Message-----
|From: [EMAIL PROTECTED]
|[mailto:[EMAIL PROTECTED]]On Behalf Of Rickard Oberg
|Sent: Wednesday, October 18, 2000 5:26 AM
|To: jBoss
|Subject: Re: [jBoss-User] ejb references
|
|
|Hey
|
|> > It's a straight build from cvs with hypersonic and the default data
|> > sources taken out and an Oracle data source added.  I've also added
|> > one of my own MBeans, but none of this should affect the beans
|> > themselves.  I have all the beans in separate jar files; could this be
|> > it?
|>
|> Probably has something to do with call optimization then. Try turning it
|> off, that should make it work better.
|
|(This should go to jboss-dev really.. ah what the h..)
|
|I looked into the call optimization logic. The test that is done to
|determine whether call optimization can be done or not is based on a
|constant in ContainerRemote which is checked against what constant was set
|when the proxy was created. If they are the same the proxy is considered to
|be "home" and calls can be optimized.
|
|This is a bit too coarse really since it only determines whether the proxy
|is in the home VM or not, and not whether it is actually in a classloader
|"space" where calls can be done safely without copying them.
|
|So, the test should be changed to detect whether the context classloader is
|the same as the one that was used to create the proxy. I.e. isLocal in
|GenericProxy should be changed to, for example, check the hash value of the
|TCCL (Thread.currentThread().getContextClassLoader().hashValue()) against
|the hash of the TCCL that was used when the proxy was created.
|
|I am currently not at home and cannot do this fix, so if someone with CVS
|access (that understands what I'm saying..) can fix this that'd be great.
|
|Or have I missed something in the above assessment?
|
|regards,
|  Rickard
|
|
|
|
|--
|--------------------------------------------------------------
|To subscribe:        [EMAIL PROTECTED]
|To unsubscribe:      [EMAIL PROTECTED]
|Problems?:           [EMAIL PROTECTED]
|
|



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to