プライマリ・コンテンツに移動
Oracle® Fusion Middleware WebLogic Server Multitenantの使用
12c (12.2.1)
E67376-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

15 JDBCの構成

この章では、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つ以上のリソース・グループを定義します。

JDBCデータ・ソースの構成: 関連する考慮事項

次の各項では、マルチテナント環境でデータ・ソースを構成する際の考慮事項について説明します。

データ・ソースのスコープ

ドメイン・レベルのリソース・グループまたはパーティション内にスコープされたデータ・ソースの作成は、ドメイン・レベルのシステム・リソースの作成と似ています。唯一の追加の手順は、スコープを指定することです。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ネームスペース
アプリケーション アプリケーション
パーティション・リソース・グループ パーティション
ドメイン・リソース・グループ グローバル

JNDIネームスペースから取得されたデータ・ソース・インスタンスは、異なるパーティション・コンテキストでアクセスされても、スコープを保持することに注意してください。

あるパーティションで実行中のアプリケーションが別のパーティションのリソースにアクセスする場合、クロス・パーティション・アクセスが発生します。これにより、パーティション・レベルのアクセスは、ドメイン・レベルにも適用され、その逆も行われます。パーティションURL、またはdomain:構文かpartition:構文を使用して、あるパーティションを実行中のアプリケーションが別のパーティションで定義されたデータ・ソースのJNDIルックアップを実行する場合、クロス・パーティション・データ・ソース・アクセスが発生します。WebLogic Server 12.2.1では、これにより、アプリケーションで変更が必要であることを認識するように、ログに警告が生成されます。

サポートされていない非推奨のドライバ

JDBC URL接頭辞の下に登録される3つのWebLogic Serverドライバ・タイプ(jdbc:weblogic:pooljdbc:weblogic:rmiおよびjdbc:weblogic:jts)は、非推奨で、パーティション・スコープのデータ・ソースでサポートされていません。データ・ソース名でconnectionPoolIDプロパティを指定する既存のJDBCクライアント・ロジックでは、パーティション内のデータ・ソースの検出に失敗することはありません。プール、JTSまたはRMIドライバを使用するアプリケーションは、パーティション構成で機能するのではなくデータ・ソースJNDI名を指定するように、構成を変更する必要があります。

これに関連して、EJB RDBMS Beanディスクリプタは、JDBCセッションでパーティション・スコープのデータ・ソースにアクセスするために<pool-name>を使用することはできません。この状況では、JNDI名の使用がサポートされます。

JDBCデータ・ソースの構成: WLSTの例

次に示すのは、マルチテナント環境での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

JDBCデータ・ソースの構成: WLS管理コンソールの例

次の各項では、WLS管理コンソールでの「JDBCデータ・ソースの構成: WLSTの例」の結果を示しています。

JDBCデータ・ソースの構成

WLS管理コンソールの「ホーム」ページから、「データ・ソース」を選択して、すべてのスコープ(ドメイン、リソース・グループ・テンプレートおよびリソース・グループ)に構成されたすべてのシステム・リソース・データ・ソースがリストされるサマリー表を表示します。この表には、スコープおよびパーティション名(該当する場合)が表示されます。

データ・ソースの名前をクリックします。「構成」→「一般」ページには、既存のJDBCシステム・リソース・オーバーライドによる影響を受けない構成属性が表示されます。オーバーライドは、このレベルでは表示されません。

「セキュリティ」→「資格証明マッピング」を選択し、「新規」をクリックします。データ・ソースに関連付けられた資格証明マッピングのWLSユーザー、リモート・ユーザーおよびリモート・パスワードの値を入力します。

データ・ソースのサマリー・ページで、「新規」をクリックし、「汎用データ・ソース」を選択します。「スコープ」ドロップダウン・メニューから、グローバル・データ・ソース、または既存のリソース・グループ・テンプレートまたはリソース・グループにデータ・ソースを作成するかどうかを指定できます(使用可能なすべてのスコープの名前がドロップダウン・メニューに表示されます)。

WLS管理コンソールの「ホーム」ページから、「ドメイン・パーティション」を選択して、構成されたすべてのパーティションがリストされるドメイン・パーティションのサマリー表を表示します。各パーティションの情報には、ネストされたリソース・グループ、デフォルト・ターゲットおよび状態が含まれます。

特定のパーティションを構成するには、その名前をクリックします。「リソース・オーバーライド」→「JDBCシステム」を選択して、既存のJDBCオーバーライドがリストされるサマリー表を表示します。新しいJDBCシステム・リソース・オーバーライドを作成するには、「新規」をクリックします。「データ・ソース」ドロップダウン・メニューには、オーバーライドの作成に使用できるデータ・ソースがリストされます。WLS管理コンソールには、パーティション内のすべてのリソース・グループのデータ・ソースがリストされますが、リソース・グループ・テンプレートから導出されたリソース・グループのみ、オーバーライドが必要です。非導出リソース・グループは直接更新できます。オーバーライドはお薦めしません。既存のオーバーライドごとに、表には、オーバーライドの名前、データ・ソースおよびURLが表示されます。オーバーライド名をクリックすると、オーバーライド値(URL、ユーザーまたはパスワード)を更新できる構成ページが表示されます。

JDBCデータ・ソースのモニタリング

データ・ソースは様々なレベルでモニターできます。ドメイン・レベルで、「ホーム」ページから、「データ・ソース」→「モニタリング」を選択して、すべてのスコープ内で実行中のすべてのデータ・ソースを表示します。

パーティション・レベルで、「ドメイン・パーティション」を選択し、特定のパーティション名をクリックします。「リソース・グループ」を選択し、特定のリソース・グループ名をクリックし、「サービス」→「JDBC」を選択して、このスコープで定義されたデータ・ソースを表示します。

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-pathresource-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> 

リソース・デプロイメント・プランをパーティションに関連付けるには、パーティションの「構成」→「一般」ページにリソース・デプロイメント・プランへのパスを指定します。

JDBCデータ・ソースの構成: Fusion Middleware Controlの例

Fusion Middleware Control (FMWC)を使用して、WLS管理コンソールを使用する場合と類似した方法でJDBCオーバーライドを構成できますが、ユーザー・インタフェースおよびナビゲーション・パスが異なります。ただし、データ・ソース・セキュリティは現在FMWCで使用できないため、WLS管理コンソールを使用して構成する必要があります。

「WebLogicドメイン」ドロップダウン・メニューから、「JDBCデータ・ソース」を選択して、関連するタイプの既存のデータ・ソース、スコープ、および必要に応じて、リソース・グループ、リソース・グループ・テンプレートおよびパーティション名のリストを表示します。

既存のデータ・ソースを編集するには、その名前をクリックします。

新しいデータ・ソースを作成するには、「作成」をクリックし、作成するデータ・ソースのタイプを選択します。「データソース・プロパティ」ページで、「スコープ」ドロップダウン・メニューを使用して、データ・ソースのスコープを指定します。

「WebLogicドメイン」ドロップダウン・メニューから、「環境」→「ドメイン・パーティション」を選択し、パーティション属性を編集するパーティション名をクリックします。

JDBCシステム・リソース・オーバーライドを作成するには、パーティション名をクリックします。左側の「ドメイン・パーティション」ドロップダウン・メニューから、「管理」→「リソース・オーバーライド」を選択します。このページを使用して、リソース・グループ・テンプレートのリソース・タイプおよび名前とともにリソース・グループ・テンプレートから導出されたすべてのリソース・グループを表示します。既存のオーバーライドがない場合、「オーバーライドあり」列は空白になります。「オーバーライドの編集」アイコンをクリックして、オーバーライドを作成します。「オーバーライドあり」列にチェック・マークがある場合、「オーバーライドの編集」アイコンをクリックして、既存のオーバーライドを更新します。

JDBCデータ・ソースの構成: RESTの例

すべての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

JDBCデータ・ソースの構成: 関連タスクおよびリンク

詳細は、次を参照してください:

  • 『Fusion Middleware ControlによるOracle WebLogic Serverの管理』のWebLogic Server JDBCデータ・ソースに関する項。

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプのデータ・ソースの構成に関する項。

  • RESTを使用したJDBCシステム・リソースの構成の例は、『RESTful管理サービスによるOracle WebLogic Serverの管理』のシステム・リソースの構成に関する項およびパーティション・スコープのシステム・リソースの作成に関する項を参照してください。