[jbosscache-dev] Re: [jboss-cluster-dev] Accessing Cache instances from AS5

Brian Stansberry brian.stansberry at redhat.com
Wed Jun 10 13:21:40 EDT 2009


Galder Zamarreno wrote:
> Hi,
> 
> Having looked at this forum post thread 
> (http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4235313#4235313), 
> I wanted to check, specially with Brian, what's the preferred method in 
> AS5 to get access to a local cache.
> 

Couple methods, discussed in more detail at http://tinyurl.com/lq688t 
section 11.2

1) Use the CacheManager to create your cache; the CacheManager is 
available in JNDI at java:/CacheManager. See Section 11.2.1.

2) Use CacheJmxWrapperMBean and it's "cache" mbean attribute. Simplest 
way is to deploy it via a -service.xml. Section 5.4.2 of JBC 3.1 docs at 
http://tinyurl.com/m49qen has other methods.

> First of all, anything bound to JNDI needs to be Serializable. 
> http://www.jboss.org/community/wiki/JMXMBeanRemoteProxy wiki explains 
> how to bind a proxy to an MBean into JNDI and retrieve it remotely. 
> Don't think this is what the user wants though. It looks as if he only 
> wants to access it from diff apps.
> 

Remoting proxies to pojos can also be created. JBAS-4456. See forum 
discussion at http://tinyurl.com/n3zbgr and a test case example 
deployment config at http://tinyurl.com/lyta4y. But, as discussed on 
that forum thread, the JNDI-registration part got separated out into a 
separate concern, meant to be handled via the @JndiBinding annotation. 
Sometime after that discussion, support for @JndiBinding got removed 
from the default/all configs.  It can be added back by including


    <lifecycle-configure xmlns="urn:jboss:aop-beans:1.0"
       name="JndiBindingAdvice"
 
class="org.jboss.aop.microcontainer.aspects.jndi.JndiLifecycleCallback"
       classes="@org.jboss.aop.microcontainer.aspects.jndi.JndiBinding"
       manager-bean="AspectManager"
       manager-property="aspectManager"/>

in a -jboss-beans.xml, but, well, that whole process is just too much to 
advise as some sort of standard way of accessing JBC. Particularly since 
a remote proxy to org.jboss.cache.Cache isn't really valid; it doesn't 
cover the Node interface.

> Traditionally, there was always the JMX method to retrieve a local Cache 
> instance (see http://is.gd/WOmk) but this section has dissapeared from 
> the latest JBC 3.1 documentation in http://is.gd/WOsH.
> 
> I know that CacheJmxWrapperMBean and CacheJmxWrapper have been 
> deprecated and instead org.jboss.cache.jmx.JmxRegistrationManager is now 
> in place but it's unclear from the code what's the alternative. One that 
> I can think of is MC bean injection but that assumes your app is build 
> around MC beans which could or not happen.
> 
> Finally, one thing to note to everyone, if you simply name your MC bean 
> with -beans.xml, it won't deploy it!! Thanks to Emanuel who helped me 
> figure out why a cache instance wouldn't deploy. Instead, it should be 
> named -jboss-beans.xml. I'll create a JIRA to fix this.
> 

Thanks for fixing that!

> Cheers,


-- 
Brian Stansberry
Lead, AS Clustering
JBoss by Red Hat



More information about the jbosscache-dev mailing list