5 高可用性

この章では、Oracle Fusion Middlewareの高可用性に関する問題について説明します。

この章の内容は次のとおりです。

自動サービス移行に関する問題

この項の内容は、次のとおりです。

Oracle User Messaging Service 12c (12.1.3)は自動サービス移行をサポートしない

高可用性を活用できるエンタープライズ・デプロイメントでは、Oracle BAMを構成して、サーバーに障害が発生した場合に特定のサービスをクラスタ内の別の管理対象サーバーに移行する自動サービス移行を使用することをお薦めしています。

ただし、Oracle BAMが恒常的に負荷の高いUser Messaging Service (UMS)メッセージを生成しているいくつかのシナリオでは、管理対象サーバーの障害によっていくつかのアラート・メッセージがUMSキューにスタックされたままになる可能性があります。これは、現在UMS 12c (12.1.3)は自動サービス移行をサポートしていないためです。

この問題を回避するには、障害が発生したOracle BAM管理対象サーバーを再起動してUMSキューのメッセージをリカバリします。BAMサーバーの障害発生後に適切な容量と負荷持続性を復旧させるには、次の2つのことを行う必要があります。

  • 障害が発生した管理対象サーバーを再起動します。

  • 移行されたサービスを元の管理対象サーバーにフェイルバックします。

詳細は、『Oracle SOA Suiteエンタープライズ・デプロイメント・ガイド』自動サービス移行発生後のOracle BAMサービスのフェイルバックに関する項を参照してください。

BAMサーバーを再起動するとご使用のシステムのリカバリ時間目標(RTO)を満たさなくなる場合は、デフォルトのJMSプロバイダのかわりにアドバンスト・キューイング(AQ) JMSでUMSを構成できます。詳細は、『Oracle User Messaging Serviceの管理』の付録BにあるAQ JMSによるUser Messaging Serviceの構成に関する項を参照してください。

Oracle BAMに関する問題

この項の内容は、次のとおりです。

スケールアップ後のOracle BAMの構成

ドメインの構成後、Oracle BAMに追加構成ステップが必要です。バージョン12.1.3の『Oracle Fusion Middleware高可用性ガイド』の高可用性用のBAMの構成に関する項を参照してください。

動的SOAクラスタを使用してBAMをドメインに追加する際にBAM JNDI外部プロバイダが作成されない

BAMをドメインに追加する際には、外部のJNDIプロバイダがいくつか作成されます。そのうちの1つBAMForeignJndiProviderは、SOAクラスタを指すように構成されます。

SOAクラスタが動的の場合、JNDIプロバイダは正しく指定されず、構成ウィザード中に外部JNDIプロバイダは作成されません。

BAMを追加するようにドメインを拡張した後、BAMForeignJNDIProviderおよびBPMForeignJNDIProviderの2つのJNDIプロバイダをドメインに作成する必要があります。

  1. BAMForeignJNDIProviderを作成します。

    1. Weblogicコンソールにログインします。「ドメイン」「環境」「サービス」「外部JNDIプロバイダ」にナビゲートします。

    2. 「新規」をクリックします。

    3. 名前をBAMForeignJNDIProviderに変更し、「次へ」をクリックします。

    4. ターゲットとしてSOAクラスタを選択します。「終了」をクリックします。外部JNDIプロバイダBAMForeignJNDIProviderが作成されます。

    5. BAMForeignJNDIProviderリンクをクリックします。「一般」タブで次のプロパティを入力します。

            初期コンテキスト・ファクトリ : weblogic.jndi.WLInitialContextFactory

      プロバイダURL : BAMサーバーのURL例 t3://host1:9001,host2:9001

    6. 「保存」をクリックします。

    7. 「リンク」タブをクリックします。次の表に示すように、BAM永続サービスおよびBAM構成サービスのそれぞれに、リンクを2つ作成します。

    8. SOAサーバーを再起動します(これは、必須です。再起動しないと、外部JNDIは動作せず、stackoverflowエラーが発生します)。

    サービス ローカルJNDI名 リモートJNDI名

    BAM永続サービス

    OracleBeam#oracle.beam.common.client.service.persistence.BeamPersistence

    OracleBeam#oracle.beam.common.client.service.persistence.BeamPersistence

    BAM構成サービス

    ConfigSession#oracle.beam.config.common.ConfigSession

    ConfigSession#oracle.beam.config.common.ConfigSession

  2. BPMForeignJNDIProviderを作成します。

    1. WebLogicコンソールにログインします。ホームページで「外部JNDIプロバイダ」リンクをクリックします。

    2. 「新規」をクリックします。名前をBPMForeignJNDIProviderに変更し、「次へ」をクリックします。

    3. ターゲットとしてBAMクラスタを選択します。「終了」をクリックします。外部JNDIプロバイダBPMForeignJNDIProviderが作成されます。

    4. BPMForeignJNDIProviderリンクをクリックします。「一般」タブで次のプロパティを入力します。

          初期コンテキスト・ファクトリ: weblogic.jndi.WLInitialContextFactory

      プロバイダURL: BPMサーバーのURLの例t3://soahost1:8001,soahost2:8001など

    5. 「保存」をクリックします。

    6. 「リンク」タブをクリックします。次の表に示されているBPMサービスのそれぞれにリンクを作成します。

    7. BAMサーバーを再起動します。

    サービス ローカルJNDI名 リモートJNDI名

    UserMetadataService

    UserMetadataService

    UserMetadataService

    TaskEvidenceService

    TaskEvidenceServiceBean

    TaskEvidenceServiceBean

    RuntimeConfigService

    RuntimeConfigService

    RuntimeConfigService

    BPMProcessModelService

    ejb/bpm/services/ProcessModelServiceBean

    ejb/bpm/services/ProcessModelServiceBean

    BPMProcessMetadataService

    ejb/bpm/services/ProcessMetadataServiceBean

    ejb/bpm/services/ProcessMetadataServiceBean

    BPMProcessDashboardService

    ejb/bpm/services/ProcessDashboardServiceBean

    ejb/bpm/services/ProcessDashboardServiceBean

    BPMProcessAnalyticsServiceBean

    ejb/bpm/services/ProcessAnalyticsServiceBean

    ejb/bpm/services/ProcessAnalyticsServiceBean

    BPMInstanceQueryService

    ejb/bpm/services/InstanceQueryServiceBean

    ejb/bpm/services/InstanceQueryServiceBean

    BPMInstanceManagementService

    ejb/bpm/services/InstanceManagementServiceBean

    ejb/bpm/services/InstanceManagementServiceBean

    BPMUserAuthenticationService

    ejb/bpm/services/BPMUserAuthenticationServiceBean

    ejb/bpm/services/BPMUserAuthenticationServiceBean

    TaskService

    ejb/bpel/services/workflow/TaskServiceBean

    ejb/bpel/services/workflow/TaskServiceBean

    TaskMetadataService

    ejb/bpel/services/workflow/TaskMetadataServiceBean

    ejb/bpel/services/workflow/TaskMetadataServiceBean

    BPMDataObjectSecurityService

    BPMAnalytics#oracle.bpm.metrics.dataobject.security.IBPMDataObjectSecurityServiceRemote

    BPMAnalytics#oracle.bpm.metrics.dataobject.security.IBPMDataObjectSecurityServiceRemote

OSB拡張機能後、UMSJMSJDBCSTORE_AUTO_2で誤った移行ポリシー

SOA動的クラスタを含むドメインにOSB動的クラスタを追加していて、UMSJMSJDBCSTORE_AUTO_1永続ストアのポリシーをすでにoffではないものに変更している場合、OSB_Cluster用に作成されたUMSJMSJDBCSTORE_AUTO_2は移行ポリシーを継承します。この継承により、OSB_Clusterにデフォルトでリース構成はないため構成エラーが発生し、管理サーバーは起動に失敗します。

管理サーバーは起動に失敗して、次のエラーを表示します。

weblogic.management.ManagementException: [Management:141266]Parsing 
failure in config.xml: The following failures occurred: 
-- An attempt was made to set the migration-policy of JDBCStore 
UMSJMSJDBCStore_auto_2 to "On-Failure". Before automatic migration of any 
kind can be used, the MigrationBasis must be set in the ClusterMBean.

この問題を修正するには、次に示すオプションに従います。

config.xmlを手動で修正します。ドメインのconfig.xmlを編集します。

  • OSBクラスタをターゲットとするUMSJMSJDBCSTORE_AUTO_2要素を検索します。

  • <migration-policy>をoffに設定します。

  • たとえば:

    <jdbc-store>
        <name>UMSJMSJDBCStore_auto_2</name>
      .. 
    
        <migration-policy>off</migration-policy>
    .....
      </jdbc-store>