Добавление источника данных в weblogic 12c

Есть ли способ добавить источник данных с помощью файла xml в weblogic вместо того, чтобы добавлять его вручную через консоль. Что-то вроде этого:

<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-файл, созданный при добавлении источника данных вручную, его не удалось добавить. Любая помощь будет оценена.


person Shweta Gulati    schedule 12.10.2016    source источник


Ответы (1)


Создайте новый файл конфигурации источника данных в папке 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 для шифрования пароля базы данных, как показано ниже. Сначала вам нужно будет убедиться, что среда Weblogic настроена, перейдя в папку domains\base_domain\bin и выполнив следующую команду

source ./setDomainEnv.sh

Теперь вы можете перейти в папку domains\base_domain и запустить заголовок утилита weblogic.security.Encrypt, указывающая пароль базы данных следующим образом.

java weblogic.security.Encrypt dbpassword

Вы должны находиться в папке base_domain. Если вы запустите его в любой другой папке, вы получите исключение

Не удалось инициализировать службу шифрования, убедитесь, что вы находитесь в каталоге домена или указали правильное значение для -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, чтобы источник данных стал активным. После перезапуска вы можете проверить наличие и активность пула соединений с помощью утилиты Weblogic Admin, настроив среду Weblogic, как и раньше, а затем выполнив приведенную ниже команду.

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

Если пул соединений присутствует и активен, вы получите

Уже существует пул с именем TESTDB.

В противном случае вы получите следующее исключение

Пул TESTDB не существует.

Вы также можете выполнить тест подключения к источнику данных, настроив среду Weblogic, как и раньше, а затем выполнив приведенную ниже команду.

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

Если соединение в порядке, вы получите

Тест соединения JDBC успешно завершен для пула соединений "TESTDB".

Помните, что если вы не можете успешно протестировать соединение, это не означает, что источник данных не был добавлен в Weblogic. Возможно, база данных не работает, поэтому вам может потребоваться устранить неполадки по мере необходимости. Также обратите внимание, что вы могли использовать Weblogic Admin напрямую, а также для создания источника данных. При использовании утилиты Weblogic Admin, как указано выше, пароль weblogic будет виден в вашей истории. Вот как вы создаете источник данных из файла xml. Однако гораздо проще просто использовать консоль Weblogic.

person Khetho Mtembo    schedule 12.10.2016
comment
Эй, спасибо, да, вы правы, гораздо проще создать источник данных через консоль. Еще один вопрос: допустим, я создаю источник данных, и создается соответствующий файл jdbc. Если я передам эти файлы кому-то другому, чтобы ему не нужно было добавлять источники данных вручную. Будет ли это делать? Также вы можете проголосовать за мой вопрос, если хотите. - person Shweta Gulati; 12.10.2016
comment
Лучшим подходом является использование сценария WLST для создания источника данных и таргетинга на ваш домен. Ручное обновление файлов конфигурации домена не рекомендуется и немного рискованно. - person Emmanuel Collin; 12.10.2016
comment
Да, вы действительно можете передать сгенерированный файл кому-то другому. Им нужно будет заменить значение, зашифрованное паролем, на значение, которое они генерируют в своем экземпляре Weblogic. Им также потребуется связать свой недавно скопированный и обновленный файл источника данных со своим экземпляром Weblogic, как описано выше. @EmmanuelCollin, безусловно, прав, делать это с помощью had немного рискованно, и использование сценария WLST - еще один хороший способ сделать это. - person Khetho Mtembo; 13.10.2016