2016-01-12 92 views
2

是否可以将多个DataSource声明为Websphere Liberty Profile server.xml?任何例子?将多个DataSource转换为Websphere Liberty Profile

我尝试做,但我只能看到一个。当第二个被查找时,我有一个错误信息,说没有找到jndi名字。

server.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<server description="new server"> 

    <!-- Enable features --> 
    <featureManager> 
     <feature>webProfile-7.0</feature> 
     <feature>jndi-1.0</feature> 
     <feature>jdbc-4.0</feature> 
    </featureManager> 

    <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" --> 
    <httpEndpoint id="defaultHttpEndpoint" 
        httpPort="9080" 
        httpsPort="9443" /> 

    <!-- Automatically expand WAR files and EAR files --> 
    <applicationManager autoExpand="true"/> 

    <!-- Configuration for DSPB --> 

    <jndiEntry jndiName="dspb/configuration/files" value="classpath:properties/dspb.properties,classpath:properties/dspb_db_connector.properties" /> 

    <dataSource id="ds1" jndiName="DB_DSPB_ACTIVITI" connectionManagerRef="connectionManager1" jdbcDriverRef="MyJDBCDriver"> 

     <properties.oracle driverType="thin" databaseName="xe" 
        serverName="localhost" portNumber="1521" 
        user="dspb_activiti" password="dspb_activiti"/> 
    </dataSource> 

    <dataSource id="ds2" jndiName="DB_DSPB" connectionManagerRef="connectionManager2" jdbcDriverRef="MyJDBCDriver"> 

     <properties.oracle driverType="thin" databaseName="xe" 
        serverName="localhost" portNumber="1521" 
        user="dspb" password="dspb"/> 
    </dataSource> 

    <connectionManager id="connectionManager1" maxPoolSize="20" minPoolSize="5" 
         connectionTimeout="10s" agedTimeout="30m"/> 

    <connectionManager id="connectionManager2" maxPoolSize="20" minPoolSize="5" 
         connectionTimeout="10s" agedTimeout="30m"/> 

    <jdbcDriver id="MyJDBCDriver"> 
     <library> 
      <fileset dir="C:/oraclexe/app/oracle/product/11.2.0/server/jdbc/lib/" includes="ojdbc6.jar"/> 
     </library> 
    </jdbcDriver> 

</server> 

而且在web.xml中的定义:

<resource-ref> 
    <res-ref-name>DB_DSPB</res-ref-name> 
    <res-type>javax.sql.ConnectionPoolDataSource</res-type> 
    <res-auth>Container</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

<resource-ref> 
    <res-ref-name>DB_DSPB_ACTIVITI</res-ref-name> 
    <res-type>javax.sql.ConnectionPoolDataSource</res-type> 
    <res-auth>Container</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

<resource-ref> 
    <res-ref-name>dspb/configuration/files</res-ref-name> 
    <res-auth>Container</res-auth> 
</resource-ref> 

我只能看到DSPB在JConsole的观点:http://i.stack.imgur.com/euN8e.jpg

怎么了 ?

因此,IBM的web-bnd.xml失踪,cheaty事...

<web-bnd 
    xmlns="http://websphere.ibm.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-bnd_1_0.xsd" 
    version="1.0"> 

<resource-ref name="DB_DSPB" binding-name="DB_DSPB"/> 
<resource-ref name="DB_DSPB_ACTIVITI" binding-name="DB_DSPB_ACTIVITI"/> 

埃里克

回答

2

是的,这是可能的。只需在server.xml中指定单独的<dataSource>元素即可。

例如:

<dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="MyJDBCDriver"> 
    <properties ... /> 
</dataSource> 

<dataSource id="ds2" jndiName="jdbc/ds2" jdbcDriverRef="MyJDBCDriver"> 
    <properties ... /> 
</dataSource> 

注意,这两个数据源具有jdbcDriverRef它们,其对应于一个<jdbcDriver>元件的ID。这很方便,因此每次要声明<dataSource>时不必指定另一个JDBCDriver。

<jdbcDriver id="MyJDBCDriver"> 
    <library> 
     <fileset dir="${server.config.dir}/jdbcDrivers" includes="driver.jar"/> 
    </library> 
</jdbcDriver> 

或者,您可以在数据源下窝<jdbcDriver>元素,如果你选择。如果您从不在多个元素之间共享<jdbcDriver>,这将是理想选择。

<dataSource id="ds1" jndiName="jdbc/ds1"> 
    <properties ... /> 
    <jdbcDriver> 
     <library> 
      <fileset dir="${server.config.dir}/jdbcDrivers" includes="someJDBCDriver.jar"/> 
     </library> 
    </jdbcDriver> 
</dataSource> 

下面的链接,IBM官方文档:Configuring database connectivity in Liberty

+0

你好,谢谢你的回答,但根据你的解释,我的配置仍然没有工作,我加入了主要问题的更多信息。 –

+0

Pb解决了,ibm-web-bnd.xml丢失了,很难找到整个链来配置这两个dataSources ... –

+0

我有什么要做的事来标记我的帖子是否已解决? –

相关问题