Heroku Connect の同期と接続の管理
最終更新日 2022年12月01日(木)
Table of Contents
Heroku Connect の各アドオンは、1 つの Heroku Postgres データベースと 1 つの Salesforce 組織に接続するように設定されます。この記事では、同期と接続を管理する方法について説明します。
Heroku Connect には、データを部分的に同期するメカニズムはありません。マッピングは常にすべてのレコードを同期します。アーカイブされたタスクとイベントに関連する例外については、「サポートされていないオブジェクト」を参照してください。
接続の設定
接続を設定するには、クイックスタート: Heroku Connect を参照してください。
接続の一時停止
データベースのアップグレードのような特定のタスクを実行するときに、Heroku Connect での同期アクティビティを一時停止することができます。
同期を一時停止する手順は、次のとおりです。
- Heroku Connect ダッシュボードを開きます。
Settings
(設定) タブをクリックします。Manage Connection
(接続の管理) をクリックします。Pause
(一時停止) ボタンをクリックします。
Heroku Connect は、保留中の操作があればすべて完了してから一時停止状態に移行します。一時停止しても、データベースのデータへの変更はトリガーログに追加され続けます。Salesforce で行われた変更のポーリングはありません。ストリーミングモードを使用した、マッピングに関する Salesforce からの PushTopic 通知も無視されます。
接続は IDLE
状態のときに限り一時停止できます。接続が長期間 POLLING_DB_CHANGES
ステータスのままである場合は、ログを確認してデバッグしてください。
接続の再開
一時停止中に Heroku Postgres データベースまたは Salesforce のデータに加えられた変更は、接続が再開すると自動的に同期されます。
同期を再開する手順は、次のとおりです。
- Heroku Connect ダッシュボードを開きます。
Settings
(設定) タブをクリックします。Manage Connection
(接続の管理) をクリックします。Resume
(再開) をクリックします。
Heroku Connect では、トリガーログエントリを処理して変更を Salesforce にプッシュすることによって、中断したところから処理を継続します。また、通常は Streaming API を使用するマッピングを含め、Salesforce で行われた変更をポーリングを使用して取得します。
サンドボックス更新後の接続の再作成
サンドボックス組織をリロードした場合、既存の接続を削除して再作成する必要があります。
以下の設定は手動で設定します。
- 共同作業者とその通知設定
- ベータ機能
- 書き込みアルゴリズム
- Salesforce API のバージョン
上記以外の再作成は次のようにして自動化できます。
- Connect Dashboard から設定をエクスポートします。
Settings
(設定) をクリックし、Import/Export Configuration
(設定のインポート/エクスポート)、Export Configuration
(設定のエクスポート) の順にクリックします。 - 読み取り/書き込みマッピングが 1 つでもある場合、それらのテーブルに一切の新しいデータを書き込んでいないことを確認してください。また、すべてのデータが Salesforce に存在することを保証するために、すべてのマッピングが
DATA_SYNCED
状態であることを確認してください。Settings
(設定)、Manage Connection
(接続の管理)、Pause
(一時停止) ボタンの順にクリックして、接続でのアクティビティを停止することができます。 - Heroku CLI から接続を破棄します。
heroku addons:destroy -a appname herokuconnect-resource-name
- https://elements.heroku.com から、またはコマンドラインで
heroku addons:create herokuconnect
を実行して新しい接続を作成します。 - 新しい接続を認証し、手順 1 でエクスポートした設定をインポートします。
接続の書き込みアルゴリズムの選択
Salesforce にデータを書き込むときに Heroku Connect で使用するアルゴリズムを選択します。すべての読み取り/書き込みマッピングに同じアルゴリズムが使用されます。詳細は、「書き込みアルゴリズム」を参照してください。
- Heroku Connect ダッシュボードを開きます。
Settings
(設定) タブをクリックします。Manage Connection
(接続の管理) をクリックします。- 「Write Algorithm」 (書き込みアルゴリズム) セクションまで下にスクロールして、アルゴリズムを選択します。
エラー発生後の同期の回復
- Heroku Connect ダッシュボードを開きます。
Settings
(設定) タブをクリックします。Manage Connection
(接続の管理) をクリックします。Recover From Error
(エラーから回復) をクリックして、予期しないエラー状態をクリアし、同期を再開します。詳細は、「Heroku Connect のログメッセージと一般的なエラー」を参照してください。
データベースロールバック後の同期の回復
Heroku Connect では、ハイウォーターマークの手法を使用します。同期された Heroku Postgres データベースをロールバックすると、データの不整合が発生します。データの整合性を回復するには、データベースのロールバック後にマッピングをリロードします。
Salesforce でのフィールド定義の変更
対応するフィールド定義を Salesforce で変更した後、PostgreSQL のテーブルスキーマが Heroku Connect によって自動的に変更されることはありません。フィールドを自動的に変更しようとすると、データが失われるか破損する可能性があります。詳細は、「Salesforce でのフィールド定義の変更」を参照してください。
接続設定の追跡記録
Heroku Connect では、接続の設定に対する管理上の変更の記録を保持します。Download Audit Trail
(追跡記録のダウンロード) をクリックして CSV にエクスポートします。詳細は、「監査メッセージ」を参照してください。