この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

プラットフォームキャッシュの考慮事項

プラットフォームキャッシュを使用する場合は、次の考慮事項を確認してください。
  • キャッシュは永続的ではありません。データ損失に対する保証はありません。
  • 組織で Apex クラスを変更すると、一部または全部のキャッシュが無効になります。
  • キャッシュ内のデータは暗号化されません。
  • 組織キャッシュでは、同時に発生する複数の Apex トランザクションで読み取りおよび書き込みを並行して行うことができます。たとえば、あるトランザクションでキー PetName の値を Fido に更新するとします。同時に、別のトランザクションで同じキーの値を Felix に更新します。両方の書き込みは成功しますが、2 つの値のいずれかが任意に選択され、後でその値がトランザクションで読み取られます。ただし、この任意の選択はトランザクション単位ではなくキー単位で行われます。たとえば、あるトランザクションで PetType="Cat"PetName="Felix" を書き込むとします。同時に別のトランザクションで PetType="Dog"PetName="Fido" を書き込みます。この場合、PetType の値は最初のトランザクションから選択され、PetName の値は 2 番目のトランザクションから選択される可能性があります。後でこれらのキーに対して get() がコールされると、PetType="Cat"PetName="Fido" が返されます。
  • キャッシュの欠落が発生する可能性があります。以前キャッシュした項目が見つからない場合を考慮してコードを作成することをお勧めします。または、キャッシュの欠落をチェックする CacheBuilder インターフェースを使用します。
  • プラットフォームキャッシュ統計メソッド、つまり getAvgGetSize()getAvgGetTime()getMaxGetSize()getMaxGetTime()、および getMissRate() はすべて、キャッシュサーバが再起動した時点から始まるデータを報告します。再起動前のデータは含まれません。
  • パーティションは、Salesforce 内の制限に従う必要があります。
  • セッションキャッシュには最大 8 時間、値を保存できます。組織キャッシュには最大 48 時間、値を保存できます。
  • Salesforce フローを使用する組織の場合。
    • プロセスにスケジュール済みアクションが含まれる場合は、プロセス内のその後のアクションが、セッションキャッシュ値を保存または取得する Apex コードを呼び出さないことを確認します。Apex アクションと、Apex トリガを起動させるデータベースに対してプロセスが行った変更には、セッションキャッシュの制限が適用されます。
    • フローに一時停止要素が含まれる場合は、フロー内のそれ以降の要素が、セッションキャッシュ値を保存または取得する Apex コードを呼び出さないことを確認します。Apex アクションと、Apex トリガを起動させるデータベースに対してフローが行った変更には、セッションキャッシュの制限が適用されます。