留言板

Cluster-link w/o multicasting

thumbnail
Steve Melo,修改在12 年前。

Cluster-link w/o multicasting

New Member 帖子: 7 加入日期: 12-3-31 最近的帖子
Hello,

I am attempting to deploy a clustered liferay deployment in Amazon's EC2 cloud. I have run into a problem beacause cluster-link relies on multi casting, but this is not available on ec2. Can cluster-link be configured w/o multicasting?

Thanks,

-steve
thumbnail
Hitoshi Ozawa,修改在12 年前。

RE: Cluster-link w/o multicasting

Liferay Legend 帖子: 7942 加入日期: 10-3-24 最近的帖子
First of all, is it necessary to cluster on EC2?

That said, instead of clusterlink, you can put your indexes on a shared drive or in a database. Support for database is going to be discontinued, but I think it's still supported in 6.1.0GA1.
thumbnail
Steve Melo,修改在12 年前。

RE: Cluster-link w/o multicasting

New Member 帖子: 7 加入日期: 12-3-31 最近的帖子
Hitoshi Ozawa:
First of all, is it necessary to cluster on EC2?

Hi Hitoshi, I assumed it would be easiest to expand liferay's capacity when under high load by auto spawning additional instances of liferay on demand. Also, I thought incase one server died the surving servers in the cluster would keep the site online. I am new to amazon cloud and would love to hear what others are doing/recommending.

Hitoshi Ozawa:
you can put your indexes on a shared drive or in a database

I avoided that because the documentation recomended against it. Have you had success with a shared drive?

I did do some digging and found that it is possible to run EhCahe w/o multicasting by changing the default behaviour of peerProvider type from 'automatic' to 'manual' and by specifying each cache peer via rmiURLs as decribed in this link, but I have been unsuccessful in getting this working.

What I did exactly was added these settings to my portel-ext.properties file:
net.sf.ehcache.configurationResourceName=[b]/custom-ehcache/[/b]hibernate-clustered.xml
net.sf.ehcache.configurationResourceName.peerProviderProperties=[b]peerDiscovery=manual,rmiUrls=//ffweb2:40001[/b]

ehcache.multi.vm.config.location=[b]/custom-ehcache/l[/b]iferay-multi-vm-clustered.xml
ehcache.multi.vm.config.location.peerProviderProperties=[b]manual,rmiUrls=//ffweb2:40001[/b]


I then created the 'custom-ehcache' folder in my tomcat's: webapps/ROOT/WEB-INF/classes/ folder and copied 'hibernate-clustered.xml', and 'liferay-multi-vm-clustered.xml' from portal-impl.jar file and placed these files in my 'custom-ehcache' folder:
tomcat/webapps/ROOT/WEB-INF/classes/custom-ehcache/
├── hibernate-clustered.xml
└── liferay-multi-vm-clustered.xml


I then modified cacheManagerPeerListenerFactory definitions in these files as so:
hibernate-clustered.xml

<ehcache dynamicconfig="false" monitoring="off" name="hibernate-clustered" updatecheck="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nonamespaceschemalocation="ehcache.xsd">
        <cachemanagerpeerproviderfactory class="com.liferay.portal.cache.ehcache.LiferayCacheManagerPeerProviderFactory" properties="portalPropertyKey=net.sf.ehcache.configurationResourceName.peerProviderProperties" propertySeparator="," />
        <cachemanagerpeerlistenerfactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" [b]properties="port=40001,   
                            remoteObjectPort=40002,   
                            socketTimeoutMillis=120000" [ b] /></ehcache>


liferay-multi-vm-clustered.xml:

<ehcache dynamicconfig="true" monitoring="off" name="liferay-multi-vm-clustered" updatecheck="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nonamespaceschemalocation="ehcache.xsd">

        <!--
        Caches in this file can be clustered and are configured to be clustered.
        -->

        <cachemanagerpeerproviderfactory class="com.liferay.portal.cache.ehcache.LiferayCacheManagerPeerProviderFactory" properties="portalPropertyKey=ehcache.multi.vm.config.location.peerProviderProperties" propertySeparator="," />
        <cachemanagerpeerlistenerfactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" [b]properties="port=40001,   
                            remoteObjectPort=40002,   
                            socketTimeoutMillis=120000" [ b] /></ehcache>


And when I start tomcat I am presented with many errors regarding bean creation failures, none that I fully understand:
Apr 2, 2012 1:41:40 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/jdk1.6.0_25/jre/lib/amd64/server:/usr/lib/jvm/jdk1.6.0_25/jre/lib/amd64:/usr/lib/jvm/jdk1.6.0_25/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Apr 2, 2012 1:41:41 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-80"]
Apr 2, 2012 1:41:41 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Apr 2, 2012 1:41:41 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1111 ms
Apr 2, 2012 1:41:41 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 2, 2012 1:41:41 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.23
Apr 2, 2012 1:41:41 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor /usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/conf/Catalina/localhost/ROOT.xml
Loading jar:file:/usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties
01:41:44,512 INFO  [EasyConf:122] Refreshed the configuration of all components
01:41:45,365 INFO  [ConfigurationLoader:56] Properties for jar:file:/usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal loaded from [file:/usr/local/liferay/portal-setup-wizard.properties, file:/usr/local/liferay/portal-ext.properties, jar:file:/usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties]
Loading jar:file:/usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties
Loading file:/usr/local/liferay/portal-ext.properties
Loading file:/usr/local/liferay/portal-setup-wizard.properties
01:41:54,206 INFO  [DialectDetector:80] Determine dialect for MySQL 5
01:41:54,256 INFO  [DialectDetector:145] Found dialect org.hibernate.dialect.MySQLDialect
01:41:55,105 INFO  [LiferayCacheManagerPeerProviderFactory:76] [b]portalPropertyKey net.sf.ehcache.configurationResourceName.peerProviderProperties has value peerDiscovery=manual,rmiUrls=//ffweb2:40001[/b]
01:42:22,845 INFO  [LiferayCacheManagerPeerProviderFactory:76] [b]portalPropertyKey ehcache.multi.vm.config.location.peerProviderProperties has value manual,rmiUrls=//ffweb2:40001[/b]
[b]01:42:23,097 ERROR [ContextLoader:227] Context initialization failed[/b]
org.springframework.beans.factory.BeanCreationException: [b]Error creating bean with name 'com.liferay.portal.cache.keypool.MultiVMKeyPool'[/b] defined in class path resource [META-INF/util-spring.xml]: [b]Cannot resolve reference to bean 'com.liferay.portal.cache.keypool.MultiVMKeyPoolPortalCacheManager'[/b] while setting bean property 'portalCacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException:[b] Error creating bean with name 'com.liferay.portal.cache.keypool.MultiVMKeyPoolPortalCacheManager'[/b] defined in class path resource [META-INF/util-spring.xml]: [b]Cannot resolve reference to bean 'com.liferay.portal.kernel.cache.MultiVMPool'[/b] while setting bean property 'multiVMPool'; nested exception is org.springframework.beans.factory.BeanCreationException: [b]Error creating bean with name 'com.liferay.portal.kernel.cache.MultiVMPool' [/b]defined in class path resource [META-INF/util-spring.xml]: [b]Cannot resolve reference to bean 'com.liferay.portal.kernel.cache.MultiVMPortalCacheManager'[/b] while setting bean property 'portalCacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: [b]Error creating bean with name 'com.liferay.portal.kernel.cache.MultiVMPortalCacheManager'[/b] defined in class path resource [META-INF/util-spring.xml]: Invocation of init method failed; [b]nested exception is java.lang.NumberFormatException: null[/b]
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
	at com.liferay.portal.spring.context.PortalContextLoaderListener.contextInitialized(PortalContextLoaderListener.java:159)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5260)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:866)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:842)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1581)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.cache.keypool.MultiVMKeyPoolPortalCacheManager' defined in class path resource [META-INF/util-spring.xml]: Cannot resolve reference to bean 'com.liferay.portal.kernel.cache.MultiVMPool' while setting bean property 'multiVMPool'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.kernel.cache.MultiVMPool' defined in class path resource [META-INF/util-spring.xml]: Cannot resolve reference to bean 'com.liferay.portal.kernel.cache.MultiVMPortalCacheManager' while setting bean property 'portalCacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.kernel.cache.MultiVMPortalCacheManager' defined in class path resource [META-INF/util-spring.xml]: Invocation of init method failed; nested exception is java.lang.NumberFormatException: null
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 30 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.kernel.cache.MultiVMPool' defined in class path resource [META-INF/util-spring.xml]: Cannot resolve reference to bean 'com.liferay.portal.kernel.cache.MultiVMPortalCacheManager' while setting bean property 'portalCacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.kernel.cache.MultiVMPortalCacheManager' defined in class path resource [META-INF/util-spring.xml]: Invocation of init method failed; nested exception is java.lang.NumberFormatException: null
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 40 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.kernel.cache.MultiVMPortalCacheManager' defined in class path resource [META-INF/util-spring.xml]: Invocation of init method failed; nested exception is java.lang.NumberFormatException: null
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
	... 50 more
Caused by: java.lang.NumberFormatException: null
	at java.lang.Integer.parseInt(Integer.java:417)
	at java.lang.Integer.valueOf(Integer.java:554)
	at net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory.createAutomaticallyConfiguredCachePeerProvider(RMICacheManagerPeerProviderFactory.java:115)
	at net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory.createCachePeerProvider(RMICacheManagerPeerProviderFactory.java:61)
	at com.liferay.portal.cache.ehcache.LiferayCacheManagerPeerProviderFactory.createCachePeerProvider(LiferayCacheManagerPeerProviderFactory.java:109)
	at net.sf.ehcache.config.ConfigurationHelper.createCachePeerProviders(ConfigurationHelper.java:132)
	at net.sf.ehcache.CacheManager.configure(CacheManager.java:617)
	at net.sf.ehcache.CacheManager.init(CacheManager.java:361)
	at net.sf.ehcache.CacheManager.<init>(CacheManager.java:230)
	at com.liferay.portal.cache.ehcache.EhcachePortalCacheManager.afterPropertiesSet(EhcachePortalCacheManager.java:69)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
	... 57 more
Apr 2, 2012 1:42:23 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Apr 2, 2012 1:42:23 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors
Apr 2, 2012 1:42:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/web-form-portlet
Apr 2, 2012 1:42:23 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/wsrp-portlet
Apr 2, 2012 1:42:26 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/webapps/mail-portlet
Apr 2, 2012 1:42:26 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-80"]
Apr 2, 2012 1:42:26 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Apr 2, 2012 1:42:26 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 45212 ms
Apr 2, 2012 1:43:19 AM org.apache.catalina.core.StandardServer await
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
Apr 2, 2012 1:43:19 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-80"]
Apr 2, 2012 1:43:19 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Apr 2, 2012 1:43:19 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Apr 2, 2012 1:43:19 AM org.apache.catalina.util.LifecycleBase stop
INFO: The stop() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] after stop() had already been called. The second call will be ignored.
Apr 2, 2012 1:43:19 AM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already.  Could not load org.apache.commons.logging.impl.LogFactoryImpl.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1574)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
	at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1131)
	at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:1065)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:1062)
	at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:650)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
	at org.apache.commons.configuration.AbstractFileConfiguration.<init>(AbstractFileConfiguration.java:121)
	at org.apache.commons.configuration.AbstractFileConfiguration.<init>(AbstractFileConfiguration.java:136)
	at org.apache.commons.configuration.PropertiesConfiguration.<init>(PropertiesConfiguration.java:237)
	at com.germinus.easyconf.AggregatedProperties.addFileProperties(AggregatedProperties.java:164)
	at com.germinus.easyconf.AggregatedProperties.addPropertiesSource(AggregatedProperties.java:140)
	at com.germinus.easyconf.AggregatedProperties.addGlobalFileName(AggregatedProperties.java:123)
	at com.germinus.easyconf.ConfigurationLoader.readPropertiesConfiguration(ConfigurationLoader.java:48)
	at com.germinus.easyconf.ComponentConfiguration.getAvailableProperties(ComponentConfiguration.java:152)
	at com.germinus.easyconf.ComponentConfiguration.getProperties(ComponentConfiguration.java:140)
	at com.liferay.portal.configuration.ConfigurationImpl.getComponentProperties(ConfigurationImpl.java:439)
	at com.liferay.portal.configuration.ConfigurationImpl.printSources(ConfigurationImpl.java:492)
	at com.liferay.portal.configuration.ConfigurationImpl.<init>(ConfigurationImpl.java:100)
	at com.liferay.portal.configuration.ConfigurationImpl.<init>(ConfigurationImpl.java:67)
	at com.liferay.portal.configuration.ConfigurationFactoryImpl.getConfiguration(ConfigurationFactoryImpl.java:28)
	at com.liferay.portal.kernel.configuration.ConfigurationFactoryUtil.getConfiguration(ConfigurationFactoryUtil.java:25)
	at com.liferay.util.portlet.PortletProps.<init>(PortletProps.java:65)
	at com.liferay.util.portlet.PortletProps.<clinit>(PortletProps.java:69)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.liferay.wsrp.service.ClpSerializer.getServletContextName(ClpSerializer.java:56)
	at com.liferay.wsrp.service.WSRPConsumerPortletLocalServiceUtil.getService(WSRPConsumerPortletLocalServiceUtil.java:375)
	at com.liferay.wsrp.service.WSRPConsumerPortletLocalServiceUtil.destroyWSRPConsumerPortlets(WSRPConsumerPortletLocalServiceUtil.java:312)
	at com.liferay.wsrp.servlet.WSRPServletContextListener.doPortalDestroy(WSRPServletContextListener.java:41)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.portalDestroy(BasePortalLifecycle.java:30)
	at com.liferay.wsrp.servlet.WSRPServletContextListener.contextDestroyed(WSRPServletContextListener.java:32)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4805)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5453)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Apr 2, 2012 1:43:19 AM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already.  Could not load org.apache.commons.logging.impl.LogFactoryImpl$3.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1574)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
	at org.apache.commons.logging.impl.LogFactoryImpl.getParentClassLoader(LogFactoryImpl.java:700)
	at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1187)
	at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:914)
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
	at org.apache.commons.configuration.AbstractFileConfiguration.<init>(AbstractFileConfiguration.java:121)
	at org.apache.commons.configuration.AbstractFileConfiguration.<init>(AbstractFileConfiguration.java:136)
	at org.apache.commons.configuration.PropertiesConfiguration.<init>(PropertiesConfiguration.java:237)
	at com.germinus.easyconf.AggregatedProperties.addFileProperties(AggregatedProperties.java:164)
	at com.germinus.easyconf.AggregatedProperties.addPropertiesSource(AggregatedProperties.java:140)
	at com.germinus.easyconf.AggregatedProperties.addGlobalFileName(AggregatedProperties.java:123)
	at com.germinus.easyconf.ConfigurationLoader.readPropertiesConfiguration(ConfigurationLoader.java:48)
	at com.germinus.easyconf.ComponentConfiguration.getAvailableProperties(ComponentConfiguration.java:152)
	at com.germinus.easyconf.ComponentConfiguration.getProperties(ComponentConfiguration.java:140)
	at com.liferay.portal.configuration.ConfigurationImpl.getComponentProperties(ConfigurationImpl.java:439)
	at com.liferay.portal.configuration.ConfigurationImpl.printSources(ConfigurationImpl.java:492)
	at com.liferay.portal.configuration.ConfigurationImpl.<init>(ConfigurationImpl.java:100)
	at com.liferay.portal.configuration.ConfigurationImpl.<init>(ConfigurationImpl.java:67)
	at com.liferay.portal.configuration.ConfigurationFactoryImpl.getConfiguration(ConfigurationFactoryImpl.java:28)
	at com.liferay.portal.kernel.configuration.ConfigurationFactoryUtil.getConfiguration(ConfigurationFactoryUtil.java:25)
	at com.liferay.util.portlet.PortletProps.<init>(PortletProps.java:65)
	at com.liferay.util.portlet.PortletProps.<clinit>(PortletProps.java:69)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.liferay.wsrp.service.ClpSerializer.getServletContextName(ClpSerializer.java:56)
	at com.liferay.wsrp.service.WSRPConsumerPortletLocalServiceUtil.getService(WSRPConsumerPortletLocalServiceUtil.java:375)
	at com.liferay.wsrp.service.WSRPConsumerPortletLocalServiceUtil.destroyWSRPConsumerPortlets(WSRPConsumerPortletLocalServiceUtil.java:312)
	at com.liferay.wsrp.servlet.WSRPServletContextListener.doPortalDestroy(WSRPServletContextListener.java:41)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.portalDestroy(BasePortalLifecycle.java:30)
	at com.liferay.wsrp.servlet.WSRPServletContextListener.contextDestroyed(WSRPServletContextListener.java:32)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4805)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5453)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
01:43:19,940 ERROR [PortletBeanLocatorUtil:38] BeanLocator is null for servlet context wsrp-portlet
01:43:19,942 ERROR [BasePortalLifecycle:33] com.liferay.portal.kernel.bean.BeanLocatorException: BeanLocator has not been set for servlet context wsrp-portlet
com.liferay.portal.kernel.bean.BeanLocatorException: BeanLocator has not been set for servlet context wsrp-portlet
	at com.liferay.portal.kernel.bean.PortletBeanLocatorUtil.locate(PortletBeanLocatorUtil.java:42)
	at com.liferay.wsrp.service.WSRPConsumerPortletLocalServiceUtil.getService(WSRPConsumerPortletLocalServiceUtil.java:375)
	at com.liferay.wsrp.service.WSRPConsumerPortletLocalServiceUtil.destroyWSRPConsumerPortlets(WSRPConsumerPortletLocalServiceUtil.java:312)
	at com.liferay.wsrp.servlet.WSRPServletContextListener.doPortalDestroy(WSRPServletContextListener.java:41)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.portalDestroy(BasePortalLifecycle.java:30)
	at com.liferay.wsrp.servlet.WSRPServletContextListener.contextDestroyed(WSRPServletContextListener.java:32)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4805)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5453)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
01:43:19,944 ERROR [BasePortalLifecycle:33] java.lang.NullPointerException
java.lang.NullPointerException
	at com.liferay.portal.kernel.servlet.PortalClassLoaderServletContextListener.doPortalDestroy(PortalClassLoaderServletContextListener.java:66)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.portalDestroy(BasePortalLifecycle.java:30)
	at com.liferay.portal.kernel.servlet.PortalClassLoaderServletContextListener.contextDestroyed(PortalClassLoaderServletContextListener.java:36)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4805)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5453)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
01:43:19,962 ERROR [BasePortalLifecycle:33] java.lang.NullPointerException
java.lang.NullPointerException
	at com.liferay.portal.kernel.servlet.PortalClassLoaderServletContextListener.doPortalDestroy(PortalClassLoaderServletContextListener.java:66)
	at com.liferay.portal.kernel.util.BasePortalLifecycle.portalDestroy(BasePortalLifecycle.java:30)
	at com.liferay.portal.kernel.servlet.PortalClassLoaderServletContextListener.contextDestroyed(PortalClassLoaderServletContextListener.java:36)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4805)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5453)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1540)
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Apr 2, 2012 1:43:19 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-80"]
Apr 2, 2012 1:43:19 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
Apr 2, 2012 1:43:19 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-80"]
Apr 2, 2012 1:43:19 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]</clinit></init></init></init></init></init></init></clinit></init></init></init></init></init></init></init>


Hopefully I am missing something simple, or someone who has done this can share thier knowledge.

Thanks,

-steve
thumbnail
Hitoshi Ozawa,修改在12 年前。

RE: Cluster-link w/o multicasting

Liferay Legend 帖子: 7942 加入日期: 10-3-24 最近的帖子
I think you're getting mixed up. Clusterlink is just to share Lucene indexes between nodes. It's not about ehcache nor hibernate. That's something different.

Sorry, not using EC2. Providers such as jelastics (http://jelastic.com/) are offering auto-scale feature.
thumbnail
Steve Melo,修改在12 年前。

RE: Cluster-link w/o multicasting

New Member 帖子: 7 加入日期: 12-3-31 最近的帖子
Thanks,

I will repost my question under a more appropriate title.

-steve
JB Burbea,修改在11 年前。

RE: Cluster-link w/o multicasting

Junior Member 帖子: 37 加入日期: 12-4-5 最近的帖子
Juan Gonzalez P:
Search for cluster in user guide. There you have all you need.

Additionally if you want session replication you'll have to add <distributable/> element in web.xml.



Please explain me session replication in LifeRay CE 6.1?

I don't see it in the user guide documentation.

Did LifeRay change the terracotta implementation in 6.1 CE from 6.0x?

http://www.liferay.com/web/mika.koivisto/blog/-/blogs/how-do-i-cluster-liferay-with-terracotta-?

Do we now use com.liferay.portal.cache.EhcachePortalCacheManager instead of the cluster article in the blog above?

http://www.liferay.com/documentation/liferay-portal/6.1/user-guide/-/ai/distributed-cachi-5

The super-easy way of enabling distributed caching is simply to enable Cluster Link. If you've already done this to enable distributed search engine indexes, then your job is already done. What this does is enable some RMI (Remote Method Invocation) cache listeners that are designed to replicate the cache across a cluster.

Does enabling enabling distributed caching with ClusterLink mean we have default distributed cache settings?

Is session replication deprecated with Server Farms and ClusterLink?

So confused.