bboss persistent经过jndi引用外部数据源(datasource)方法

bboss persistent通过jndi引用外部数据源(datasource)方法

关于bboss-persistent持久层框架通过jndi引用外部数据源(datasource)的说明

bboss persistent框架可以引用外部数据源,例如tomcat,weblogic和WebSphere平台提供的datasource,需要在poolman.xml文件中配置,具体的做法可以参考本博客文章《bboss persistent框架数据库连接池配置介绍》,这里补充一点关于jndi名称的配置问题。这里以tomcat为例。

假如在tomcat的context上下文配置文件中配置了如下的datasource:

<Context path="" crossContext="true">

        <!-- JAAS -->

        <Realm
                className="org.apache.catalina.realm.JAASRealm"
                appName="PortalRealm"
                userClassNames="com.liferay.portal.kernel.security.jaas.PortalPrincipal"
                roleClassNames="com.liferay.portal.kernel.security.jaas.PortalRole"
        />
        
                <Resource
                name="jdbc/LiferayPool"
                auth="Container"
                type="javax.sql.DataSource"
                driverClassName="oracle.jdbc.driver.OracleDriver"
                url="jdbc:oracle:thin:@localhost:1521:orcl"
                username="lportal"
                password="lportal"
                maxActive="20"
        />

        <!--
        Uncomment the following to disable persistent sessions across reboots.
        -->

        <!--<Manager pathname="" />-->

        <!--
        Uncomment the following to not use sessions. See the property
        "session.disabled" in portal.properties.
        -->

        <!--<Manager className="com.liferay.support.tomcat.session.SessionLessManagerBase" />-->
</Context>

 其中的jdbc/LiferayPool即为该数据源jndi查找名称。

下面说明如何在poolman中配置一个连接池,该池直接通过【jdbc/LiferayPool】引用上下文中配置的连接池。poolman.xml文件的配置如下:

<?xml version="1.0" encoding="gb2312"?>
<poolman>

   <datasource external="true">
    <dbname>datareuse</dbname>
    <externaljndiName>jdbc/LiferayPool</externaljndiName>
    <showsql>false</showsql>
  </datasource>
</poolman>

 
注意:
对于tomcat的jndi,bboss3.4及之前的版本需要在jdbc/LiferayPool前面添加了java:com/env/,这样才能正确地发现配置在上下文中的datasource,否则将无法获取这个datasource。

 <externaljndiName>java:com/env/jdbc/LiferayPool</externaljndiName>

 

3.5及以后的版本已经无需添加java:com/env/。