MSRP - MongoDB ストレージリソースプロバイダー msrp-mongodb-storage-resource-provider

MSRPについて about-msrp

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

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

要件 requirements

MongoDB設定 mongodb-configuration

MSRPを選択 select-msrp

​ ストレージ設定コンソール ​では、使用するSRPの実装を特定するデフォルトのストレージ設定を選択できます。

オーサーで、ストレージ設定コンソールにアクセスするには、次の手順を実行します。

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

msrp

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

  • mongoDB設定

    • mongoDB URI

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

    • mongoDB データベース

      default: communities

    • mongoDB UGC コレクション

      default: content

    • mongoDB Attachment Collection

      default:添付ファイル

  • SolrConfiguration

    • Zookeeper ホスト

      外部ZooKeeperを使用してSolrCloud モード ​で実行する場合は、この値を​ my.server.com:2181 ​など、ZooKeeperのHOST:PORTに設定します

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

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

      • Solr URL
        スタンドアロンモードでSolrと通信するために使用されるURL。
        SolrCloud モードで実行している場合は、空白のままにします。
        Default: https://127.0.0.1:8983/solr/

      • Solr コレクション
        Solr コレクション名。
        Default: collection1

  • 「送信」を選択します。

NOTE
デフォルトの名前communitiesであるmongoDB データベースは、​ ノードストアまたはデータ(バイナリ)ストア ​に使用されるデータベースの名前に設定しないでください。 AEM 6.5🔗のStorage Elementsも参照してください。

MongoDB レプリカセット mongodb-replica-set

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

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

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

レプリカセットに接続するためのURLの例 example-url-for-connecting-to-a-replica-set

# 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 設定 solr-configuration

Solr インストールは、異なるコレクションを使用して、ノードストア(Oak)と共通ストア(MSRP)の間で共有される場合があります。

Oak コレクションとMSRP コレクションの両方を集中的に使用する場合は、パフォーマンス上の理由から2番目のSolrをインストールできます。

実稼動環境の場合、SolrCloud モード ​では、スタンドアロンモード(単一のローカル Solr セットアップ)よりもパフォーマンスが向上します。

構成の詳細については、Solr Configuration for SRPを参照してください。

アップグレード upgrading

MSRPで設定された以前のバージョンからアップグレードする場合は、次のことが必要になります。

  1. AEM Communities🔗への アップグレードを実行します

  2. 新しいSolr設定ファイルのインストール

  3. MSRPのインデックス再作成
    セクション MSRP インデックス再作成ツール ​を参照してください

設定の公開 publishing-the-configuration

MSRPは、すべてのオーサーインスタンスとパブリッシュインスタンスの共通ストアとして識別する必要があります。

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

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

ユーザーデータの管理 managing-user-data

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

MSRP インデックス再作成ツール msrp-reindex-tool

新しい設定ファイルをインストールしたり、破損したSolr インデックスを修復したりする場合に、MSRP用にSolrを再インデックス化するためのHTTP エンドポイントがあります。

このツールを使用すると、MongoDBはMSRPの​ truth ​のソースとなります。バックアップはMongoDBでのみ実行できます。

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

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

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

合理的なデフォルトは5000です。

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

cURL コマンドを使用したMSRP インデックス再作成ツールの実行 running-msrp-reindex-tool-using-curl-command

次のcURL コマンドは、HTTP リクエストがMSRPに格納されたUGCを再インデックス化するために必要なことを示しています。

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

cURL -u signin -d data reindex-url

signin =管理者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

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

MSRPの再インデックスの例 msrp-reindex-example

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

MSRPのデモ方法 how-to-demo-msrp

デモ環境または開発環境のMSRPをセットアップするには、​ デモ用MongoDBのセットアップ方法を参照してください。

トラブルシューティング troubleshooting

MongoDBでUGCが表示されない ugc-not-visible-in-mongodb

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

すべてのオーサーインスタンスとパブリッシュAEM インスタンスで、Storage Configuration Consoleを再訪問するか、AEM リポジトリを確認します。

  • JCRで、/etc/socialconfigの場合

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

アップグレード後にUGCが消える ugc-disappears-after-upgrade

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

GitHubには、次のような目的で利用できるオープンソースツールがあります。

移行ツールは、以前のバージョンのAEM ソーシャルコミュニティからUGCを書き出し、AEM Communities 6.1以降に読み込むようにカスタマイズできます。

エラー – フィールド provider_idが定義されていません error-undefined-field-provider-id

ログに次のエラーが表示された場合は、Solr スキーマファイルが正しく設定されていないことを示します。

JsonMappingException:未定義のフィールド provider_id 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へのセキュアな接続が失敗する secure-connection-to-mongodb-fails

クラス定義が見つからなかったためにMongoDB サーバーへのセキュアな接続が失敗した場合は、公開されているMaven リポジトリから利用可能なMongoDB ドライバーバンドル mongo-java-driverを更新する必要があります。

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

リソース resources

recommendation-more-help
experience-manager-65-help-communities