zoukankan      html  css  js  c++  java
  • [JAVA][Liferay] Configure sharding in multiple sites

    create databases first

    portal-ext.properties配置

    hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
    hibernate.show_sql=true
    
    jdbc.default.driverClassName=org.postgresql.Driver
    jdbc.default.url=jdbc:postgresql://127.0.0.1:5432/lportal_default
    jdbc.default.username=postgres
    jdbc.default.password=xxx
    
    jdbc.one.driverClassName=org.postgresql.Driver
    jdbc.one.url=jdbc:postgresql://127.0.0.1:5432/lportal_one
    jdbc.one.username=postgres
    jdbc.one.password=xxx
    
    value.object.entity.cache.enabled.com.liferay.portal.model.Contact=false
    shard.default.name=default
    shard.available.names=default,one
    shard.selector=com.liferay.portal.dao.shard.ManualShardSelector
    counter.jdbc.prefix=jdbc.counter.
    jdbc.counter.maxPoolSize=30
    jdbc.counter.minPoolSize=1
    jdbc.counter.numHelperThreads=1
    counter.increment=100 
    
    spring.configs=
     META-INF/base-spring.xml,
     
     META-INF/hibernate-spring.xml,
     META-INF/infrastructure-spring.xml,
     META-INF/management-spring.xml,
     
     META-INF/util-spring.xml,
     
     META-INF/jpa-spring.xml,
     
     META-INF/executor-spring.xml,
     
     META-INF/audit-spring.xml,
     META-INF/cluster-spring.xml,
     META-INF/editor-spring.xml,
     META-INF/jcr-spring.xml,
     META-INF/ldap-spring.xml,
     META-INF/messaging-core-spring.xml,
     META-INF/messaging-misc-spring.xml,
     META-INF/mobile-device-spring.xml,
     META-INF/notifications-spring.xml,
     META-INF/poller-spring.xml,
     META-INF/rules-spring.xml,
     META-INF/scheduler-spring.xml,
     META-INF/search-spring.xml,
     META-INF/workflow-spring.xml,
     
     META-INF/counter-spring.xml,
     META-INF/mail-spring.xml,
     META-INF/portal-spring.xml,
     META-INF/portlet-container-spring.xml,
     META-INF/staging-spring.xml,
     META-INF/virtual-layouts-spring.xml,
     
     META-INF/monitoring-spring.xml,
     
     META-INF/dynamic-data-source-spring.xml,
     META-INF/shard-data-source-spring.xml,
     
     classpath*:META-INF/ext-spring.xml
    

    liferay-portal-6.2-ce-ga6/tomcat-7.0.62/webapps/ROOT/WEB-INF/classes/META-INF/shard-data-source-spring.xml

    <?xml version="1.0"?>
    <beans default-destroy-method="destroy" default-init-method="afterPropertiesSet"
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    
        <bean id="liferayDataSource" class="org.springframework.jdbc.datasource.DelegatingDataSource">
            <property name="targetDataSource">
                <bean class="org.springframework.aop.framework.ProxyFactoryBean">
                    <property name="targetSource" ref="shardDataSourceTargetSource" />
                </bean>
            </property>
        </bean>
    
        <bean id="liferayHibernateSessionFactory" class="org.springframework.aop.framework.ProxyFactoryBean">
            <property name="targetSource" ref="shardSessionFactoryTargetSource" />
        </bean>
    
            <bean id="lportal_default" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
                    <property name="targetDataSource">
                            <bean class="com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean">
                                    <property name="propertyPrefix" value="jdbc.default." />
                            </bean>
                    </property>
            </bean>
            <bean id="lportal_one" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
                    <property name="targetDataSource">
                            <bean class="com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean">
                                    <property name="propertyPrefix" value="jdbc.one." />
                            </bean>
                    </property>
            </bean>
    
        <bean id="shardDataSourceTargetSource" class="com.liferay.portal.dao.shard.ShardDataSourceTargetSource">
            <property name="dataSources">
                <map>
                    <entry>
                        <key><value>default</value></key>
                        <ref bean="lportal_default" />
                    </entry>
                    <entry>
                        <key><value>one</value></key>
                        <ref bean="lportal_one" />
                    </entry>
                </map>
            </property>
        </bean>
        <bean id="shardSessionFactoryTargetSource" class="com.liferay.portal.dao.shard.ShardSessionFactoryTargetSource">
            <property name="shardDataSourceTargetSource" ref="shardDataSourceTargetSource" />
        </bean>
        <bean id="com.liferay.portal.kernel.dao.jdbc.MappingSqlQueryFactoryUtil" class="com.liferay.portal.kernel.dao.jdbc.MappingSqlQueryFactoryUtil">
            <property name="mappingSqlQueryFactory">
                <bean class="com.liferay.portal.dao.shard.ShardMappingSqlQueryFactoryImpl" />
            </property>
        </bean>
        <bean id="com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil" class="com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil">
            <property name="sqlUpdateFactory">
                <bean class="com.liferay.portal.dao.shard.ShardSqlUpdateFactoryImpl" />
            </property>
        </bean>
        <bean id="com.liferay.portal.kernel.dao.shard.ShardUtil" class="com.liferay.portal.kernel.dao.shard.ShardUtil">
            <property name="shard">
                <bean class="com.liferay.portal.dao.shard.ShardImpl">
                    <property name="shardAdvice" ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
                </bean>
            </property>
        </bean>
        <bean id="com.liferay.portal.kernel.util.InfrastructureUtil" class="com.liferay.portal.kernel.util.InfrastructureUtil">
            <property name="dataSource" ref="liferayDataSource" />
            <property name="mailSession" ref="mailSession" />
            <property name="shardDataSourceTargetSource" ref="shardDataSourceTargetSource" />
            <property name="shardSessionFactoryTargetSource" ref="shardSessionFactoryTargetSource" />
            <property name="transactionManager" ref="liferayTransactionManager" />
        </bean>
        <bean id="com.liferay.portal.dao.shard.advice.ShardAdvice" class="com.liferay.portal.dao.shard.advice.ShardAdvice">
            <property name="shardDataSourceTargetSource" ref="shardDataSourceTargetSource" />
            <property name="shardSessionFactoryTargetSource" ref="shardSessionFactoryTargetSource" />
        </bean>
        <bean id="com.liferay.portal.dao.shard.advice.ShardCompanyAdvice" class="com.liferay.portal.dao.shard.advice.ShardCompanyAdvice">
            <property name="shardAdvice" ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
        </bean>
        <bean id="com.liferay.portal.dao.shard.advice.ShardPortletAdvice" class="com.liferay.portal.dao.shard.advice.ShardPortletAdvice">
            <property name="shardAdvice" ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
        </bean>
        <bean id="com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice" class="com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice">
            <property name="shardAdvice" ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
        </bean>
        <bean id="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice" class="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice">
            <property name="shardAdvice" ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
        </bean>
        <bean id="com.liferay.portal.dao.shard.advice.ShardIterativelyAdvice" class="com.liferay.portal.dao.shard.advice.ShardIterativelyAdvice">
            <property name="shardAdvice" ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
        </bean>
        <bean id="com.liferay.portal.dao.shard.advice.ShardParameterAdvice" class="com.liferay.portal.dao.shard.advice.ShardParameterAdvice">
            <property name="shardAdvice" ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
        </bean>
        <aop:config proxy-target-class="false">
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardCompanyAdvice" pointcut="bean(com.liferay.portal.service.CompanyLocalService)" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice" pointcut="execution(void com.liferay.portal.convert.messaging.ConvertProcessMessageListener.receive(..))" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice" pointcut="execution(void com.liferay.portal.events.StartupHelper.updateIndexes())" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice" pointcut="execution(void com.liferay.portal.events.StartupHelper.upgradeProcess(int))" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice" pointcut="execution(* com.liferay.portal.service.ReleaseLocalService.getBuildNumberOrCreate())" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice" pointcut="execution(void com.liferay.portal.service.ServiceComponentLocalService.upgradeDB(..))" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardGloballyAdvice" pointcut="execution(void com.liferay.portlet.journal.service.JournalArticleLocalService.checkArticles())" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardIterativelyAdvice" pointcut="execution(void com.liferay.portal.events.StartupHelper.verifyProcess(boolean, boolean))" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardParameterAdvice" pointcut="execution(* com.liferay.portal.service.AccountLocalService.getAccount(long, long))" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardParameterAdvice" pointcut="execution(* com.liferay.portal.service.GroupLocalService.getCompanyGroup(long))" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardParameterAdvice" pointcut="execution(* com.liferay.portal.service.UserLocalService.searchCount(..))" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice" pointcut="bean(*Persistence) || bean(*Finder)" />
            <aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardPortletAdvice" pointcut="bean(com.liferay.portal.service.PortletLocalService)" />
        </aop:config>
    </beans>
    

    generate tables in server administrator

  • 相关阅读:
    luogu1131 [ZJOI2007]时态同步
    luogu1879 [USACO06NOV]玉米田Corn Fields
    luogu1345 [USACO5.4]奶牛的电信Telecowmunication
    luogu2463 [SDOI2008]Sandy的卡片
    spoj694 DISUBSTR
    luogu2852 [USACO06DEC]牛奶模式Milk Patterns
    poj2217 Secretary 后缀数组
    luogu3809 后缀排序 后缀数组
    hdu4405 Aeroplane chess
    poj2096 Collecting Bugs
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/8082547.html
Copyright © 2011-2022 走看看