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

MSRP について

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

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

要件

MongoDB 設定

MSRP の選択

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

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

  • From global navigation: Tools > Communities > Storage Configuration

chlimage_1-28

  • Select MongoDB Storage Resource Provider (MSRP)

  • MongoDB 設定

    • MongoDB URI

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

    • MongoDB データベース

      default: コミュニティ

    • MongoDB UGC コレクション

      default: content

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

      default: attachments

  • SolrConfiguration

    • Zookeeper ホスト​

      When running in SolrCloud mode with an external ZooKeeper, set this value to the HOST:PORT for the ZooKeeper, such as my.server.com:2181
      For a ZooKeeper Ensemble, enter comma-separated HOST:PORT values, such as host1:2181,host2:2181
      Leave blank if running Solr in standalone mode using the internal ZooKeeper.
      デフォルト: <空白>

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

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

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

      デフォルト: collection1

  • Select Submit

メモ

mongoDB データベース(デフォルトの名前は communities)を、ノードストアまたはデータ(バイナリ)ストアで使用されているデータベースの名前に設定することはできません。See also Storage Elements in AEM 6.

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 をインストールすることもできます。

For production environments, SolrCloud mode provides improved performance over standalone mode (a single, local Solr setup).

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

アップグレード

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

  1. Perform the upgrade to AEM Communities
  2. 新しいSolr構成ファイルのインストール
  3. Reindex MSRP
    See section MSRP Reindex Tool

設定の公開

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

パブリッシュ環境で同一の設定を使用できるようにするには:

  • 作成者:
    • Navigate from main menu to Tools > Operations > Replication
    • Select Activate Tree
    • 開始パス:
      • 参照先 /etc/socialconfig/srpc/
    • Select Activate

ユーザーデータの管理

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

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 = 1回の操作で再インデックスする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

メモ

If you are reindexing DSRP Solr, the URL is /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です。

On all author and publish AEM instances, revisit the Storage Configuration console or check the AEM repository:

  • In JCR, if /etc/socialconfig

    • Does not contain an srpc node, it means the storage provider is JSRP
    • If the srpc node exists and contains node defaultconfiguration, the defaultconfiguration's properties should define MSRP to be the default provider

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

If upgrading from an exisitng AEM Communities 6.0 site, any pre-existing UGC must be converted to conform to the structure required for the SRP API after upgrading to AEM Communities 6.3.

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. Download the driver from https://search.maven.org/#artifactdetails%7Corg.mongodb%7Cmongo-java-driver%7C2.13.2%7Cjar (version 2.13.2 or later)
  2. バンドルをAEMインスタンスの「crx-quickstart/install」フォルダーにコピーします
  3. AEMインスタンスの再起動

リソース

このページ