MSRP - MongoDB ストレージリソースプロバイダー

MSRP について

MSRPを共通ストアとして使用するようにAEM Communitiesが設定されている場合、ユーザー生成コンテンツ(UGC)は、すべてのオーサーインスタンスとパブリッシュインスタンスからアクセスでき、同期や複製は不要です。

SRP オプションの特性推奨されるトポロジも参照してください。

要件

MongoDB 設定

MSRP の選択

ストレージ設定コンソールでは、デフォルトのストレージ設定を選択できます。これにより、使用するSRPの実装が識別されます。

オーサー環境でストレージ設定コンソールにアクセスするには:

  • グローバルナビゲーションから、ツール/コミュニティ/ストレージ設定​を選択します。

msrp

  • MongoDBストレージリソースプロバイダー(MSRP)​を選択します

  • MongoDB 設定

    • MongoDB URI

      default:mongodb://localhost/?maxPoolSize=10&waitQueueMultiple=5&readPreference=secondaryPreferred

    • MongoDB データベース

      default:コミュニティ

    • MongoDB UGC コレクション

      default:content

    • MongoDB 添付ファイルコレクション

      default:attachments

  • SolrConfiguration

    • Zookeeper ホスト

      SolrCloudモードで外部のZooKeeperと共に実行する場合、my.server.com:2181​のように、この値をZooKeeperのHOST:PORTに設定します。

      ZooKeeperアンサンブルの場合は、host1:2181,host2:2181​のように、コンマ区切りのHOST:PORT値を入力します

      内部ZooKeeperを使用してスタンドアロンモードでSolrを実行する場合は、空白のままにします。
      デフォルト: <blank>

      • Solr URL​スタンドアロンモードで Solr と通信するために使用する URL。SolrCloud モードで実行している場合は、空白のままにします。

        デフォルト:https://127.0.0.1:8983/solr/

      • Solr コレクション​Solr コレクションの名前。

        デフォルト:collection1

  • 送信​を選択

メモ

mongoDB データベース(デフォルトの名前は communities)を、ノードストアまたはデータ(バイナリ)ストアで使用されているデータベースの名前に設定することはできません。AEM 6.5](…/…/help/sites-deploying/storage-elements-in-aem-6.md)の[ストレージ要素も参照してください。

MongoDB レプリカセット

本番環境では、プライマリ/セカンダリ・レプリケーションと自動フェイルオーバーを実装するMongoDBサーバのクラスタであるレプリカ・セットをセットアップすることを強くお勧めします。

レプリカセットについて詳しくは、MongoDB の レプリケーションに関するドキュメントを参照してください。

レプリカセットの操作と、アプリケーションと MongoDB のインスタンスとの間の接続を定義する方法については、MongoDB の接続文字列の URI フォーマットに関するドキュメントを参照してください。

レプリカセットに接続するための URL の例

# Example url for:
# servers "mongoserver1", "mongoserver2", "mongoserver3"
# replica set 'rs0'
# port numbers only necessary if not default port 27017
mongodb://mongoserver1:<mongoport1>,mongoserver2:<mongoport2>,mongoserver3:<mongoport3>/?replicaSet=rs0&maxPoolSize=100&waitQueueMultiple=50&readPreference=secondaryPreferred

Solr 設定

別々のコレクションを使用することで、1 つの Solr をノードストア(Oak)と共通ストア(MSRP)の間で共有できます。

Oak と MSRP のコレクションがどちらも高頻度で使用される場合は、パフォーマンス上の理由から 2 つ目の Solr をインストールすることもできます。

実稼働環境では、SolrCloud modeを使用すると、スタンドアロンモード(ローカルで1つのSolr設定)よりもパフォーマンスが向上します。

設定について詳しくは、SRP 用の Solr 設定を参照してください。

アップグレード

MSRPを使用して設定された以前のバージョンからアップグレードする場合は、次の操作が必要です。

  1. AEM Communitiesへのアップグレードを実行
  2. 新しいSolr構成ファイルのインストール
  3. MSRPの再インデックス
    MSRP再インデックスツールを参照

設定の公開

すべてのオーサーインスタンスとパブリッシュインスタンスで、MSRP が共通ストアとして指定されている必要があります。

同じ設定を発行環境で使用できるようにするには、オーサーインスタンスにログインし、次の手順に従います。

  • メインメニューから​ツール > 操作 > レプリケーション​に移動します。
  • ツリーをアクティブにする」を選択します。
  • 開始パス:
    • /etc/socialconfig/srpc/を参照
  • アクティブ化」を選択します。

ユーザーデータの管理

パブリッシュ環境で頻繁に入力されるユーザー、ユーザープロファイルおよびユーザーグループについては、以下を参照してください。​**

MSRP インデックス再作成ツール

新しい設定ファイルをインストールしたり、Solr のインデックスを修復したりするときは、MSRP 用の Solr のインデックス再作成用の HTTP エンドポイントを使用できます。

このツールでは、MongoDB が MSRP の情報源になるので、バックアップを取るときは MongoDB だけで十分です。**

UGCツリー全体のインデックスを再作成するか、*path *dataパラメータで指定した特定のサブツリーのみを再インデックスできます。

このツールは、コマンドラインから cURL などの HTTP ツールを使用して実行できます。

インデックスを再構築する際、メモリとパフォーマンスの間には、*batchSize *dataパラメータで制御されるトレードオフがあります。このパラメータは、バッチごとに再インデックスされるUGCレコードの数を指定します。

適切なデフォルト値は 5000 です。

  • メモリに問題がある場合は、より小さい数値を指定します
  • 速度に問題がある場合は、速度を上げるには、大きい値を指定します

cURL コマンドを使用した MSRP インデックス再作成ツールの実行

以下に示す cURL コマンドは、MSRP に格納されている UGC のインデックス再作成の HTTP リクエストに必要なコマンドです。

基本的な形式は以下のとおりです。

cURL -u signin -d data reindex-url

signin = administrator-id:password例:admin:admin

data = "batchSize=size&path=path"

size =操作ごとに再インデックスするUGCエントリの数
/content/usergenerated/asi/mongo/

path =再インデックスするUGCツリーのルート位置

  • すべてのUGCのインデックスを再作成するには、asipath
    /etc/socialconfig/srpc/defaultconfiguration
  • インデックスを一部のUGCに限定するには、asipathのサブツリーを指定します

reindex-url = SRPの再インデックスのエンドポイント
http://localhost:4503/services/social/datastore/mongo/reindex

メモ

DSRP Solrの再インデックスを作成している場合、URLは​**/services/social/datastore/rdb/reindex**​です。

MSRP インデックス再作成の例

curl -s -u admin:admin -d 'batchSize=10000&path=/content/usergenerated/asi/mongo/' http://localhost:4503/services/social/datastore/mongo/reindex

MSRP のデモの実行方法

MSRP をデモ用に設定するには、MongoDB をデモ用に設定する方法を参照してください。

トラブルシューティング

UGC が MongoDB で表示されない

ストレージオプションの設定を確認し、MSRP がデフォルトのプロバイダーに設定されているかを確認してください。デフォルトでは、ストレージリソースプロバイダーはJSRPです。

すべての作成者および発行AEMインスタンスで、ストレージ設定コンソールに再度アクセスするか、AEMリポジトリを確認します。

  • JCRで、/etc/socialconfig

    • srpcノードを含まない場合、ストレージプロバイダーがJSRPであることを意味します。
    • srpcノードが存在し、ノードdefaultconfigurationが含まれる場合、デフォルトの構成のプロパティでMSRPをデフォルトプロバイダーとして定義する必要があります。

アップグレード後に UGC が表示されない

既存のAEM Communities6.0サイトからアップグレードした場合、既存のUGCは、AEM Communities6.3にアップグレードした後、SRP APIに必要な構造に従うように変換する必要があります。

GitHubには、この目的で使用できるオープンソースツールがあります。

移行ツールは、AEM Social Communitiesの以前のバージョンからUGCを書き出すようにカスタマイズして、AEM Communities6.1以降に読み込むことができます。

エラー - undefined field provider_id

以下のエラーがログに表示された場合は、Solr スキーマファイルが適切に設定されていません。

JsonMappingException: undefined field provider_id

Caused by: com.fasterxml.jackson.databind.JsonMappingException: undefined field provider_id
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:129)
at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:1819)
at com.adobe.cq.social.scf.core.BaseSocialComponent.toJSONString(BaseSocialComponent.java:196)
... 124 common frames omitted

このエラーを解決するには、標準MLSのインストールの手順に従う場合は、次の点を確認します。

  • XML設定ファイルが正しいSolrの場所にコピーされました。
  • 新しい設定ファイルを既存のファイルと置き換えた後に Solr を再起動した.

MongoDB へのセキュア接続が失敗する

MongoDB サーバーへのセキュア接続の試みが、クラス定義が見つからないという理由で失敗する場合は、MongoDB ドライバーバンドル mongo-java-driver(公開されている maven リポジトリで入手可能)を更新する必要があります。

  1. https://search.maven.org/#artifactdetails%7Corg.mongodb%7Cmongo-java-driver%7C2.13.2%7Cjar (バージョン2.13.2以降)からドライバをダウンロードします。
  2. バンドルをAEMインスタンスの「crx-quickstart/install」フォルダーにコピーします。
  3. AEM インスタンスを再起動します。

リソース

このページ

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free