ここに表示されているのは Apigee Edge のドキュメントです。
Go to the
Apigee X のドキュメントに移動します。 info
このドキュメントでは、Apigee Edge の Message Processor で文字列の重複除去を有効にする方法について説明します。
文字列の重複除去は、Java アプリケーション内の重複する String オブジェクトによって占有されるメモリを節約するのに役立つ Java 機能です。重複する String 値または同一の String 値が同じ文字配列を共有することで、Java ヒープ メモリ内の String オブジェクトのメモリ使用量を削減します。
Apigee Edge Message Processor は Java ベースのコンポーネントです。Message Processor で文字列の重複除去を使用すると、特に API プロキシで String が多用されている場合に、メモリ使用量を削減して API プロキシのパフォーマンスを向上させることができます。
文字列の重複除去機能は、Java アプリケーションの G1 ガベージ コレクタ(G1GC)でのみ使用できます。Message Processor でこの機能を有効にするには、 G1GC がすでに有効になっているか、Message Processor で G1GC と文字列の重複除去の両方を同時に有効にする必要があります。
始める前に
- G1GC に慣れていない場合は、 G1 ガベージ コレクタのスタートガイドをご覧ください。
- 文字列の重複除去に慣れていない場合は、 G1 ガベージ コレクタの文字列の重複除去 をご覧ください。
- Edge Message Processor で G1GC を有効にする方法に慣れていない場合は、 Message Processor で G1GC を有効にするをご覧ください。
- Private Cloud 上の Edge のプロパティの構成に慣れていない場合は、 Edge の構成方法をご覧ください。
Message Processor で文字列の重複除去を有効にする
このセクションでは、Edge Message
Processor で文字列の重複除去機能を有効にする方法について説明します。文字列の重複除去は、Message Processor コンポーネントのプロパティ
useStringDeduplication を使用して有効にできます。デフォルトでは、この
プロパティは Message Processor で false に設定されています。Message
Processor のプロパティを構成するには、Edge の構成方法で説明されている構文に従ってトークンを使用します。
Message Processor で文字列の重複除去を有効にするには、次の操作を行います。
useStringDeduplication プロパティのトークンを見つける
次の手順では、useStringDeduplication のトークンを見つける方法について説明します。
-
次のコマンドを使用して、Message Processor のソース ディレクトリ
/opt/apigee/edge-message-processor/sourceでuseStringDeduplicationプロパティを検索します。grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/source
-
このコマンドの出力には、Message Processor のプロパティ
useStringDeduplicationのトークンが次のように表示されます。/opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}{T}{/T}タグで囲まれた文字列は、Message Processor の.propertiesファイルで設定できるトークンの名前です。したがって、プロパティuseStringDeduplicationのトークンは次のようになります。conf_system_useStringDeduplication
Message Processor で文字列の重複除去を有効にする
次の手順では、Apigee Message Processor で文字列の重複除去を有効にする方法について説明します。
-
Message Processor マシンのエディタで
/opt/apigee/customer/application/message-processor.propertiesファイルを開きます。ファイルが存在しない場合は、作成します。 次に例を示します。vi /opt/apigee/customer/application/message-processor.properties
-
このファイルに次の行を追加します。
conf_system_useStringDeduplication=true
- 変更を保存します。
-
このプロパティ ファイルが
apigeeユーザーによって所有されていることを確認します。次に例を示します。chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
次のコマンドを使用して Message Processor を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 複数の Message Processor がある場合は、すべての Message Processor で上記の手順を繰り返します。
Message Processor で文字列の重複除去を確認する
このセクションでは、Message Processor で文字列の重複除去が正常に有効になっていることを確認する方法について説明します。
トークン conf_system_useStringDeduplication を使用して Message Processor で文字列の重複除去を有効にしても、実際のプロパティ useStringDeduplication が新しい値に設定されていることを確認する必要があります。
-
/opt/apigee/edge-message-processor/confディレクトリでプロパティuseStringDeduplicationを検索し、新しい値が設定されていることを確認します。次に例を示します。grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/conf
-
Message Processor で文字列の重複除去が正常に有効になっている場合、上記の
コマンドを実行すると、
system.propertiesファイルに新しい値が表示されます。Message Processor で文字列の重複除去を有効にした後の、上記のコマンドの出力例は次のとおりです。
/opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
出力例では、プロパティ
useStringDeduplicationがsystem.propertiesで新しい値trueに設定されています。これは、Message Processor で文字列の重複除去が正常に有効になっていることを示します。 -
プロパティ
useStringDeduplicationの古い値が表示される場合は、 Message Processor で文字列の重複除去を有効にする で説明されているすべての手順を正しく実行していることを確認します。手順が抜けている場合は、すべての手順をもう一度正しく繰り返します。 - それでも文字列の重複除去を有効にできない場合は、 Apigee サポートにお問い合わせください。