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

MSRP について about-msrp

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

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

要件 requirements

MongoDB の設定 mongodb-configuration

MSRP を選択 select-msrp

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

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

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

msrp

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

  • mongoDB の設定

    • mongoDB URI

      デフォルト//localhost/?maxPoolSize=10&waitQueueMultiple=5&readPreference=secondaryPreferred

    • mongoDB データベース

      デフォルト: communities

    • mongoDB UGC コレクション

      デフォルト: content

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

      デフォルト:添付ファイル

  • SolrConfiguration

    • Zookeeper ホスト

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

      ZooKeeper アンサンブルの場合、コンマ区切りの HOST:PORT 値を入力します(host1:2181,host2:2181 など)。

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

      • Solr URL
        スタンドアロンモードで Solr との通信に使用する URL。
        SolrCloud モードで実行する場合は空白のままにします。
        デフォルト//127.0.0.1:8983/solr/

      • Solr コレクション
        Solr コレクション名。
        デフォルト:collection1

  • 送信」を選択します。

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

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 セットアップ)よりもパフォーマンスが向上します。

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

アップグレード 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 の true のソースになります。バックアップに必要なのは MongoDB のみです。

UGC ツリー全体のインデックスを再作成することも、*path *data パラメーターで指定されているように、特定のサブツリーのみを再作成することもできます。

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

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

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

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

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

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

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

cURL -u サインイン -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

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インスタンスで、​ ストレージ設定コンソール ​ を再度参照するか、AEM リポジトリを確認します。

  • JCR で、/etc/socialconfig

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

アップグレード後に UGC が表示されなくなる ugc-disappears-after-upgrade

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

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

移行ツールは、以前のバージョンのAEM Social Communities から 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 サーバーへのセキュリティで保護された接続を確立しようとする試みが失敗した場合は、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 インスタンスを再起動します。

リソース resources

recommendation-more-help
81e2cd9d-0789-409d-b87c-2a8ce4f28791