この章では、WebLogic Server Multitenant (MT)でデータ・ソース・リソース定義がどのようにサポートされているかについて説明します。
マルチテナント環境でJDBCを構成する前に、次のものをすでに作成していることを前提としています。
仮想ターゲット。詳細は、「仮想ターゲットの構成」を参照してください。
ドメイン・パーティション。詳細は、「ドメイン・パーティションの構成」を参照してください。
パーティションに固有のセキュリティ・レルム(必要な場合)。詳細は、セキュリティの構成を参照してください。
リソース・グループ・テンプレート(必要な場合)。詳細は、「リソース・グループ・テンプレートの構成」を参照してください。
リソース・グループ。詳細は、「リソース・グループの構成」を参照してください。
この章では、既存のWebLogic Serverデータ・ソースを熟知していることを前提としています。詳細は、『Oracle WebLogic Server JDBCデータ・ソースの管理』を参照してください。
この章の内容は次のとおりです。
非マルチテナントWebLogic Server環境で作業する場合、データ・ソースは、システム・リソースとして定義することも、ドメイン・レベルでデプロイすることもできます。マルチテナント環境でWebLogic Server MTを使用する場合、データ・ソースは次のスコープで定義することもできます。
ドメイン・レベルで作成されたリソース・グループの一部として。参照されるデータ・ソースは、ドメイン・レベルのスコープの適切なデータベース資格証明、URL、ドライバ・プロパティおよび属性で修飾される必要があります。ドメイン・レベルでリソース・グループによって参照されるデータ・ソースは、グローバル・システム・リソースです。データ・ソース・モジュール・ディスクリプタは、単一のドメイン・レベルのリソース・グループのみが参照できます。
パーティション・レベルで作成されたリソース・グループの一部として。参照されるデータ・ソースは、パーティションの適切なデータベース資格証明、URL、ドライバ・プロパティおよび属性で修飾される必要があります。データ・ソース・ディスクリプタは、パーティション内の単一のリソース・グループのみが参照できます。
ドメイン・レベルで作成されたリソース・グループ・テンプレートの一部として。このような定義は、リソース・グループ・テンプレートを参照する個々のパーティションによって完全修飾されたテンプレート・データ・ソース定義とみなされます。
リソース・グループ・テンプレートに基づいたパーティション・レベルのリソース・グループの一部として。リソース・グループ・テンプレートによって参照されるテンプレート・リソース・ディスクリプタが、URLや資格証明が不足しているか正しくない、またはその両方により完全ではない可能性があるため、各リソース・グループによって定義されるリソースは、パーティション・ランタイムへのデプロイメントに指定された適切なオーバーライドを持っている必要があります。
JDBCSystemResourceOverrideMBean
を使用して、パーティション・レベルで定義されたリソース・グループ・テンプレートに基づいたリソース・グループの、ユーザー、パスワードおよびURLをオーバーライドできます。これらの3つの属性は、ほとんどのテンプレート・データ・ソース設定がパーティション間で共通のSaaSユースケースの場合に、通常パーティションごとに修飾されるデータ・ソース設定を表します。オーバーライドMBeanを使用する場合、リソース・グループによって参照される各データ・ソースに対して個別のオーバーライドMBeanを定義する必要があります。実行時(データ・ソース・デプロイメント後)に行われたこれらの属性への構成変更は、パーティション・データ・ソースを再起動して、変更を有効にする必要があります。リソース・グループによって参照されるデータ・ソース・ディスクリプタの任意の属性をオーバーライドできるリソース・グループに対してリソース・デプロイメント・プランを指定できます。単一のデプロイメント・プランは、パスがパーティション構成内に指定される外部ファイルで定義され、パーティション内のすべてのデータ・ソースに適用されます。リソース・グループ参照されたデータ・ソースにオーバーライド属性を適用する前に、リソース・デプロイメント・プランが処理されます。特定のデータ・ソース属性がリソース・デプロイメント・プランとオーバーライドMBeanの両方で指定された場合、オーバーライドMBeanの値が優先されます。詳細は、「リソース・オーバーライドの構成」を参照してください。
パーティション・レベルでデプロイされたオブジェクトの一部として。これには、EARやWARファイル内のパッケージ化されたデータ・ソース、スタンドアロン・データ・ソース・モジュール、またはアプリケーションのJava注釈やディスクリプタ・ファイルで定義されたJava EEデータ・ソース定義などが含まれます。これらの各オブジェクトは、パーティションにデプロイできます。パッケージ化されたデータ・ソースおよびスタンドアロン・データ・ソースは、アプリケーション・デプロイメント・プランを使用して更新でき、対応するパーティション化されていないデータ・ソースと同じです。Java EEデータ・ソース定義には、オーバーライド・メカニズムはありません。
まとめると、データ・ソース・コンポーネントは、次のデータ・ソース・デプロイメント・タイプをサポートしています。
データ・ソース・デプロイメント・タイプ | パラメータ・オーバーライド・サポート |
---|---|
オプションでリソース・グループにスコープされた、ドメイン・レベルのシステム・リソース | オーバーライド・サポートはありません。データ・ソースを直接変更します。 |
リソース・グループ・テンプレートのシステム・リソース | データ・ソースを直接変更するか、リソース・グループ・テンプレートから導出されたリソース・グループでオーバーライドします。 |
リソース・グループのパーティション・レベルのシステム・リソース | オーバーライド・サポートはありません。データ・ソースを直接変更します。 |
リソース・グループ・テンプレートに基づいたリソース・グループのパーティション・レベルのシステム・リソース | JDBCシステム・リソース・オーバーライドまたはリソース・デプロイメント・プラン。 |
ドメインまたはパーティションにデプロイされたアプリケーション・スコープの/パッケージ化されたデータ・ソース | アプリケーション・デプロイメント・プラン。 |
ドメインまたはパーティションにデプロイされたスタンドアロン・データ・ソース・モジュール | アプリケーション・デプロイメント・プラン。 |
ドメインまたはパーティションにデプロイされたデータ・ソース定義(Java EE 6) | オーバーライド・サポートはありません。 |
データ・ソースに関連するドメイン構造は次のとおりです。
ドメイン
グローバル・スコープのデータ・ソース
グローバル・スコープのデータ・ソースを含むドメイン・レベルのリソース・グループ
データ・ソースを含むドメイン・レベルのリソース・グループ・テンプレート
パーティション
データ・ソースを含むパーティション・レベルのリソース・グループ
リソース・グループ・テンプレートに基づいたパーティション・レベルのリソース・グループ
パーティション・レベルのJDBCシステム・リソース・オーバーライド
パーティション・レベルのリソース・デプロイメント・プラン
パーティション・レベルでデプロイされたオブジェクト
リソース・グループ・テンプレートは、データ・ソース・モジュール・ディスクリプタなどのシステム・リソース定義を参照します。パーティションは、システム・リソース定義を直接参照する、またはリソース・グループ・テンプレートを参照する、あるいはその両方を参照する、1つ以上のリソース・グループを定義します。
次の各項では、マルチテナント環境でデータ・ソースを構成する際の考慮事項について説明します。
ドメイン・レベルのリソース・グループまたはパーティション内にスコープされたデータ・ソースの作成は、ドメイン・レベルのシステム・リソースの作成と似ています。唯一の追加の手順は、スコープを指定することです。WLS管理コンソールおよびFusion Middleware Control (FMWC)では、データ・ソースの作成に使用できるスコープがリストされた作成プロセスの最初の手順に、ドロップダウン・メニューがあります。WLSTでは、所有者MBean (ドメイン、リソース・グループまたはリソース・グループ・テンプレートのMBean)でcreateJDBCSystemResource
を使用して、データ・ソースを作成する必要があります。
データ・ソースを編集する場合、データ・ソースは正しいスコープでルックアップされている必要があります。データ・ソースを更新するための追加の変更はありません。
既存のデータ・ソース・ランタイムMBeanは、パーティション・スコープのデータ・ソース・デプロイメントでサポートされており、JMXベースの管理クライアントにアクセスできます。ランタイムMBeanタイプは、デプロイされるデータ・ソース・タイプに依存します。たとえば、汎用データ・ソースはJDBCDataSourceRuntimeMBean
タイプで表されます。
パーティション・スコープのデータ・ソース・デプロイメントに対して作成されたDataSourceRuntimeMBean
は、パーティションのJDBCPartitionRuntime MBean
が親で、パーティションのデータ・ソース・インスタンスに固有の統計および実行時操作を提供します。
パーティション・スコープのデータ・ソース・ランタイムMBeanには、次のような名前属性があります。
com.bea:ServerRuntime=myserver,Name=ds,Type=JDBCDataSourceRuntime, JDBCPartitionRuntime=Partition1,PartitionRuntime=Partition1
親属性は次のように設定されます。
com.bea:ServerRuntime=myserver,Name=Partition1,Type=JDBCPartitionRuntime
前述の例では、パーティション・スコープのデータ・ソース名はds
、パーティション名はPartition1
、サーバー名はmyserver
です。
データ・ソース・ランタイムMBeanは、serverRuntime/PartitionRuntimes/partition/JDBCPartitionRuntime
の下のランタイムMBean階層にあります。一方、非パーティション・スコープのデータ・ソース・デプロイメントのランタイムMBeanは、serverRuntime/JDBCServiceRuntime
の下にあります。
ドメイン・レベルで定義されたMBeanは、パーティション・ユーザーには表示されません。非動的パラメータがパーティションで更新された場合、変更はただちに有効になりませんが、次にパーティションのデータ・ソースを再起動するか、パーティション自体を再起動すると、有効になります。サーバーを再起動する必要はありません。
パーティション・データ・ソース構成に関連するセキュリティ・ロールおよびポリシー定義は、システム管理者が担当します。詳細は、セキュリティの構成を参照してください。パーティションに固有のセキュリティ・レルムの構成は、オプションです。その他の点では、パーティション・スコープのデータ・ソースのセキュリティの構成は、グローバル・データ・ソースの場合と似ています。データ・ソース・セキュリティの詳細は、WebLogic Server MBeanのセキュリティに関する項およびデータ・ソース・セキュリティの理解に関する項を参照してください。
データ・ソース認可チェックは、パーティション固有のセキュリティ・レルムを使用したパーティション・スコープのデプロイメントでサポートされます(該当する場合)。
パーティション・スコープのデプロイメントのためのデータ・ソース・セキュリティ機能で使用する資格証明マッパー・エントリの定義がサポートされています。データ・ソース資格証明マッパー・エントリは、データ・ソース・セキュリティ・オプション(アイデンティティ・ベースのプーリング、クライアント識別子の設定およびプロキシ認証)で使用されます。資格証明マッパー・エントリは、WLS管理コンソールで作成する必要があります(FMWCでサポートされていません)。
XAトランザクションのスコープは、ドメイン・レベルで、パーティション・レベルのリソースへのアクセスに及びます。パーティション・スコープのリソース名は、パーティション名で修飾され、リソースがトランザクション・マネージャに対して一意となり、独立して管理されるようにします。
トランザクション構成および制限の詳細は、「トランザクションの構成」を参照してください。
パーティションに関連付けられたデータ・ソースは、パーティションの起動時に起動し、パーティションの停止時または強制シャットダウン時に停止します。パーティションの起動および停止は、WebLogic Serverシステム管理者およびオペレータ、パーティション管理者およびパーティション・オペレータが実行できます。
診断イメージのスコープをパーティションに制限できます。パーティションを指定する診断イメージ・キャプチャ・リクエストの場合、データ・ソース出力は、ターゲット・パーティションにスコープされたデータ・ソースに制限されます。詳細は、「パーティション・スコープの診断イメージ・キャプチャの構成」を参照してください。
ドメイン・ログ・フォーマットが12.2.1以前のロギングとの下位互換性のために構成されていない場合、パーティション・スコープのデータ・ソース・ログ・メッセージは、パーティションIDと名前で修飾されます。ロギングの詳細は、「パーティションのモニタリングおよびデバッグ」を参照してください。
データ・ソースは、データ・ソース・モジュール・ディスクリプタで指定された名前に従って、デプロイメント時に適切なJNDIコンテキストにバインドされます。
データ・ソースのスコープ | JNDIネームスペース |
---|---|
アプリケーション | アプリケーション |
パーティション・リソース・グループ | パーティション |
ドメイン・リソース・グループ | グローバル |
JNDIネームスペースから取得されたデータ・ソース・インスタンスは、異なるパーティション・コンテキストでアクセスされても、スコープを保持することに注意してください。
あるパーティションで実行中のアプリケーションが別のパーティションのリソースにアクセスする場合、クロス・パーティション・アクセスが発生します。これにより、パーティション・レベルのアクセスは、ドメイン・レベルにも適用され、その逆も行われます。パーティションURL、またはdomain:
構文かpartition:
構文を使用して、あるパーティションを実行中のアプリケーションが別のパーティションで定義されたデータ・ソースのJNDIルックアップを実行する場合、クロス・パーティション・データ・ソース・アクセスが発生します。WebLogic Server 12.2.1では、これにより、アプリケーションで変更が必要であることを認識するように、ログに警告が生成されます。
JDBC URL接頭辞の下に登録される3つのWebLogic Serverドライバ・タイプ(jdbc:weblogic:pool
、jdbc:weblogic:rmi
およびjdbc:weblogic:jts
)は、非推奨で、パーティション・スコープのデータ・ソースでサポートされていません。データ・ソース名でconnectionPoolID
プロパティを指定する既存のJDBCクライアント・ロジックでは、パーティション内のデータ・ソースの検出に失敗することはありません。プール、JTSまたはRMIドライバを使用するアプリケーションは、パーティション構成で機能するのではなくデータ・ソースJNDI名を指定するように、構成を変更する必要があります。
これに関連して、EJB RDBMS Beanディスクリプタは、JDBCセッションでパーティション・スコープのデータ・ソースにアクセスするために<pool-name>
を使用することはできません。この状況では、JNDI名の使用がサポートされます。
次に示すのは、マルチテナント環境でのWebLogic Serverデータ・ソースの使用を示すWLSTプログラムのサンプルです。2つの仮想ターゲット(ドメイン用とパーティション用)を作成します。1つのパーティションを作成します。次に、リソース・グループ、リソース・グループ・テンプレート、およびパーティション内のリソース・グループ・テンプレートに基づいたリソース・グループを作成します。その後、次の4つのスコープに同じデータ・ソースを作成します。
リソース・グループ・テンプレート
リソース・グループ・テンプレートおよびシステム・オーバーライドを使用したリソース・グループ
リソース・グループ
ドメイン
最後に、パーティションを起動します。
import sys, socket import os hostname = socket.gethostname() partition='partition1' connect("weblogic","welcome1","t3://"+hostname+":7001") edit() startEdit() serverBean = getMBean('/Servers/myserver') realmBean=cmo.getSecurityConfiguration().getDefaultRealm() pB = cmo.lookupPartition(partition) if pB != None: print "[ERROR] Partition with Name '%s' already exits" % partition cancelEdit('y') exit('y') host='%s.us.company.com' %hostname def createVirtualTarget(name, host, domain, target, prefix): print "Creating virtual target " + name domain=getMBean('/') vt=domain.createVirtualTarget(name) vt.addTarget(target) vt.setHostNames(jarray.array([String(host)],String)) vt.setUriPrefix(prefix) return vt def createJDBCSystemResource(owner, resourceName): systemResource=owner.createJDBCSystemResource(resourceName) systemResource.setName(resourceName) jdbcResource=systemResource.getJDBCResource() jdbcResource.setName(resourceName) driverParams=jdbcResource.getJDBCDriverParams() driverParams.setDriverName('oracle.jdbc.OracleDriver') driverParams.setUrl('jdbc:oracle:thin:@dbhost:1521/otrade') # driverParams.setDriverName('org.apache.derby.jdbc.EmbeddedDriver') # driverParams.setUrl('jdbc:derby:memory:mydb\;create=true') properties = driverParams.getProperties() properties.createProperty('user', 'dbuser') driverParams.setPassword('MYPASSWD') jdbcDataSourceParams=jdbcResource.getJDBCDataSourceParams() jdbcDataSourceParams.addJNDIName(resourceName) jdbcDataSourceParams.setGlobalTransactionsProtocol('None') return systemResource def createJDBCSystemResourceOverride(partition, dsname, url, user, password): oMBean=partition.createJDBCSystemResourceOverride(dsname) oMBean.setURL(url) oMBean.setUser(user) oMBean.setPassword(password) vtname='partition1' vtBean=createVirtualTarget(vtname+'-vtarget', host, getMBean('/'), getMBean('/Servers/myserver'), '/' + vtname) vtname='domain' vtBean1=createVirtualTarget(vtname+'-vtarget', host, getMBean('/'), getMBean('/Servers/myserver'), '/' + vtname) print 'Creating partition partition1' domain = getMBean("/") partition1MBean=domain.createPartition('partition1') partition1MBean.addDefaultTarget(vtBean) partition1MBean.setRealm(realmBean) partition1MBean.addAvailableTarget(vtBean) print 'Creating resource group template rgt' rgtBean=cmo.createResourceGroupTemplate('rgt') print 'Creating resource group partition1-rg in partition1' partitionrgMBean=partition1MBean.createResourceGroup('partition1-rg') partitionrgMBean.addTarget(vtBean) print 'Creating resource group partition1-rg-with-template in partition1' partition1rgitMBean=partition1MBean.createResourceGroup('partition1-rg-with-template') partition1rgitMBean.setResourceGroupTemplate(getMBean('/ResourceGroupTemplates/rgt')) print 'Creating domain resource group global-rg' cd('/') cmo.createResourceGroup('global-rg') cd("/ResourceGroups/global-rg") cmo.addTarget(vtBean1) save() activate() # Create 4 data sources startEdit() print "Creating datasource ds-in-template in rgt" createJDBCSystemResource(owner=rgtBean, resourceName='ds-in-template') activate() startEdit() print "Creating datasource ds-using-template in rg using rgt" createJDBCSystemResource(owner=partition1rgitMBean, resourceName='ds-using-template') activate() startEdit() print "Creating override for datasource ds-in-template" createJDBCSystemResourceOverride(partition1MBean, 'ds-in-template', jdbc:oracle:thin:@dbhost:1521/otrade2', 'scott', 'tiger') activate() startEdit() print "Creating datasource ds in partition1-rg" createJDBCSystemResource(owner=partitionrgMBean, resourceName='ds') activate() # You cannot creating datasource directly in partition # createJDBCSystemResource(owner=partition1MBean, resourceName='ds') startEdit() print "Creating datasource ds in domain" createJDBCSystemResource(owner=domain, resourceName='ds') cd('/SystemResources/' + "ds" ) set('Targets',jarray.array([ObjectName('com.bea:Name=' + 'AdminServer' + ',Type=Server')], ObjectName)) save() activate() startPartitionWait(partition1MBean)
createJDBCSystemResource
メソッドは、データ・ソースを作成するための多くの異なるパラメータがないという点で、通常とは異なります。かわりに、同じパラメータが毎回使用されます。
次のWLST出力のサンプルでは、サーバー・ランタイムでのグローバル・システム・リソースのデータ・ソース・デプロイメント、パーティション・ランタイムでの3つのパーティション・スコープのデータ・ソース・デプロイメントを示しています。
> ls('JDBCSystemResources') dr-- ds > ls('Partitions') drw- partition1 > serverRuntime() > ls('JDBCServiceRuntime/AdminServer/JDBCDataSourceRuntimeMBeans') dr-- ds > ls( ''PartitionRuntimes/partition1/JDBCPartitionRuntime/partition1/JDBCDataSourceRuntimeMBeans') dr-- ds dr-- ds-in-template dr-- ds-using-template
次の各項では、WLS管理コンソールでの「JDBCデータ・ソースの構成: WLSTの例」の結果を示しています。
WLS管理コンソールの「ホーム」ページから、「データ・ソース」を選択して、すべてのスコープ(ドメイン、リソース・グループ・テンプレートおよびリソース・グループ)に構成されたすべてのシステム・リソース・データ・ソースがリストされるサマリー表を表示します。この表には、スコープおよびパーティション名(該当する場合)が表示されます。
データ・ソースの名前をクリックします。「構成」→「一般」ページには、既存のJDBCシステム・リソース・オーバーライドによる影響を受けない構成属性が表示されます。オーバーライドは、このレベルでは表示されません。
「セキュリティ」→「資格証明マッピング」を選択し、「新規」をクリックします。データ・ソースに関連付けられた資格証明マッピングのWLSユーザー、リモート・ユーザーおよびリモート・パスワードの値を入力します。
データ・ソースのサマリー・ページで、「新規」をクリックし、「汎用データ・ソース」を選択します。「スコープ」ドロップダウン・メニューから、グローバル・データ・ソース、または既存のリソース・グループ・テンプレートまたはリソース・グループにデータ・ソースを作成するかどうかを指定できます(使用可能なすべてのスコープの名前がドロップダウン・メニューに表示されます)。
WLS管理コンソールの「ホーム」ページから、「ドメイン・パーティション」を選択して、構成されたすべてのパーティションがリストされるドメイン・パーティションのサマリー表を表示します。各パーティションの情報には、ネストされたリソース・グループ、デフォルト・ターゲットおよび状態が含まれます。
特定のパーティションを構成するには、その名前をクリックします。「リソース・オーバーライド」→「JDBCシステム」を選択して、既存のJDBCオーバーライドがリストされるサマリー表を表示します。新しいJDBCシステム・リソース・オーバーライドを作成するには、「新規」をクリックします。「データ・ソース」ドロップダウン・メニューには、オーバーライドの作成に使用できるデータ・ソースがリストされます。WLS管理コンソールには、パーティション内のすべてのリソース・グループのデータ・ソースがリストされますが、リソース・グループ・テンプレートから導出されたリソース・グループのみ、オーバーライドが必要です。非導出リソース・グループは直接更新できます。オーバーライドはお薦めしません。既存のオーバーライドごとに、表には、オーバーライドの名前、データ・ソースおよびURLが表示されます。オーバーライド名をクリックすると、オーバーライド値(URL、ユーザーまたはパスワード)を更新できる構成ページが表示されます。
データ・ソースは様々なレベルでモニターできます。ドメイン・レベルで、「ホーム」ページから、「データ・ソース」→「モニタリング」を選択して、すべてのスコープ内で実行中のすべてのデータ・ソースを表示します。
パーティション・レベルで、「ドメイン・パーティション」を選択し、特定のパーティション名をクリックします。「リソース・グループ」を選択し、特定のリソース・グループ名をクリックし、「サービス」→「JDBC」を選択して、このスコープで定義されたデータ・ソースを表示します。
パーティション・スコープの診断イメージを生成するには、「ホーム」ページから、「診断イメージ」を選択します。目的のサーバーのプラス記号(+)をクリックして、リストを展開します。特定のパーティション名のラジオ・ボタンを選択し、「イメージのキャプチャ」をクリックします。「診断イメージのプロパティ」ページでは、イメージZIPファイルの宛先ディレクトリの場所を指定します。ZIPファイルを開いて、次のサンプルのようなJDBC.txt
ファイルを表示します。リソース名は$partitionname
で修飾されることに注意してください。
Dumping Resource Pool:ds-in-template$partition1 Resource Pool:ds-in-template$partition1:dumpPool Current Capacity = 1 Resource Pool:ds-in-template$partition1:dumpPool dumping available resources, #entries = 1 Resource Pool:ds-in-template$partition1:dumpPool available[0] = autoCommit=true,enabled=true,isXA=false,isJTS=false,vendorID=100,connUsed=false,doInit=false,'null',destroyed=false,poolname=ds-in-template$partition1,appname=null,moduleName=null,connectTime=862,dirtyIsolationLevel=false,initialIsolationLevel=2,infected=false,lastSuccessfulConnectionUse=0,secondsToTrustAnIdlePoolConnection=10,currentUser=null,currentThread=null,lastUser=null,currentError=null,currentErrorTimestamp=null,JDBC4Runtime=true,supportStatementPoolable=true,needRestoreClientInfo=false,defaultClientInfo={},supportIsValid=true Resource Pool:ds-in-template$partition1:dumpPool dumping reserved resources, #entries = 0 Resource Pool:ds-in-template$partition1:dumpPool # dead resources = 0 Dumping Resource Pool: ds-in-template$partition1 complete Dumping Resource Pool:ds$partition1 Resource Pool:ds$partition1:dumpPool Current Capacity = 1 Resource Pool:ds$partition1:dumpPool dumping available resources, #entries = 1 Resource Pool:ds$partition1:dumpPool available[0] = autoCommit=true,enabled=true,isXA=false,isJTS=false,vendorID=100,connUsed=false,doInit=false,'null',destroyed=false,poolname=ds$partition1,appname=null,moduleName=null,connectTime=1277,dirtyIsolationLevel=false,initialIsolationLevel=2,infected=false,lastSuccessfulConnectionUse=0,secondsToTrustAnIdlePoolConnection=10,currentUser=null,currentThread=null,lastUser=null,currentError=null,currentErrorTimestamp=null,JDBC4Runtime=true,supportStatementPoolable=true,needRestoreClientInfo=false,defaultClientInfo={},supportIsValid=true Resource Pool:ds$partition1:dumpPool dumping reserved resources, #entries = 0 Resource Pool:ds$partition1:dumpPool # dead resources = 0 Dumping Resource Pool: ds$partition1 complete Dumping Resource Pool:ds-using-template$partition1 Resource Pool:ds-using-template$partition1:dumpPool Current Capacity = 1 Resource Pool:ds-using-template$partition1:dumpPool dumping available resources, #entries = 1 Resource Pool:ds-using-template$partition1:dumpPool available[0] = autoCommit=true,enabled=true,isXA=false,isJTS=false,vendorID=100,connUsed=false,doInit=false,'null',destroyed=false,poolname=ds-using-template$partition1,appname=null,moduleName=null,connectTime=467,dirtyIsolationLevel=false,initialIsolationLevel=2,infected=false,lastSuccessfulConnectionUse=0,secondsToTrustAnIdlePoolConnection=10,currentUser=null,currentThread=null,lastUser=null,currentError=null,currentErrorTimestamp=null,JDBC4Runtime=true,supportStatementPoolable=true,needRestoreClientInfo=false,defaultClientInfo={},supportIsValid=true Resource Pool:ds-using-template$partition1:dumpPool dumping reserved resources, #entries = 0 Resource Pool:ds-using-template$partition1:dumpPool # dead resources = 0 Dumping Resource Pool: ds-using-template$partition1 complete
非パーティション・スコープのデプロイメントと同様に、「ホーム」ページから、「デプロイメント」を選択し、「インストール」をクリックして、デプロイするEARまたはWARファイルを検索します。デプロイメント・スコープの「アプリケーション・インストール・アシスタント」の最初のページで、グローバル・スコープ、または既存のリソース・グループ・テンプレートかリソース・グループのいずれかを選択できます。
EARまたはWARファイルをデプロイした後で、コンソールの関連付けられたリンクをクリックすることによって、関連するモジュールおよびスコープを表示できます。最初は、デプロイメント・プランはありません。アプリケーション・デプロイメント・プランを作成するには、自動的に作成されるWLS管理コンソールを使用することをお薦めします。デプロイ済データ・ソースを選択し、構成を変更して、変更を保存します。コンソールによって、関連するデプロイメント・プランが作成され、デプロイメント・プラン名が指定されます。次に、アプリケーション・デプロイメント・プランのサンプルを示します。
<?xml version='1.0' encoding='UTF-8'?> <deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd"> <application-name>ds-jdbc.xml</application-name> <variable-definition> <variable> <name>JDBCConnectionPoolParams_InitialCapacity_14417323945070</name> <value>1</value> </variable> <variable> <name>JDBCConnectionPoolParams_MinCapacity_14417323945071</name> <value>1</value> </variable> <variable> <name>JDBCConnectionPoolParams_StatementCacheSize_14417323945072</name> <value>10</value> </variable> <variable> <name>JDBCConnectionPoolParams_MaxCapacity_14417323945073</name> <value>20</value> </variable> <variable> <name>JDBCConnectionPoolParams_StatementCacheType_14417323945074</name> <value>LRU</value> </variable> </variable-definition> <module-override> <module-name>ds-jdbc.xml</module-name> <module-type>jdbc</module-type> <module-descriptor external="false"> <root-element>jdbc-data-source</root-element> <uri>.</uri> <variable-assignment> <name>JDBCConnectionPoolParams_InitialCapacity_14417323945070</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/initial-capacity</xpath> </variable-assignment> <variable-assignment> <name>JDBCConnectionPoolParams_MinCapacity_14417323945071</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/min-capacity</xpath> </variable-assignment> <variable-assignment> <name>JDBCConnectionPoolParams_StatementCacheSize_14417323945072</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/statement-cache-size</xpath> </variable-assignment> <variable-assignment> <name>JDBCConnectionPoolParams_MaxCapacity_14417323945073</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/max-capacity</xpath> </variable-assignment> <variable-assignment> <name>JDBCConnectionPoolParams_StatementCacheType_14417323945074</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/statement-cache-type</xpath> </variable-assignment> </module-descriptor> </module-override> <config-root>D:\tmp1221\partition1\ds-jdbc.xml\app\plan</config-root> </deployment-plan>
ユーザー、パスワードまたはURLの値以外のリソース・グループ・テンプレートから導出されたパーティション・データ・ソースの属性をオーバーライドする場合、リソース・デプロイメント・プランを作成する必要があります。詳細は、「リソース・デプロイメント・プランの構成: 主な手順およびWLSTの例」を参照してください。
次に、リソース・デプロイメント・プランのサンプルを示します。descriptor-file-path
、resource-type
およびresource name
要素は、ディスクリプタが存在する場所を識別するために使用されます。
<resource-deployment-plan xmlns="http://xmlns.oracle.com/weblogic/resource-deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/resource-deployment-plan http://xmlns.oracle.com/weblogic/resource-deployment-plan/1.0/resource-deployment-plan.xsd"> <variable-definition> <variable> <name>JDBCConnectionPoolParams_InitialCapacity_14423700625350</name> <value>2</value> </variable> <variable> <name>JDBCConnectionPoolParams_MinCapacity_14423700625511</name> <value>5</value> </variable> <variable> <name>JDBCConnectionPoolParams_StatementCacheSize_14423700625512</name> <value>10</value> </variable> <variable> <name>JDBCConnectionPoolParams_StatementCacheType_14423700625513</name> <value>LRU</value> </variable> </variable-definition> <external-resource-override> <resource-name>ds-in-template</resource-name> <resource-type>jdbc-system-resource</resource-type> <root-element>jdbc-data-source</root-element> <descriptor-file-path>resource-group-templates/rgt/jdbc</descriptor-file-path> <variable-assignment> <name>JDBCConnectionPoolParams_InitialCapacity_14423700625350</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/initial-capacity</xpath> </variable-assignment> <variable-assignment> <name>JDBCConnectionPoolParams_MinCapacity_14423700625511</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/min-capacity</xpath> </variable-assignment> <variable-assignment> <name>JDBCConnectionPoolParams_StatementCacheSize_14423700625512</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/statement-cache-size</xpath> </variable-assignment> <variable-assignment> <name>JDBCConnectionPoolParams_StatementCacheType_14423700625513</name> <xpath>/jdbc-data-source/jdbc-connection-pool-params/statement-cache-type</xpath> </variable-assignment> </external-resource-override> </resource-deployment-plan>
リソース・デプロイメント・プランをパーティションに関連付けるには、パーティションの「構成」→「一般」ページにリソース・デプロイメント・プランへのパスを指定します。
Fusion Middleware Control (FMWC)を使用して、WLS管理コンソールを使用する場合と類似した方法でJDBCオーバーライドを構成できますが、ユーザー・インタフェースおよびナビゲーション・パスが異なります。ただし、データ・ソース・セキュリティは現在FMWCで使用できないため、WLS管理コンソールを使用して構成する必要があります。
「WebLogicドメイン」ドロップダウン・メニューから、「JDBCデータ・ソース」を選択して、関連するタイプの既存のデータ・ソース、スコープ、および必要に応じて、リソース・グループ、リソース・グループ・テンプレートおよびパーティション名のリストを表示します。
既存のデータ・ソースを編集するには、その名前をクリックします。
新しいデータ・ソースを作成するには、「作成」をクリックし、作成するデータ・ソースのタイプを選択します。「データソース・プロパティ」ページで、「スコープ」ドロップダウン・メニューを使用して、データ・ソースのスコープを指定します。
「WebLogicドメイン」ドロップダウン・メニューから、「環境」→「ドメイン・パーティション」を選択し、パーティション属性を編集するパーティション名をクリックします。
JDBCシステム・リソース・オーバーライドを作成するには、パーティション名をクリックします。左側の「ドメイン・パーティション」ドロップダウン・メニューから、「管理」→「リソース・オーバーライド」を選択します。このページを使用して、リソース・グループ・テンプレートのリソース・タイプおよび名前とともにリソース・グループ・テンプレートから導出されたすべてのリソース・グループを表示します。既存のオーバーライドがない場合、「オーバーライドあり」列は空白になります。「オーバーライドの編集」アイコンをクリックして、オーバーライドを作成します。「オーバーライドあり」列にチェック・マークがある場合、「オーバーライドの編集」アイコンをクリックして、既存のオーバーライドを更新します。
すべてのJDBC構成およびランタイム情報は、RESTを使用して入手できます。詳細は、『RESTful管理サービスによるOracle WebLogic Serverの管理』を参照してください。
これは、パーティションpartition1
のすべてのデータ・ソースを取得する例です。
curl --user weblogic:welcome1 -H X-Requested-By:MyClient \ -H Accept:application/json \ -H Content-Type:application/json -X GET \ http://host:7001/management/weblogic/latest/serverRuntime/\ partitionRuntimes/partition1/JDBCPartitionRuntime/JDBCDataSourceRuntimeMBeans
次に、短縮した出力を示します。
{ ... "items": [ { .... "identity": [ "partitionRuntimes", "partition1", "JDBCPartitionRuntime", "JDBCDataSourceRuntimeMBeans", "ds-in-template" ], "connectionsTotalCount": 1, ... }, { ... "identity": [ "partitionRuntimes", "partition1", "JDBCPartitionRuntime", "JDBCDataSourceRuntimeMBeans", "ds-using-template" ], ... }, { ... "identity": [ "partitionRuntimes", "partition1", "JDBCPartitionRuntime", "JDBCDataSourceRuntimeMBeans", "ds" ], "connectionsTotalCount": 1, ... } ] }
次のシェル・スクリプトでは、RESTを使用して、パーティションpartition1
のリソース・グループpartition1-rg
に、新しいデータ・ソースds3
を作成します。
host=myhost cmd="curl --user weblogic:welcome1 \ -H X-Requested-By:MyClient \ -H Accept:application/json \ -H Content-Type:application/json " echo "Start a config txn" ${cmd} -d '{}' \ -X POST \ http://${host}:7001/management/weblogic/latest/edit/changeManager/startEdit echo "\nCreate the JDBCSystemResource - note - can't save the changes yet" echo "because we still need to set its JDBCResource's name too." ${cmd} -d "{ name: 'ds3' }" -X POST \ http://${host}:7001/management/weblogic/\ latest/edit/partitions/partition1/\ resourceGroups/partition1-rg/JDBCSystemResources?saveChanges=false echo "\nSet the JDBCSystemResource's JDBCResource's name and let the changes be" echo "saved automatically." ${cmd} -d "{ name: 'ds3' }" -X POST \ http://${host}:7001/management/weblogic/latest/\ edit/partitions/partition1/resourceGroups/partition1-rg/\ JDBCSystemResources/ds3/JDBCResource echo "\nSet the Data Source Params" ${cmd} -d "{ globalTransactionsProtocol: 'EmulateTwoPhaseCommit', JNDINames: [ 'ds3' ] }" -X POST \ http://${host}:7001/management/weblogic/latest/\ edit/partitions/partition1/resourceGroups/partition1-rg/\ JDBCSystemResources/ds3/JDBCResource/JDBCDataSourceParams echo "\nSet the Driver Params" ${cmd} -d "{ driverName: 'oracle.jdbc.OracleDriver', password: 'MYPASSWD', url: 'jdbc:oracle:thin:@dbhost:1521/otrade' }" -X POST \ http://${host}:7001/management/weblogic/latest/\ edit/partitions/partition1/resourceGroups/partition1-rg/\ JDBCSystemResources/ds3/JDBCResource/JDBCDriverParams echo "\nSet the Properties Params" ${cmd} -d "{ value: 'dbuser', name: 'user' }" -X POST \ http://${host}:7001/management/weblogic/latest/\ edit/partitions/partition1/resourceGroups/partition1-rg/\ JDBCSystemResources/ds3/JDBCResource/JDBCDriverParams/properties/properties echo "\nActivate the changes" ${cmd} -d '{}' \ -X POST \ http://${host}:7001/management/weblogic/latest/edit/changeManager/activate
詳細は、次を参照してください:
『Fusion Middleware ControlによるOracle WebLogic Serverの管理』のWebLogic Server JDBCデータ・ソースに関する項。
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのデータ・ソースの構成に関する項。
RESTを使用したJDBCシステム・リソースの構成の例は、『RESTful管理サービスによるOracle WebLogic Serverの管理』のシステム・リソースの構成に関する項およびパーティション・スコープのシステム・リソースの作成に関する項を参照してください。