スケーラビリティをサポートし、24 時間 265 日のサービスをインバウンドチャネルに提供するために、インタラクションを分散アーキテクチャと組み合わせて使用できます。このタイプのアーキテクチャは、Message Center で既に使用されており、複数のインスタンスで構成されます。
コントロールインスタンスは、インバウンドチャネル専用で、カタログのオンラインバージョンを含みます。各実行インスタンスは独立しており、1 つの連絡先セグメント専用です(例:国ごとに 1 つの実行インスタンス)。オファーエンジンの呼び出しは、実行時に直接おこなわれる必要があります(実行インスタンスごとに 1 つの専用 URL)。インスタンス間の同期は自動ではないので、同じコンタクト先のインタラクションは、同じインスタンスを使用して送信される必要があります。
オファーの同期は、パッケージで実行されます。実行インスタンスでは、すべてのカタログオブジェクトに、外部アカウント名のプレフィックスが付加されます。これは、同じ実行インスタンスで複数のコントロールインスタンス(例:開発用インスタンスと本番用インスタンス)をサポートできることを意味します。
内部名には、短くて明示的な名前を使用することをお勧めします。
オファーは、自動的にデプロイされてから、実行インスタンスおよびコントロールインスタンスにパブリッシュされます。
デザイン環境で削除されたオファーは、すべてのオンラインインスタンスで無効化されます。不要になった提案やオファーは、パージ期間(各インスタンスのデプロイメントアシスタントで指定)およびスライド期間(受信提案のタイポロジルールで指定)の後、自動的に削除されます。
提案の同期用に、各環境および外部アカウントごとにワークフローが作成されます。同期の頻度は、環境ごと、外部アカウントごとに調整できます。
インタラクションに直接リンクされているスキーマ拡張(オファー、提案、受信者など)は、実行インスタンスにデプロイする必要があります。
インタラクションパッケージは、すべてのインスタンス(コントロールおよび実行)上にインストールする必要があります。追加パッケージが 2 つ用意されています。1 つはコントロールインスタンスにインストールするパッケージで、もう 1 つは各実行インスタンスにインストールするパッケージです。
パッケージをインストールする際、nms:proposition テーブルに含まれる long タイプのフィールド(提案 ID など)は、int64 タイプのフィールドになります。このタイプのデータについて詳しくは、この節を参照してください。
データ保持期間は、(デプロイウィザードのデータパージウィンドウから)インスタンスごとに設定する必要があります。実行インスタンスでは、この期間が、タイポロジルールに必要な履歴深度(スライド期間)および計算される実施要件ルールに対応している必要があります。
コントロールインスタンス上で、次の手順を実行します。
実行インスタンスごとに外部アカウントを作成します。
ラベルを入力し、短くて明示的な内部名を追加します。
「実行インスタンス」を選択します。
「有効」オプションをオンにします。
その実行インスタンス用の接続パラメーターを入力します。
すべての実行インスタンスは、ID にリンクされている必要があります。この ID は、「接続を初期化」ボタンをクリックすると割り当てられます。
使用するアプリケーションのタイプとして、「Message Center」と「インタラクション」のどちらか、または両方を選択します。
使用する FDA アカウントを入力します。オペレーターは、実行インスタンスで作成し、次のように、該当するインスタンスのデータベースの読み取り権限と書き込み権限を付与する必要があります。
grant SELECT ON nmspropositionrcp, nmsoffer, nmsofferspace, xtkoption, xtkfolder TO user;
grant DELETE, INSERT, UPDATE ON nmspropositionrcp TO user;
コントロールインスタンスの IP アドレスは、実行インスタンスで承認されている必要があります。
次のように環境を設定します。
実行インスタンスのリストを追加します。
インスタンスごとに、同期期間とフィルター条件(例:国ごと)を指定します。
エラーが発生した場合は、同期ワークフローおよびオファー通知を確認してください。これらはアプリケーションのテクニカルワークフローにあります。
最適化のために、実行インスタンスでマーケティングデータベースの一部のみを複製する場合、その実行インスタンスで利用できるデータのみをユーザーに使用させるよう、環境にリンクした制約付きスキーマを指定できます。オファーの作成には、実行インスタンスでは利用できないデータも使用できます。それには、このルールをアウトバウンドチャネルのみに制限することで、他のチャネルに対しては無効にする必要があります(「次の場合に考慮」フィールド)。
次に、コントロールインスタンスで使用できるメンテナンスオプションのリストを示します。
これらのオプションは、特定のメンテナンス事例にのみ使用できます。
NmsInteraction_LastOfferEnvSynch_<offerEnvId>_<executionInstanceId>
:特定のインスタンスで環境が同期された直近の日付。NmsInteraction_LastPropositionSynch_<propositionSchema>_<executionInstanceIdSource>_<executionInstanceIdTarget>
:特定のスキーマの提案があるインスタンスから別のインスタンスに同期された直近の日付。NmsInteraction_MapWorkflowId
:生成されるすべての同期ワークフローのリストを含むオプション。次のオプションは、実行インスタンスで使用できます。
NmsExecutionInstanceId:インスタンス ID を含むオプション。
インタラクションパッケージをインストールしたことがないインスタンスの場合、移行は必要ありません。デフォルトでは、パッケージがインストールされると、提案テーブルは 64 ビットになります。
インスタンスの既存の提案の量によっては、この作業に時間がかかることがあります。
提案テーブルで特定の設定が実行されている場合、その状況に応じてクエリを変更してください。
次の 2 つの方法があります。第 1 の方法(ワークテーブルを使用)のほうが若干高速です。
ワークテーブル
CREATE TABLE NmsPropositionRcp_tmp AS SELECT * FROM nmspropositionrcp WHERE 0=1;
ALTER TABLE nmspropositionrcp_tmp
ALTER COLUMN ipropositionid TYPE bigint,
ALTER COLUMN iinteractionid TYPE bigint;
INSERT INTO nmspropositionrcp_tmp SELECT * FROM nmspropositionrcp;
DROP TABLE nmspropositionrcp;
CREATE INDEX proposition_id ON NmsPropositionRcp (ipropositionid);
CREATE INDEX nmspropositionrcp_deliveryid ON NmsPropositionRcp (ideliveryid);
CREATE INDEX nmspropositionrcp_lastmodified ON NmsPropositionRcp (tslastmodified);
CREATE INDEX nmspropositionrcp_offerid ON NmsPropositionRcp (iofferid);
CREATE INDEX nmspropositionrcp_offerspaceid ON NmsPropositionRcp (iofferspaceid);
CREATE INDEX nmspropositionrcp_recipientidid ON NmsPropositionRcp (irecipientid);
ALTER TABLE nmspropositionrcp_tmp RENAME TO nmspropositionrcp;
テーブルの変更
ALTER TABLE nmspropositionrcp
ALTER COLUMN ipropositionid TYPE bigint,
ALTER COLUMN iinteractionid TYPE bigint;
Number タイプのサイズを編集しても、値を読み込んだりインデックスを作り直したりしないので、実行はただちに完了します。
実行するクエリは次のとおりです。
ALTER TABLE nmspropositionrcp MODIFY (
ipropositionid NUMBER(19, 0),
iinteractionid NUMBER(19, 0)
);
実行するクエリは次のとおりです。
SELECT * INTO NmsPropositionRcp_tmp FROM NmsPropositionRcp WHERE 1 = 0;
GO
ALTER TABLE NmsPropositionRcp_tmp ALTER COLUMN ipropositionid BIGINT;
GO
ALTER TABLE NmsPropositionRcp_tmp ALTER COLUMN iinteractionid BIGINT;
GO
INSERT INTO NmsPropositionRcp_tmp SELECT * FROM NmsPropositionRcp;
GO
DROP TABLE NmsPropositionRcp;
GO
sp_rename 'NmsPropositionRcp_tmp', NmsPropositionRcp
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR dWeight
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iDeliveryId
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iEngineType
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iInteractionId
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iOfferId
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iOfferSpaceId
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iPropositionId
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iRank
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iRecipientId
GO
ALTER TABLE NmsPropositionRcp ADD DEFAULT ((0)) FOR iStatus
GO
CREATE NONCLUSTERED INDEX NmsPropositionRcp_deliveryId ON NmsPropositionRcp (iDeliveryId)
GO
CREATE NONCLUSTERED INDEX NmsPropositionRcp_eventDate ON NmsPropositionRcp (tsEvent)
GO
CREATE UNIQUE NONCLUSTERED INDEX NmsPropositionRcp_id ON NmsPropositionRcp (iPropositionId)
GO
CREATE NONCLUSTERED INDEX NmsPropositionRcp_lastModified ON NmsPropositionRcp (tsLastModified)
GO
CREATE NONCLUSTERED INDEX NmsPropositionRcp_offerId ON NmsPropositionRcp (iOfferId)
GO
CREATE NONCLUSTERED INDEX NmsPropositionRcp_offerSpaceI ON NmsPropositionRcp (iOfferSpaceId)
GO
CREATE NONCLUSTERED INDEX NmsPropositionRcp_recipientId ON NmsPropositionRcp (iRecipientId)
GO