Show Menu
トピック×

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

MSRP について

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

要件

MongoDB 設定

MSRP の選択

The Storage Configuration console allows for the selection of the default storage configuration, which identifies which implementation of SRP to use.
オーサー環境でストレージ設定コンソールにアクセスするには:
  • From global navigation: Tools > Communities > Storage Configuration
  • 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
    • 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. 新しいSolr設定ファイルのインストール
  2. 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:
    • 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 Communities 6.1以降に読み込むために、以前のバージョンのAEM SocialコミュニティからUGCを書き出すようにカスタマイズできます。

エラー - 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. バンドルをAEMインスタンスの「crx-quickstart/install」フォルダーにコピーします
  2. AEMインスタンスの再起動