gpt4 book ai didi

java - 在 weblogic 12c 中添加数据源

转载 作者:搜寻专家 更新时间:2023-10-30 22:33:47 25 4
gpt4 key购买 nike

有没有办法在 weblogic 中使用 xml 文件添加数据源,而不是通过控制台手动添加。像这样:

<Resource name="DS_WFMT_DATA" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@10.81.34.8:1526:wfmtswvu"
username="wfmt_data" password="sa1dview"
maxActive="150" maxIdle="20" maxWait="10000"
removeAbandoned="true" removeAbandonedTimeout="300" logAbandoned="true" />

<Resource name="DS_DIRECTSTAFFWARE" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@10.81.34.8:1526:wfmtswvu"
username="swpro" password="staffpro1"
maxActive="150" maxIdle="20" maxWait="10000" logAbandoned="true"/>

<Resource name="DS_NIMS" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@10.75.105.167:1521:nimsc"
username="nims" password="nims123"
maxActive="20" maxIdle="10" maxWait="10000"
removeAbandoned="true" removeAbandonedTimeout="120" logAbandoned="true"/>

我知道当我添加数据源时,在路径 domains\base_domain\config\jdbc 的各个域中生成了一个 xml 文件,但它恰好包含一个加密密码。 因此,当我尝试使用手动添加数据源生成的 xml 文件添加新数据源时,无法添加。任何帮助将不胜感激。

最佳答案

在 domains\base_domain\config\jdbc 文件夹中创建一个具有唯一文件名的新数据源配置文件,格式如下 TESTDB-1234-jdbc.xml。通常 MYDS 是数据源名称。

打开 TESTDB-1234-jdbc.xml 文件并按以下方式进行编辑。 (请记住更改以下值以匹配您的设置)

<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-source http://xmlns.oracle.com/weblogic/jdbc-data-source/1.2/jdbc-data-source.xsd">
<name>TESTDB</name>
<jdbc-driver-params>
<url>jdbc:oracle:thin:@host:port:db</url>
<driver-name>oracle.jdbc.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>user</value>
</property>
</properties>
<password-encrypted></password-encrypted>
</jdbc-driver-params>
<jdbc-connection-pool-params>
<max-capacity>40</max-capacity>
<connection-creation-retry-frequency-seconds>120</connection-creation-retry-frequency-seconds>
<test-connections-on-reserve>true</test-connections-on-reserve>
<test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
<init-sql>SQL SELECT 1 FROM DUAL</init-sql>
</jdbc-connection-pool-params>
<jdbc-data-source-params>
<jndi-name>TESTDB</jndi-name>
<global-transactions-protocol>OnePhaseCommit</global-transactions-protocol>
</jdbc-data-source-params>
</jdbc-data-source>

创建的文件缺少加密密码。您可以使用 weblogic.security.Encrypt实用程序按照以下方式加密您的数据库密码。您首先需要通过进入 domains\base_domain\bin 文件夹并运行以下命令来设置确保 Weblogic 环境已设置

source ./setDomainEnv.sh

您现在可以进入 domains\base_domain 文件夹并运行 weblogic.security.Encrypt实用程序指定数据库密码如下

java weblogic.security.Encrypt dbpassword

您必须在 base_domain 文件夹中。如果你在任何其他文件夹中运行它,你将得到一个异常

Unable to initialize encryption service, verify you are in the domain directory or have specified the correct value for -Dweblogic.RootDirectory

如果您不希望数据库密码在您的操作系统历史记录中可见,请在运行命令时将其保留,系统将提示您提供密码。生成的密码格式如下

{AES}H8B3Lp73h/9XghMXUmtq5f3CRSpqAzQ0gwoOm5NHYXg=

将此值复制到您的 TESTDB-123-jdbc.xml 配置文件中的密码加密标签中,这样标签现在看起来像这样

<password-encrypted>{AES}H8B3Lp73h/9XghMXUmtq5f3CRSpqAzQ0gwoOm5NHYXg=</password-encrypted>

您已经使用 xml 成功创建了一个数据源,但现在您需要将它链接到 Weblogic 实例。转到 domains\base_domain\config 文件夹并编辑 config.xml 文件。在域标记关闭之前添加新配置的 jdbc 系统资源。这是一个片段

  <jdbc-system-resource>
<name>TESTDB</name>
<target>AdminServer</target>
<descriptor-file-name>jdbc/TESTDB-1234-jdbc.xml</descriptor-file-name>
</jdbc-system-resource>

请记住使用适用于您的应用程序服务器的值。完成后,您已成功将数据源链接到 Weblogic 实例,但数据源尚未激活。重新启动 weblogic 实例以使数据源处于 Activity 状态。重新启动后,您可以使用 Weblogic Admin 实用程序测试连接池是否存在并处于 Activity 状态,方法是像以前一样设置 Weblogic 环境,然后运行以下命令

java weblogic.Admin -username weblogic -password password -url t3://localhost:port EXISTS_POOL  TESTDB

如果连接池存在并处于 Activity 状态,您将获得

There is already a pool named TESTDB

否则你会得到下面的异常

Pool TESTDB does not exist.

您也可以像以前一样设置Weblogic环境,然后运行下面的命令,对数据源进行连接测试

java weblogic.Admin -username weblogic -password password -url t3://localhost:port TEST_POOL  TESTDB

如果连接正常你会得到

JDBC Connection Test Succeeded for connection pool "TESTDB".

请记住,无法成功测试连接并不意味着数据源未添加到 Weblogic。可能是数据库未运行,因此您可能需要进行适当的故障排除。另请注意,您可以使用 Weblogic Admin实用程序也可以直接创建数据源。当按照上述方式使用 Weblogic Admin 实用程序时,weblogic 密码将在您的历史记录中可见。这就是从 xml 文件创建数据源的方式。然而,仅使用 Weblogic 控制台要容易得多。

关于java - 在 weblogic 12c 中添加数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39992499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com