2016-10-12 54 views
-1

xmlファイルを使用してデータソースをweblogicに追加するには、コンソールから手動で追加するのではなく、このような 何か:私は、データ・ソースを追加するときweblogicにデータソースを追加する12c

<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ファイルを使用して新しいデータソースを追加しようとすると、追加できませんでした。どんな助けもありがとう。

答えて

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ユーティリティを使用して、データベースのパスワードを以下のように暗号化することができます。あなたは、まずあなたが今base_domain \フォルダのドメインに移動して、としてweblogic.security.Encryptユーティリティを実行することができます

source ./setDomainEnv.sh 

Weblogicの環境がドメインに行くことによって、セットアップであることを確認設定する必要があります\ base_domainの\ binフォルダと、以下のコマンドを実行します

java weblogic.security.Encrypt dbpassword 

base_domainフォルダにある必要があります。あなたが他のフォルダにそれを実行する場合は、暗号化サービスを初期化できません

例外が発生します、あなたがドメインディレクトリにあるか、場合は、-Dweblogic.RootDirectory

の正しい値を指定した検証あなたのOSの履歴にデータベースのパスワードが表示されないようにするには、コマンドを実行するときにそれを放置して、パスワードを入力するよう求められます。生成されたパスワードは、次の形式になり

{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環境をセットアップして、接続プールが必要になります存在し、アクティブである場合は

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

以下のコマンドを実行して、WebLogic管理ユーティリティを使用して接続プールが存在し、アクティブであるかどうかをテストすることができます再起動した後 そうしないとあなたは以下の例外が発生します

TESTDB

をという名前のプールがすでに存在し

を取得

プールTESTDBが存在しません。接続がOKであれば

はまた、あなたが取得する前としてWebLogic環境を設定し、その後

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

以下のコマンドを実行して、データソースへの接続テストを行うことができます

接続プール "TESTDB"のJDBC接続テストが成功しました。

接続を正常にテストできないという理由だけで、データソースがWeblogicに追加されていないことを意味するわけではありません。データベースが実行されていない可能性がありますので、適切なトラブルシューティングが必要な場合があります。 Weblogic Adminユーティリティを直接使用してデータソースを作成することもできます。 上記のようにWeblogic Adminユーティリティを使用すると、履歴にWeblogicパスワードが表示されます。 これは、XMLファイルからデータソースを作成する方法です。しかし、Weblogicコンソールを使用する方がずっと簡単です。

+0

ねえ、ありがとうございます。コンソールからデータソースを作成する方がはるかに簡単です。もう1つ質問:私はデータソースを作成し、それに対応するjdbcファイルが生成されたと言うことができます。これらのファイルを他の人に渡して、手動でデータソースを追加する必要はありません。それはできますか?あなたが好きなら、また私の質問をアップヴォートすることができます。 –

+0

WLSTスクリプトを使用してデータソースを作成し、ドメインにターゲティングする方が良い方法です。手動でドメインの構成ファイルを更新することは推奨された方法ではなく、少し危険です。 –

+0

はい、実際には、生成されたファイルを他の人に与えることができます。パスワードで暗号化された値を、Weblogicインスタンスで生成された値で置き換える必要があります。また、上記の手順に従って、新しくコピーされ、更新されたデータソースファイルをWeblogicインスタンスにリンクする必要があります。 @EmmanuelCollinはこれを行うのは間違いなく正しいですか?少し危険ですが、WLSTスクリプトを使用することはそれを行うもう1つの良い方法です。 –

関連する問題