[JBoss Cache: Core Edition] - Architecture Advice: Exactly One Cache Instance Per Node
by mraccola
Would appreciate some advice on the best way to accomplish the following requirement.
Current Architecture
We are using JBoss Cache 1.4.1 SP9. We have an EAR file with one Web module (WAR). We deploy this application on both WebSphere and JBoss. So we include the JBoss Cache JAR file inside the WAR's WEB-INF/lib directory. In the case of WebSphere we also include the JBoss Cache dependencies (jboss-common.jar, etc). We set the class loader order so the Web module class loader is first. Our TreeCache configuration file is deployed to a folder outside the deployed app and this folder is added to the server's classpath using a vendor-specific mechanism.
The end result is exactly one cache instance per application instance. The cache instances are configured to communicate with each other using REPL_SYNC.
Target Architecture
We are coming out with a new version of the app which includes multiple Web modules (WARs) in the same EAR. All the Web modules need the same cache contents. If we retain the existing architecture this will multiply the number of cache instances. This is undesirable because (a) each cache instance will require memory, (b) all cache instances need to stay in sync, multiplying the network traffic, (c) each cache instance will need its own configuration file, especially for TCP-based replication.
What we want is a way to instantiate one cache instance for the entire JVM and register it so it can be accessed by JNDI or JMX. Then each Web module can just lookup the cache. This must work on both WebSphere and JBoss (and in the future WebLogic).
We would strip all JBoss JARs from the WAR/EAR and deploy them to the server. Then the server would need to be instructed to create a cache instance as the server comes up and register it. We would have lookup code to get a handle on the cache instance when the Web module(s) came up. We would also upgrade to JBoss Cache 3.x at the same time so we didn't have to deal with conflicts in JBoss system libraries and the versions embedded in the app server (javax.management classes for example).
I think it is fairly easy on JBoss AS. There are instructions for deploying a cache instance to JMX. This should create one instance per node.
However, I am not sure if this is recommended on other app servers. We are thinking we can use the WAS Extended MBean Provider feature, http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/co....
Any advice on whether this is recommended or any tips to get it going? I would be happy to write up a Wiki article if we do get it working on WebSphere. The current Wiki articles on the topic on the JBoss Cache community site aren't very comprehensive.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4215697#4215697
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4215697
17 years, 1 month
[Remoting] - Re: Race condition in ConnectionValidator
by thammoud
Hi Ron,
I think that their might be an issue with your suggestion. perhaps you can explain this behavior. I took your advice and bumped up the pingperiod to be more that the timeout and noticed that if we restart the server from under the client and the server comes back in less time than the ping period (Very possible), then the client's JMS connection listener does not get called yet the connection is invalid.
If the pingperiod is relatively short, say 10 seconds then the listener gets called. I do not believe that this is a messaging issue. Not having the JMS connection listener be called causes the client to get into a funny state. Perhaps we can work around that, but it seems to me that you will be putting the burden of cleanups on all your clients. Not very developer friendly.
Again, my fix allows a user to specify a very short ping period and the JMS connection listener gets called immediately.
Thanks for your insight.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4215692#4215692
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4215692
17 years, 1 month
[Installation, Configuration & DEPLOYMENT] - deploying jsf application(developed in jdeveloper) in jboss-
by sangireddi@gmail.com
Hi...
this the error log what i am getting...it looks like missing some configuration ..
If any one solve this ..please let me know....
oracle.adfinternal.view.faces.config.rich.FacesDatabindingConfigurator _setupAdfDatabindingForJsf
SEVERE:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at oracle.adfinternal.view.faces.config.rich.FacesDatabindingConfigurator._setupAdfDatabindingForJsf(FacesDatabindingConfigurator.java:119)
.
.
.
.
Caused by: java.lang.NullPointerException
at com.sun.faces.config.WebConfiguration.getInstance(WebConfiguration.java:123)
at com.sun.faces.application.ApplicationImpl.addPropertyEditorIfNecessary(ApplicationImpl.java:705)
at com.sun.faces.application.ApplicationImpl.addConverter(ApplicationImpl.java:673)
at oracle.adfinternal.view.faces.config.rich.AdfModelHelper.init(AdfModelHelper.java:37)
... 71 more
thanks in advance
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4215679#4215679
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4215679
17 years, 1 month