Liferay和Portlet数据源相统一

在某个项目中,原来开发了一个Portlet,该Portlet利用Hibernet来操作数据源。后需要把该Portlet集成在Liferay Portal上,因而出现了对同一个数据库存在两个Hibernet连接管理。以下是把Porltet的数据源与Liferay数据源合并的步骤,仅供参考。

  1. 通过在tomcatserver.xml中配置全局数据源,从而实现Liferay 和 XXX-portlet数据源统一,以避免建立重复的数据库连接而耗费资源,主要考虑out of memory 问题
  • 在tomcat_home/common下放入jdbc的驱动程序
  • server.xml配置
  • 全局数据库连接池
  • 通过管理界面配置连接池,或者直接在tomcat/conf/server.xml的GlobalNamingResources中增加

<Resource

  name="jdbc/mydb"

  type="javax.sql.DataSource"

  password="mypwd"

  driverClassName="xxx"

  maxIdle="2"

  maxWait="5000"

  validationQuery="select 1"

  username="xxx"

  url="jdbc:..."

  maxActive="4"

/>

在tomcat/webapps/myapp/META-INF/context.xml的Context中增加:

<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>

这样就可以了。


  • 参数说明:

driveClassName:JDBC驱动类的完整的名称;

maxActive:同时能够从连接池中被分配的可用实例的最大数;

maxIdle:可以同时闲置在连接池中的连接的最大数;

maxWait:最大超时时间,以毫秒计;

password:用户密码;

url:到JDBC的URL连接;

user:用户名称;

validationQuery:用来查询池中空闲的连接。


         2.  具体设置(采用了全局设置数据源的方式):
  • LiferayROOT.xml修改如下:把数据源部分删除,并拷贝到server.xml

<GlobalNamingResources>

 

<!-- Test entry for demonstration purposes -->

<Environment name="simpleValue" type="java.lang.Integer" value="30"/>

 

<!-- Editable user database that can also be used by

UserDatabaseRealm to authenticate users -->

<Resource name="UserDatabase" auth="Container"

type="org.apache.catalina.UserDatabase"

description="User database that can be updated and saved"

factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

pathname="conf/tomcat-users.xml" />

<Resource

name="jdbc/LiferayPool"

auth="Container"

type="javax.sql.DataSource"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://xxx/lxxx"

username="xxxx"

password="xxxx"

maxActive="100"

maxIdle="30"

maxWait="10000"

/>

 

</GlobalNamingResources>

  • conf目录下的context.xml文件内容如下:

<!-- The contents of this file will be loaded for each web application -->

<Context>

<ResourceLink global="jdbc/LiferayPool" name="jdbc/LiferayPool" type="javax.sql.DataSource"/>

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

 

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--

<Manager pathname="" />

-->

 

</Context>

  经过以上步骤,凡是需要全局数据连接池的Portlet等应用都可以直接引用,而不必重新建立数据库连接池
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值