Unica Journey configuration properties
The Unica Journey has additional properties on the Configuration page that perform important functions that you must specify. See the Unica Journey User Guide to learn more about what they do and how to set them.
Setting the Link and Deliver configuration properties
User can configure Unica Journey to connect to the Unica Link by using Link Configuration under the path Affinium|Journey|Link_Configurations in Unica Platform.
Set the following Unica Link configuration properties under the Journey > Link_Configurations category manually:
- Link_URL: Specify Unica Link design server URL Ensure that it does not have the trailing /. Example: http://<FQDN>:<PORT>
- Link_Data_Source_User: Specify the Platform user which stores the credentials to Unica Link design server.
- Link_Data_Source_Name: Specify the datasource name which has the credentials information.
Also, You can configure Unica Journey to connect to theUnica Deliver by using Deliver Configuration under the path Affinium|Journey|Deliver_Configurations.
- Deliver_URL: Specify the
Unica Deliver TMS server URL.
For example:
http://<UNICA_DELIVER_HOST>/delivertms/services/TMS
. - Deliver_Partition: Specify the partition name in Campaign where Deliver TMS is configured.
You can use the following configurations to enable Unica Link and Unica Deliver integrations:
You can navigate under Platform configuration settings:
Settings for 'Journey' (Affinium|Journey)
Link_Configured - This configuration defines whether Unica Link is integrated with Unica Journey (for email/SMS/CRM channels).
Possible values - Yes/ No
Yes - Enables Unica Link integration with Journey
Deliver_Configured - This configuration defines whether Unica Deliver is integrated with Unica Journey for email.
Possible values - Yes/ No
Yes - Enables Unica Deliver integration with Journey
You are required to restart Journey web and engine components.
Platform_Configured - This configuration defines whether Unica Platform is integrated with Unica Journey
Following Platform APIs should be disabled for integrating Journey:
- Authentication = Disable all
- Datasource = Disable all
- User details = Disable all
- Get Configuration Property = Disable all
- Configuration = Disable all
- Login = Disable all
- User roles permission = Disable all
- User details = Disable all
- License = Disable all
- Get installed applications = Disable all
Contact_Central_Configured - For enabling the contact central for Journey the value of Contact_Central_Configured value should be set to 'Yes' from platform. By default, the value is set to No. User can select the desired value Yes/No for Contact_Central_Configured from the path Affinium|Journey in Platform.
- Settings for 'Authentication'
(Affinium|suite|security|apiSecurity|manager|managerAuthentication)
- API URI - /authentication/login
- Block API access - Disabled
- Secure API access over HTTPS - Enabled
- Require authentication for API access - Disabled
- Settings for 'User'
(Affinium|suite|security|apiSecurity|manager|managerUser)
- API URI - /user/partitions/*
- Block API access - Disabled
- Secure API access over HTTPS - Disabled
- Require authentication for API access - Enabled
- Settings for 'Policy'
(Affinium|suite|security|apiSecurity|manager|managerPolicy)
- API URI - /policy/partitions/*
- Block API access - Disabled
- Secure API access over HTTPS - Disabled
- Require authentication for API access - Enabled
- Settings for 'Configuration'
(Affinium|suite|security|apiSecurity|manager|Configuration)
- API URI - /datasource/config
- Block API access - Disabled
- Secure API access over HTTPS - Enabled
- Require authentication for API access - Enabled
- Settings for 'Datasource'
(Affinium|suite|security|apiSecurity|manager|Datasource)
- API URI - /datasource
- Block API access - Disabled
- Secure API access over HTTPS - Enabled
- Require authentication for API access - Disabled
- Settings for 'Login' (Affinium|suite|security|apiSecurity|manager|Login)
- API URI - /authentication/v1/login
- Block API access - Disabled
- Secure API access over HTTPS - Enabled
- Require authentication for API access - Disabled
- Settings for 'User roles permissions'
(Affinium|suite|security|apiSecurity|manager|managerGetRolesPermission)
- API URI - /policy/roles-permissions
- Block API access - Disabled
- Secure API access over HTTPS - Disabled
- Require authentication for API access - Enabled
- Settings for 'User details'
(Affinium|suite|security|apiSecurity|manager|managerGetUserDetails)
- API URI - /user/user-details
- Block API access - Disabled
- Secure API access over HTTPS - Enabled
- Require authentication for API access - Enabled
- Settings for 'Get configuration property'
(Affinium|suite|security|apiSecurity|manager|managerGetConfigProperty)
- API URI - /configuration/get
- Block API access - Disabled
- Secure API access over HTTPS - Enabled
- Require authentication for API access - Disabled
- Settings for 'License'
(Affinium|suite|security|apiSecurity|manager|managerLicense)
- API URI - /license/*
- Block API access - Disabled
- Secure API access over HTTPS - Disabled
- Require authentication for API access - Disabled
How to generate encrypted password
- Navigate to <JOURNEY_WEB_HOME>/tools/.
- Set
JAVA_HOME
in JourneyEncryptionUtility .JAVA_HOME=<UNICA_HOME>/jre export JAVA_HOME
- If you are using Linux operating system, convert JourneyEncryptionUtility to Unix
mode using the following command:
dos2unix JourneyEncryptionUtility
- Run JourneyEncryptionUtility
with the following command:
JourneyEncryptionUtility <PASSWORD TEXT>
- JourneyEncryptionUtility prompts the password in encrypted mode on the console output.
-
If due to any reason user changes Journey system tables database password or Journey Reports database user password, then they can use the password encryption utility to update these passwords in Journey Engine application.properties file or in case user is using tomcat then they need to generate password and add in Journey.xml
Steps to generate ClientID and ClientSecret
Run Unica Platform's clientDetailsUtility to generate client details for Journey as below:
- Navigate to PLATFORM_HOME\tools\bin directory. If you have Platform installed on different machine, you can execute this command on the machine where Platform is installed.
- Execute command as - clientDetails -a Journey. This generates the ClientID
and ClientSecret. The following is an
example.
C:\Unica\Platform\tools\bin>clientDetails.bat -a Journey
C:\Unica\Platform\tools\bin>echo off
WARN com.unica.manager.configuration.ConfigurationManager - Local cache is turned off. Default behavior implies based on Hibernate cache
Parameter value
ClientID: 885345
ClientSecret: IfnKG2eqniVnaT8
AppName: Journey
ClientSecret and ClientId generated successfully!!
- Use generated ClientID and ClientSecret in Journey Web
application.properties:
platform.clientId=ClientID generated in above step.
platform.clientSecret= encrypted ClientSecret in above step
Update the Journey Web and Journey Engine application properties
Update the Journey Web and Journey Engine application properties. The following procedure provide the following steps to perform updates.
Users are required to complete the following steps to perform the updates in Journey Web application.properties.- Below mentioned properties are used to start Platform and Journey parallelly.
Platform must be started before Journey start; some application server takes
more time than usual to start the platform. These properties are used while
starting Journey, it will try to connect platform in specified retry number and
time interval.
platform.connect.retry.number
: number of retries to connect platformplatform.connect.retry.interval
: retry interval time for connect to platform in millisecondsUser can change the value of these properties in <Journey_Home>/Web/ Properties/application.properties. Values of these properties are different based on which application server is used. For Tomcat default values will work and for Websphere Application Server (WAS) need to increase time interval between retries.
- Modify JOURNEYS_HOME/Web/properties/application.properties to update "spring.entity.files.upload.defaultPath" parameter path to include double forward slash (\\) instead of single Forward slash (\).This is in case of installation of Journeys on Windows.
- Modify JOURNEYS_HOME/Web/properties/application.properties to update
"spring.ignite.storage.path" parameter path to include double forward slash (\\)
instead of single Forward slash (\).This is in case of Windows.Note: By default, properties
spring.entity.files.upload.defaultPath
andspring.entity.files.upload.defaultFileReadBuffer
appear in single line. User needs to bifurcate them into two different properties, like below:spring.entity.files.upload.defaultPath
spring.entity.files.upload.defaultFileReadBuffer
Update Journey Engine - application.properties file
You are required to set passwords in encrypted format in Engine application.properties files(Journeys_Install_location/Engine/), This is a manual process.
- Generate encrypted password for the following properties and mention in the
Engine application.properties file using the:
/JourneyEncryptionUtility.sh <JOURNEYS_HOME/tools>
journey.datasource.password
journey.report.datasource.password
Execute command as JourneyEncryptionUtility.sh (<JOURNEYS_HOME/tools>)<Journey System schema password> or <Journey Report schema password>. This generates encrypted password .
The following is an example.
[unica@cobra009 tools]$ ./JourneyEncryptionUtility.sh JourneySysctemschema
Encryption Shell Script started...
Entered String is : JourneySysctemschema
Encrypted String is : 3CKsX5SWYtGl+psHqlYUGkjXF9EVv6+XYP6GTIMa7WQ=
- Modify JOURNEYS_HOME/Engine/application.properties to update "spring.entity.files.upload.defaultPath" parameter path to include double forward slash (\\) instead of single Forward slash (\).This is in case of installation of Journeys on Windows.
- Modify JOURNEYS_HOME/Engine/application.properties to update "spring.ignite.storage.path" parameter path to include double forward slash (\\) instead of single Forward slash (\).This is in case of Windows.
- Use generated ClientID and ClientSecret in Journey Engine
application.properties:
platform.clientId=ClientID generated in above step for Journey Web Application properties file
platform.clientSecret= encrypted ClientSecret for in above stepJourney Web Application properties file
spring.entity.files.upload.defaultPath
and
spring.entity.files.upload.defaultFileReadBuffer
appear in
single line. User needs to bifurcate them into two different properties, like
below:spring.entity.files.upload.defaultPath
spring.entity.files.upload.defaultFileReadBuffer
For taking backup of Journey cache set the property
journey.cache.backup
as True. By default the property is set to
False.
Archival of audience data
Archival of audience data and duplication will be based on flag dedup.end.audience.flag , which is configured in application.properties of engine.
(dedup.end.audience.flag=false)
- Journey will check whether
audience exists in live audience set, if it finds it there, data refresh will
happen. If it does not find audience in live audience set, it will check in ended
audience set. If it finds it there, it will discard the record. Milestone will not
update in this case.
(dedup.end.audience.flag=true)
- If customer understands that in
their ecosystem, they are not sending duplicate data unnecessary & performance
is their priority, Journey will check whether audience exists in live audience set.
If it finds it there, data refresh will happen. If it does not find in live audience
set, the new audience will be added to journey.
By default the flag is set to false.
Property | Description |
---|---|
spring.jpa.properties.hibernate.jdbc.batch_size=900 | Maximum size of DMLs batched together |
spring.jpa.properties.hibernate.order_inserts=true spring.jpa.properties.hibernate.order_updates=true |
Enables batch record insertions & updates respectively (wherever used). Turning these off causes individual record insertion/update & slows down overall operation, functionality remains unchanged. |
journey.kafka.producer.linger.ms=500 | Time in milliseconds Kafka producer waits for gathering 16kb (default) data before making network dispatch |
journey.kafka.consumer.fetch.min.bytes=1048576 | Minimum number of bytes fetched by Kafka consumer in each fetch request |
journey.kafka.consumer.max.partition.fetch.bytes=1048576 | Maximum number of bytes Kafka consumer can fetch from single partition in one fetch request. Limits {fetch.min.bytes} by this upper cap if consumer is assigned to only one partition. |
service.backlog.cleanup.standby.mins=10 | Number of minutes deprecated services will wait for pre-upgrade backlog to appear in their Kafka topic poll response before terminating themselves. If no record is found within these many minutes, deprecated services are closed, and are never created again while the engine is up. If any record is found, corresponding service stands by for these many minutes more. Such services are created again to check for backlog on next application restart though. |
decision-split.retry.max-attempts=3 | Maximum attempts to be made for running decision split query. Execution will happen for (decision-split.retry.max-attempts + 1) times in case of persistent failure |
decision-split.retry.back-off.delay-ms=200 | Fixed delay (in milliseconds) between two retrial attempts for decision split query execution |
dedup.end.audience.flag=false |
This flag is used for de-duplication for audiences who completed their journey. By default dedup.end.audience.flag=false, journey will check whether audience exists in live audience database table, if it finds it there, data refresh will happen. If it does not find in live audience set, it will check in ended audience database table. If it finds it there, it will discard the record. Milestone will not update in this case. If, dedup.end.audience.flag=true => if customer understands that in their ecosystem they are not sending duplicate data unnecessary & performance is their priority,journey will check whether audience exists in live audience database table. If it finds it there, data refresh will happen. If it does not find in live audience database table, the new audience will be added to journey. |
audience.archival.cron=0 0/30 * * * ? | This is audience archival job configuration. |
journey.ignite.cluster=false | |
wait.thread.sleep = 30000 | |
journey.engagement.split.sleep.time=1000 | |
journey.cache.fetch.limit=20000 | |
web.client.max.connections=1000 | The maximum number of connections (per connection pool) before start pending |
web.client.max.idle=10 | The Duration after which the channel will be closed when idle (resolution: second) |
web.client.evict.time=120 | Specifies the interval to be used for checking the connection pool (resolution: second) |
web.client.connect.timeout=10000 | Timeout value to setup a channel connection (resolution: ms) |
web.client.response.timeout=30000 | httpclient response timeout duration (resolution: ms) |
web.client.connections.pendingAcquireTimeout=90 | The maximum time after which a pending acquire must complete or the TimeoutException will be thrown (resolution: second) |
journey.datasource.transactionTimeout=100000 | Database transaction timeout in milliseconds. Default is 100 seconds if not specified. |
Section | Description |
---|---|
<RollingFile name="batchDmlsFileLogger" fileName="${APP_ROOT_LOG}/BatchDMLs.log" filePattern="${APP_ROOT_LOG}/BatchDMLs-%d{yyyyMMdd}-%i.log"> <PatternLayout pattern="${LOG_PATTERN}" /> <Policies> <SizeBasedTriggeringPolicy size="50MB" /> <TimeBasedTriggeringPolicy interval="1" /> </Policies> <DefaultRolloverStrategy max="10" /> </RollingFile> |
Rolling file appender for generating new log file containing statistics pertaining to batch DML operations controlled using spring. jpa. properties. hibernate. jdbc. batch_size, spring. jpa. properties. hibernate. order_inserts & spring. jpa. properties. hibernate. order_updates properties in application.properties file. This section is commented by default. |
<Logger name="batch-dmls-logger" level="DEBUG"> <appenderRef ref="batchDmlsFileLogger" /> </Logger> |
Logger for turning batch DML stats logging on & off. Setting log level to DEBUG turns the logging on. This section is commented by default. |
Update KafkaStandalone server.properties and zookeeper.properties file
- Modify
JOURNEY_HOME/KafkaStandalone/config/zookeeper.properties
under to update "dataDir" parameter path to include double forward slash (\\) instead of single Forward slash (\). - Modify
JOURNEY_HOME/KafkaStandalone/config/server.properties
to update "log.dirs" parameter path to include double forward slash (\\) instead of single Forward slash (\).
Update journey.xml used in Tomcat deployment
Journey deployment XML file needs to have encrypted password for Journey system tables. You can encrypt the password using JourneyEncryptionUtility and specify the journey.xml file for field "password".
- admin.serverPort=<SPECIFY PORT>
- admin.enableServer=false/true
When admin.serverPort parameters not specified then it takes the default values as mentioned below, if these are conflicting to any other application then zookeeper does not get started.
admin.serverPort=<SPECIFY PORT>
Zookeeper installed by Journey installer is not getting started. There is a known issue with the zookeeper upgrade.
Reference defect on zookeeper: https://issues.apache.org/jira/browse/ZOOKEEPER-3056
- Add below property in zookeeper.properties file, this property will skip the check. zookeeper.snapshot.trust.empty=true
- Start Zookeeper server after adding this property in zookeeper.properties files.
- Once the zookeeper is started then remove this property as this is not needed from next time.
- This check is important to ensure that the system is in good shape.