Distribuerade arkitekturer distributed-architectures
Princip principle
För att få stöd för skalbarhet och dygnet runt-service på den inkommande kanalen kan ni använda Interaction med en distribuerad arkitektur. Den här typen av arkitektur används redan i Message Center och består av flera instanser:
- en eller flera kontrollinstanser som är dedikerade till den utgående kanalen och som innehåller bas för design av marknadsföring och miljö
- en eller flera körningsinstanser som är dedikerade till inkommande kanal
Förslagssynkronisering proposition-synchronization
Synkronisering av erbjudanden utförs via paket. I körningsinstanser föregås alla katalogobjekt av det externa kontonamnet. Detta innebär att flera kontrollinstanser (till exempel utvecklings- och produktionsinstanser) kan stödjas på samma körningsinstans.
Erbjudandena distribueras automatiskt och publiceras sedan på körnings- och kontrollinstanser.
Erbjudanden som tas bort i designmiljön är inaktiverade på alla onlineförekomster. Föråldrade offerter och erbjudanden tas automatiskt bort i alla instanser efter tömningsperioden (som anges i varje instans distributionsassistent) och glidperioden (som anges i de inkommande förslagens typologiregler).
Ett arbetsflöde skapas för varje miljö och ett externt konto för förslagssynkronisering. Synkroniseringsfrekvensen kan justeras för varje miljö och externt konto.
Begränsningar limitations
- Om du använder funktionen för säkerhetskopiering från en anonym miljö till en identifierad miljö måste dessa två miljöer finnas i samma körningsinstans.
- Synkroniseringen mellan flera körningsinstanser utförs inte i realtid. Interaktioner av samma kontakt måste skickas till samma instans. Kontrollinstansen måste dedikeras till den utgående kanalen (ingen realtid).
- Marknadsföringsdatabasen synkroniseras inte automatiskt. Marknadsföringsdata som används i viktnings- och berättigandereglerna måste dupliceras i körningsinstanser. Den här processen kommer inte som standard, du måste utveckla den under integreringsperioden.
- Propositionssynkronisering utförs uteslutande av FDA-anslutning.
- Om du använder Interaction och Message Center på samma instans, synkroniseras i båda fallen via FDA-protokollet.
Paketkonfiguration packages-configuration
Alla schematillägg som är direkt länkade till Interaktion (erbjudanden, erbjudanden, mottagare osv.) måste distribueras på körningsinstanserna.
Interaktionspaketet måste installeras på alla instanser (kontroll och körning). Det finns ytterligare två paket: ett paket som ska installeras på kontrollinstanserna och ett annat som ska installeras på varje körningsinstans.
Varaktigheten för datalagring måste konfigureras för varje instans (via Data purge i distributionsguiden). För körningsinstanser måste denna period motsvara det historiska djup som krävs för att typologiregler (glidande period) och regler för stödberättigande ska kunna beräknas.
På kontrollinstanserna:
-
Skapa ett externt konto genom körningsinstansen:
-
Fyll i etiketten och lägg till ett kort och explicit internt namn.
-
Markera Execution instance.
-
Markera alternativet Enabled.
-
Slutför anslutningsparametrarna för körningsinstansen.
-
Alla körningsinstanser måste länkas till ett ID. Detta ID tilldelas när du klickar på Initialize connection -knappen.
-
Kontrollera vilken typ av program som används: Message Center, Interaction eller båda.
-
Ange det FDA-konto som används. En operator måste skapas för körningsinstanserna och måste ha följande läs- och skrivrättigheter i databasen för instansen i fråga:
code language-none grant SELECT ON nmspropositionrcp, nmsoffer, nmsofferspace, xtkoption, xtkfolder TO user; grant DELETE, INSERT, UPDATE ON nmspropositionrcp TO user;
note note NOTE IP-adressen för kontrollinstansen måste auktoriseras för körningsinstanserna. -
-
Konfigurera miljön:
-
Lägg till listan med körningsinstanser.
-
För var och en av dem anger du synkroniseringsperiod och filtervillkor (till exempel per land).
note note NOTE Om du råkar ut för ett fel kan du läsa arbetsflödena för synkronisering och visa meddelanden. Dessa finns i programmets tekniska arbetsflöden.
-
Om bara en del av marknadsföringsdatabasen dupliceras på körningsinstanserna av optimeringsskäl kan du ange ett begränsat schema som är länkat till miljön, så att användarna bara kan använda data som är tillgängliga på körningsinstanserna. Du kan skapa ett erbjudande med data som inte är tillgängliga för körningsinstanser. Om du vill göra det måste du inaktivera regeln för de andra kanalerna genom att begränsa den här regeln för den utgående kanalen (Taken into account if fält).
Underhållsalternativ maintenance-options
Här är en lista över underhållsalternativ som är tillgängliga för kontrollinstansen:
NmsInteraction_LastOfferEnvSynch_<offerEnvId>_<executionInstanceId>
: det senaste datumet då en miljö synkroniserades på en given instans.NmsInteraction_LastPropositionSynch_<propositionSchema>_<executionInstanceIdSource>_<executionInstanceIdTarget>
: sista datumet som förslag från ett givet schema synkroniserades från en instans till en annan.NmsInteraction_MapWorkflowId
: ett alternativ som innehåller en lista över alla genererade synkroniseringsarbetsflöden.
Följande alternativ är tillgängligt för körningsinstanser:
NmsExecutionInstanceId: som innehåller instans-ID.
Paketinstallation packages-installation
Om din instans inte tidigare har Interaction-paketet behövs ingen migrering. Som standard kommer förslagstabellen att vara 64 bitar efter att paketen har installerats.
- Om instansen har små eller inga förslag behövs ingen manuell ändring av förslagstabellen. Ändringen görs när paket installeras.
- Om instansen har många förslag är det bättre att ändra strukturen på förslagstabellen innan du installerar kontrollpaketen och kör dem. Vi rekommenderar att du kör frågorna under en period med låg aktivitet.
PostgreSQL postgresql
Det finns två metoder. Den första (med en arbetstabell) är något snabbare.
Arbetsregister
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;
Ändra tabell
ALTER TABLE nmspropositionrcp
ALTER COLUMN ipropositionid TYPE bigint,
ALTER COLUMN iinteractionid TYPE bigint;
Oracle oracle
Redigera storleken på en Nummer typen leder inte till värden eller att indexet skrivs om. Den är därför omedelbar.
Följande fråga ska köras:
ALTER TABLE nmspropositionrcp MODIFY (
ipropositionid NUMBER(19, 0),
iinteractionid NUMBER(19, 0)
);
MSSQL mssql
Följande frågor ska utföras:
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