การเพิ่มแหล่งข้อมูลในเว็บลอจิก 12c

มีวิธีเพิ่มแหล่งข้อมูลโดยใช้ไฟล์ 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"/>

ฉันรู้ว่าเมื่อฉันเพิ่มแหล่งข้อมูล มีไฟล์ xml ที่สร้างขึ้นในโดเมนที่เกี่ยวข้องในพาธโดเมน\base_domain\config\jdbc แต่เกิดขึ้นว่ามีรหัสผ่านที่เข้ารหัส ดังนั้นเมื่อฉันพยายามเพิ่มแหล่งข้อมูลใหม่โดยใช้ไฟล์ xml ที่สร้างจากการเพิ่มแหล่งข้อมูลด้วยตนเอง จึงไม่สามารถเพิ่มได้ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.


person Shweta Gulati    schedule 12.10.2016    source แหล่งที่มา


คำตอบ (1)


สร้างไฟล์การกำหนดค่าแหล่งข้อมูลใหม่ในโฟลเดอร์ Domain\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 Environment โดยไปที่โฟลเดอร์ 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 Instance สำเร็จแล้ว แต่แหล่งข้อมูลยังไม่เปิดใช้งาน รีสตาร์ทอินสแตนซ์ทางเว็บของคุณเพื่อให้แหล่งข้อมูลใช้งานได้ หลังจากรีสตาร์ท คุณสามารถทดสอบได้ว่ามีพูลการเชื่อมต่อและใช้งานอยู่หรือไม่โดยใช้ยูทิลิตี้ 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 ตามข้างต้น รหัสผ่านของเว็บลอจิกจะปรากฏในประวัติของคุณ นี่คือวิธีสร้างแหล่งข้อมูลจากไฟล์ 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