You need something to identify the cluster-wide deployment, as opposed to the VM. The
current isLocal() approach distinguishes the VM just fine and allows the call to go
remote. Where it fails is in properly letting the call stay local.
To recognize each other the deserialized proxy and the local container need a common piece
of info.
Perhaps including the partitionName is sufficient. If someone:
1) Creates cluster A and names it DefaultPartition.
2) Creates cluster B and names it DefaultPartition.
3) Deploys things that have the same ejbName on both.
4) Has a client on A that downloads a proxy from B and invokes on it.
Well, that's just stupid. They should just use different partition names. If they
want that to work they can remove the IsLocalInterceptor or write a custom impl.
Re the benefits of optimizing, I 99% agree. The only area where I'm unconvinced is
SFSB where the proxy wasn't created locally (a .01% case). But that's such an
edge case that I don't really care. :) And it's too late to change FirstAvailable
for 4.2 to properly support it anyway.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4027717#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...