Sublime Text
Sublime Text
----------
email ids
628007037
241055
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
FHGXUBY6
232187, 232287
[email protected]
22573376
PRG_STAGE GRP_ENACTMENT_LOG
To access Podconfig.ini:
[spagonda@admin01-eng1 shashiqa]$ cd ../../config
[spagonda@admin01-eng1 config]$ vi PodConfig.ini
23615369 - ENACTMENTS GETTING STUCK AT EMAIL CAMPAIGN IN TRIGGERED MODE FOR DROPBOX
ENABLED
===================================================================================
=============
POD: QA1
Build: 631008694
Account: exachalla
Important Notes:
-----------------
Important Notes
PUTTY
To access settings.ini at account level:
[spagonda@admin01-eng1 ~]$ sudo -u rsvp -i -H
[spagonda@admin01-eng1 ~]$ cd /usr/responsys/site/accounts/shashiqa/
[spagonda@admin01-eng1 programteam]$ vi settings.ini
EnactmentBatchDuration.CustomerDeactivated=0
updateEnactmentStatustoBlocked
To access Podconfig.ini:
[spagonda@admin01-eng1 shashiqa]$ cd ../../config
[spagonda@admin01-eng1 config]$ vi PodConfig.ini
launch01-qa1.qa1.dc2.responsys.com=ALL
launch1001-qa1.qa1.dc2.responsys.com=ALL
launch04-qa1.qa1.dc2.responsys.com=003;004
launch02-qa1.qa1.dc2.responsys.com=003
spam01-qa1.qa1.dc2.responsys.com=003;004;005
spam1001-qa1.qa1.dc2.responsys.com=003;004;005
[ChannelClient]
SmallBatchThreshold=1000
LaunchCompleteNotificationJobFrequencyInSecs=15
ChannelClientEnabled=false
cd/usr/local/responsys/logs/ri
ls -ltr
tail -f stderr.log
vim stderr.log
ca1-c-rsp-rds-01.responsys.net
-----------------------------------------------------------------------------------
---
SERVERS
PUB WEB server : for tracking the open, clicks and conversion
pubweb server contains Web Event Listner(wel) and Web Event Processor(WEP).
DISPATCHER Server : for building work list. Choosing the audience, filters the
opted out in records, emails that are invalid etc..the basic job of building work
list is to get the correct audience for the program
-----------------------------------------------------------------------------------
---
BLOCK
CUST DB:
commit;
SysAdmin DB:
commit;
-----------------------------------------------------------------------------------
---
Event Flow
Login to SysLocal Shared Event DB. Access EF_EVENT_STATUS. Query this table using
account ID. We need to look into the column called APPLICATION_NAME, it will have
values for behtargetting and reporting. Also, check the column IS_ENABLED for
checking if behtargetting/reporting is enabled/disabled. Also check EVENT_TABLES
column.
For example:
select * from EF_EVENT_STATUS where account_id=23487 and APPLICATION_NAME like
'%beh%';
IS_ENABLED table will contain value Y for the EVENT_TABLES that are enabled.
-----------------------------------------------------------------------------------
---
How to create a conversion link
1. Open an EMD campaign.
2. Go to Campaign Settings > Tracking options. Check the checkbox for "Track
conversions". Save
3. Ensure to turn on Link tracking for the campaign. Select the link table.
4. Go to Folders > Right click menu of the campaign > Campaign URLs.
5. Under the Conversion Tracking Tag, select the entire string under the tag <>
i.e., <IMG SRC="http://rsp.ServerName.net/pub/cct?_ri_=X0Gzc2X%3DS%3AzbHS%3ASRCR
%3Aq&_ei_=EnVd2LoBFEIeOzPXj3wLH0Y"WIDTH="1" HEIGHT="1">
6. Now, create an HTML document and place this between the body tag.
sample HTML:
<html>
<head>
<title>Thank you!</title>
</head>
<body>
<p>Thank you for your order! We appreciate your business.</p>
<IMG SRC="http://rsp.ServerName.net/pub/cct?_ri_=X0Gzc2X%3DS%3AzbHS%3ASRCR
%3Aq&_ei_=EnVd2LoBFEIeOzPXj3wLH0Y"WIDTH="1" HEIGHT="1"></body>
</html>
-------------------------------------------------------------------
How to check the logs of personalizer... which is the personalizer for the given
arg.
ApplicationHosts in Podconfig, see for which arg, which launch server is assigned..
see stdrlog and critical log.
Triggere the program and check logs.. if there is any issue with event flow, it
will be listed in tool01 or personalizer stdrlogs.. if there is any issue with
event flow, the IS_ENABLED will become N again
-----------------------------------------------------------------------------------
-----------------
How to unpublish all programs in a folder so that you can delete the folder.
Very Important:
=================
----------------------------------------------------------------------------------
1.
ChannelClientEnabled=0
EnactmentBatchEnabled=0
EnactmentBatchDuration.CustomerActivated=30
All enactments will go through as trigger mode. Pure Trigger mode is possible.
All enactments can be found in prg_enactment table. Enactments will not go tp
grp_enactment.
----------------------------------------------------------------------------------
2.
ChannelClientEnabled=0
EnactmentBatchEnabled=1
EnactmentBatchDuration.CustomerActivated=30
If you have a campaign after customer activated, these enactment will be a trigger
launch only.
----------------------------------------------------------------------------------
3.
BatchOfOne
ChannelClientEnabled=0
EnactmentBatchEnabled=0
SingleEnactmentBatchingViaBatchEngineEnabled=1
SingleEnactmentBatchingAutoRetryEnabled=1
EnactmentBatchDuration.CustomerActivated=0
In this setting, all triggered enactments will be moved directly to batch. You will
not find any records in prg_enactment table. All enactments will be moved to
grp_enactment directly.
If any enactments get blocked in campaign stage, auto retry will happen.
-----------------------------------------------------------------------------------
--
4.
ChannelClientEnabled=0
EnactmentBatchEnabled=0
SingleEnactmentBatchingViaBatchEngineEnabled=1
SingleEnactmentBatchingAutoRetryEnabled=1
EnactmentBatchDuration.CustomerActivated=60
In this settings, all enactments will wait in prg_enactment table for 60 seconds
and move to grp_enactment table after 60 seconds.
If any enactments get blocked in campaign stage, auto retry will happen.
-----------------------------------------------------------------------------------
--
https://confluence.oraclecorp.com/confluence/display/RES/Server+respective+war+File
s+List+according+to+POD%27s
-----------------------------------------------------------------------------------
--
-----------------------------------------------------------------------------------
---
To check when the batchtimerjob will run:
POD LEVEL
To Pause:
JMX Console - pauseAllActivePrograms()
PodConfig - SuspendProgramExecution=1
To resume:
PodConfig - SuspendProgramExecution=0
JMX Console - resumeAllActivePrograms()
ARG LEVEL
To Pause:
JMX Console - pauseAllActiveProgramsByArg(ARG id)
PodConfig - SuspendProgramExecutionInArgs=argid_1 (multiple ARGS
separated by semicolon)
To resume:
PodConfig - SuspendProgramExecutionInArgs=
JMX Console - resumeAllActiveProgramsByArg(ARG id)
ACCOUNT LEVEL
To Pause:
JMX Console - pauseAllActiveProgramsByAccount (Act id)
PodConfig - SuspendProgramExecutionInAccounts=act_1 (multiple Accounts
separated by semicolon)
To resume:
PodConfig - SuspendProgramExecutionInAccounts =
JMX Console - resumeAllActiveProgramsByAccount (Act id)
Cross Program:
--------------
CrossProgram Events
Tables:
-------
PRG_CPO_DEPENDENCY
Scenarios to Test
-----------------
Pause unpause
Test Programs
Triggered mode
Batch Mode
Batch Trigger mode
Enactment Batching Enabled
Enactment Batching Disabled
Batch Of one
Upddating the catch programs/re-publishing
Updating the throw programs/re-publishing
ETVs
Corner Scenarios
CPO should work for all channels - Push, InApp, SMS, MMS, Email
AppCloud:
---------
https://confluence.oraclecorp.com/confluence/display/RES/Get+Apps
https://jira.oraclecorp.com/jira/browse/RSYS-3542
RSYS-2779
Enhancement to handle app failure
https://confluence.oraclecorp.com/confluence/display/RES/App+Cloud+Inbound+Webservi
ces
https://confluence.oraclecorp.com/confluence/display/RES/Transaction+Validation+-
+Orion+6.27
DB Tables:
----------
E_RECIPIENT_APPCLOUD_SENT
PRG_APPCLOUD_INBOUND_PARAM
PROGRAM_DROPBOX_ENTRY
E_RECIPIENT_APPCLOUD_INBOUND
APPCLOUD_APP_PARAM
E_RECIPIENT_APPCLOUD_INBOUND
Built In:
---------
${campaign.id}
WHO
Launch Event Listener(producer) and Dropbox client(consumer)
WHAT
Today we have a LaunchListenerJob that picks up the records from dropbox table that
are in the New state every 15 mins (configurable). The existing LaunchListenerJob
should be modified not only to pick the records in New status but also queued ones.
If LEL app server goes down after status changed to QUEUEING, but before message
sent to the consumer , records be queued (STATE =Q) for ever. Such records need to
be retried to allow for reprocessing.
WHY
To recover elegantly from failures.
ACCEPTANCE CRITERIA
Possible failure scenarios
1. If DB has gone down during the processing, the processing should resume once the
DB has come up.
2. If LEL has gone down during the processing, the processing should resume once
the LEL has come up.
3. If JMS has gone down during the processing, the processing should resume once
the JMS has come up.
4. If Personalizer has gone down during the processing, the processing should
resume once the Personalizer has come up.
Expected behavior is
The records should be picked irrespective of the status (New/Queued/Processing)
when the failure occurs
The records would be retried for the configured number of retry attempts every 10
minutes (??) and records that are being processed for
FailedRecordsProcessingDurationInMins minutes would be retried.
[ProgramDropbox]
RetryCount=4
FailedRecordsProcessingDurationInMins=60
After the number of retries the records would be updated as failed (F) and the
failure reason would be updated in the PROGRAM_DROPBOX.EXTRA_INFO column. Failure
reasons would be truncated at 4000 chars.
The records marked as Failed would eventually be persisted to PRG_BLOCKED_EVT_prgId
table and picked up by existing BlockedEventRecovery job to replay them to program
engine batch or program engine triggered
TEST APPROACH
Create a program with ChannelClient enabled account.
After dropbox tables are populated by LEL and Dropbox client is called to notify
Program Dropbox of the batches that are persisted.
Now after Batch is updated with status=Q bring the LEL application server down.
The records should still be sent to the Program engine eventually
Important:
----------
EnactmentBatching should be enabled for AppCloud with Inbound Action
Distributed Task model:
-----------------------
Distributed Task Model
https://confluence.oraclecorp.com/confluence/display/RES/6.29+Acct+QoS+and+Task+Man
agement+QA+Guide
EPIC: https://jira.oraclecorp.com/jira/browse/RSYS-887
QoS
---
https://jira.oraclecorp.com/jira/browse/RSYS-887
# -- [ARG_ID].DistributedTaskManagerEnabled --
# (1: enable Distributed Task Manager for the ARG, 0: disable Distributed Task
Manager for the ARG)
# To enable Distributed Task for the account, it is required to have
# [ARG_ID].DistributedTaskManagerEnabled=1 for the ARG that the account belongs to.
#
003.DistributedTaskManagerEnabled=1
004.DistributedTaskManagerEnabled=0
005.DistributedTaskManagerEnabled=0
The API to invoke for Pause & Unpause tasks from jmx should be in UIServer-
>programdesigner->ProgrammanagerConsole. Here is the name of the APIs:
pauseActiveProgram, which will pause the program
pauseAllActiveProgramsByAccount, which will pause all the active programs of the
account
pauseAllActiveProgramsByArg, which will pause all the active programs of the arg.
pauseAllActivePrograms, which will pause all active programs in a POD.
Similarly, the corresponding unpause APIs are:
resumeActiveProgram
resumeAllActiveProgramsByAccount
resumeAllActiveProgramsByArg
resumeAllActivePrograms
[ApplicationLimits]
MaxProfileLists=200
https://confluence.oraclecorp.com/confluence/display/RES/Audience+Designer+
%3A+Engineering+Design+for+Programs
Database Tables:
----------------
AUDIENCE_NOTIFICATION
AUDIENCE_RUN
AUDIENCE_RUN_PARAMETER
AUDIENCE_RUN_LOG
PRG_STAGE_RUN
FILTER_RESULT
Parameters
-----------
MaxNumberOfConditionPerProfileTypeFilter
MaxPublishedAudiences=20(default)
AudienceMaxFilters=5(default)
Hi, In the case of Audience Designer, the flow requires Audience Engine to call
Filter Engine to populate the results in FILTER_RESULT and FILTER_RESULT_DROPBOX
tables where the RIID information is available. During the execution of the
Audience, GRP_ENACTMENT and GRP_MEMBER tables get populated with data, but at the
end of the execution, all data is deleted except for the history data in
GRP_ENACTMENT_LOG table. This contains the information regarding the creation,
execution and deletion of groups as well as the member counts at each step. For
this current case, can you please clarify the following? 1. Is the Audience
execution complete already when you are looking for the data in the database? If
yes, this data will already be deleted. 2. Is there any reason you are checking for
data in GRP_MEMBER tables? As per the design, this data will be available in
FILTER_RESULT table. Thanks, Zoheb.
Audience ID - 49147
Program ID - 49307
Tables:
AUDIENCE_NOTIFICATION - syslocal
PRG_STAGE - Cust
GRP_ENACTMENT_LOG - Cust
PRG_STAGE_STATS
PRG_STATS_LOG
MaxPublishedAudiences=20(default)
Maximum number of audience that can be published in an account. Unpublish few old
audiences and republish the new one for the new one to get published Or value can
be changed in account.ini
AudienceMaxFilters=5(default)
The max number of filters per audience should be a positive number greater than 1
and less than 20. The default should be 5.
Value can be changed in account.ini
Epic containing stories related to supporting organization scope for Audiences when
they're used in Programs & Canvas. Also captures requirements about changes to
Audience Designer.
6.29 DM solution doc:
https://confluence.oraclecorp.com/confluence/pages/viewpage.action?pageId=188019923
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
6.29
----
Audience_Run statuses.
AUDIENCE_RUN needs to have following statuses :
X New Audience which has not been run so far, This status will be created when
Audience is published successfully.
E if activation failed on the server, we can handle this scenario by showing a
different message in UI.
R Audience is currently running
B Audience is blocked.
I Audience is Initializing, Will be used only by UI.
S Audience successfully executed.
137 EPIC
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
> If 2 or more Audiences run at the same time, the run ids will be different.
However, note that the value of PARAMETERS_HASH will be the same. ie.
A3E73B287A470E3B3FB71A76E70F890536309166061918CD8E61F32765D09D72
> In 6.29, Programs will support org scoping. Hence, the value of PARAMETERS_HASH
will be dependent on the org scoping.
a. If 2 Programs call Audience WITHOUT org scoping, the value of PARAMETERS_HASH
will be the same. ie.
C4D98F3A365D17A71D09F8621AD2CA9F3F7DDD41C8D899936F46BE59EE3DB3A4
b. If a Program calls Audience WITH org scoping, the value of PARAMETERS_HASH
will be a value determined by the value of org scoping. This value cannot be pre-
determined.
c. If 2 Programs call Audience WITH SAME org scoping, the value of
PARAMETERS_HASH will be the same. This value cannot be pre-determined.
d. If 2 Programs call Audience WITH DIFFERENT org scoping, the value of
PARAMETERS_HASH will be different. These values cannot be pre-determined.
-----------------------------------------------------------------------------------
-----------------------------
Pausing/Unpausing of Audiences follows the same process for Programs - there is NO
difference.
Email excerpt from Jose regarding Pausing
By requirement and design, the Account, ARG and Pod level settings for Pause-Resume
for programs and audiences are read from the podconfig.ini.
The only setting read from the settings.ini is to pause-resume individual programs
or audiences in an account � However, this is for internal dev use only, and is not
supported with this user story.
Here are the settings, the JMX console API and the PodConfig.ini setting.
POD LEVEL
To Pause:
JMX Console - pauseAllActivePrograms()
PodConfig - SuspendProgramExecution=1
To resume:
PodConfig - SuspendProgramExecution=0
JMX Console - resumeAllActivePrograms()
ARG LEVEL
To Pause:
JMX Console - pauseAllActiveProgramsByArg(ARG id)
PodConfig - SuspendProgramExecutionInArgs=argid_1 (multiple ARGS separated by
semicolon)
To resume:
PodConfig - SuspendProgramExecutionInArgs=
JMX Console - resumeAllActiveProgramsByArg(ARG id)
ACCOUNT LEVEL
To Pause:
JMX Console - pauseAllActiveProgramsByAccount (Act id)
PodConfig - SuspendProgramExecutionInAccounts=act_1 (multiple Accounts separated by
semicolon)
To resume:
PodConfig - SuspendProgramExecutionInAccounts =
JMX Console - resumeAllActiveProgramsByAccount (Act id)
Hope this is clear.
Please note that unpausing an Audience might take up to an hour for Audience events
to be re-processed. This is because the quartz job runs every hour.
Regards,
Jose
--------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
-----------------------------
The quartz trigger for �BlockedEventRecoveryJob�, that resends blocked events in
the PRG_BLOCKED_EVT_x tables to the Program Engine or Audience Engine runs once
every hour.
So, even after you resume programs in an account from the JMX console, you might
have to wait for nearly an hour to see the events being processed.
You can find the next quartz trigger fire time in one of the
QZL001_x_TRIGGERS(x=1,2,�) tables in the SYSDB.
Filter by TRIGGER_GROUP, example prg_4228_68980(prg_<AccountID>_<ProgramID>). Look
for BlockedEventRecoveryJob.
For your batch program, it was published at 4.04 am with a 4.10 am scheduled
filter. From the GRP_ENACTMENT_LOG and Analyze tab audience stats, I see that the
events were processed at 5.19 am.
For the triggered program, I see that quartz triggers were missing in the SYSDB.
The program was last published in 2014, and the table entries were deleted at some
point during maintenance or upgrade.
Natalya and me republished the program, and we see the quartz triggers now.
Also if you pause programs in an account before the scheduled filter has fired,
you�ll see the FilterEvent CRON trigger being paused in the DB, and no entries in
the BLOCKED_EVT tables.
When the programs in the account are resumed, the paused FilterEvent CRON triggers
will fire and the ScheduledFilter is processed.
So, look for the next fire time for BlockedEventRecoveryJob quartz triggers and
check after they have fired.
Also, may be create a new program for the triggered mode tests/ republish the
program. (ideally should work without it. But the one program you tested on did not
have quartz triggers. Might have been deleted any time between 2014 and now.
Hi Jose,
Looks like even Pause-Resume is not working. I have validated pause resume at
�account level� through PodConfig.ini
Credentials:
Cluster: QA1 POD
Account: Progmig (Id:4228)
Trigger Mode Program: HeartBeat Stage Gate-02 CA Close Gate Manually (Id: 23290)
Batch Mode Program: SF Test01 for Pause Resume (Id: 68980)
Note: If you notice any account working properly for pause resume, Please let me
know so that I can validate it and update you accordingly.
Thanks
Shashi
Hello Shashi,
I asked you to retest the pause-resume feature at an Account Level, ARG Level and
Pod level � all these settings are in the podconfig.ini.
Seems like you have your settings in the settings.ini.
By requirement and design, the Account, ARG and Pod level settings for Pause-Resume
for programs and audiences are read from the podconfig.ini.
The only setting read from the settings.ini is to pause-resume individual programs
or audiences in an account � However, this is for internal dev use only, and is not
supported with this user story.
Here are the settings, the JMX console API and the PodConfig.ini setting.
POD LEVEL
To Pause:
JMX Console - pauseAllActivePrograms()
PodConfig - SuspendProgramExecution=1
To resume:
PodConfig - SuspendProgramExecution=0
JMX Console - resumeAllActivePrograms()
ARG LEVEL
To Pause:
JMX Console - pauseAllActiveProgramsByArg(ARG id)
PodConfig - SuspendProgramExecutionInArgs=argid_1 (multiple ARGS
separated by semicolon)
To resume:
PodConfig - SuspendProgramExecutionInArgs=
JMX Console - resumeAllActiveProgramsByArg(ARG id)
ACCOUNT LEVEL
To Pause:
JMX Console - pauseAllActiveProgramsByAccount (Act id)
PodConfig - SuspendProgramExecutionInAccounts=act_1 (multiple Accounts
separated by semicolon)
To resume:
PodConfig - SuspendProgramExecutionInAccounts =
JMX Console - resumeAllActiveProgramsByAccount (Act id)
Regards,
Jose
Hi Jose,
Thanks for the update. Please see my comments as below and let me know if you need
more information on it.
Thanks
Shashi
From: Jose Antony
Sent: Thursday, February 25, 2016 4:27 AM
To: Shashidhar Pagonda
Cc: Mark Murthy; Jyothi Nellore; Challa Sanyasi Rao; Natalya Pavkin; Pavan T V;
Zoheb Rahiman; Naresh Jamwal; Richard Conrad; David Yuan
Subject: RE: Queries on B-09866 Audience Engine : Support Pausing of Audiences
Hello Shashi,
From your mail, I understand that you are pausing an audience at Audience level
from the podConfig.ini. How do you specify which account the audience is paused for
? #On invoking �pauseActiveProgram� from jmx we use to define account id.#
This is an invalid use case as program/audience level pause-resume should be done
using the settings.ini, however we don�t support this for operations. #We have
tried this from settings.ini as well.#
Can you please retest the use cases using pause-resume at Account level, ARG level
and Pod level(from podconfig.ini) # I have tried again with all below use cases.
Please provide your updates on it.#
Also, we observe that when an audience is paused and RUN button clicked, a refresh
of the page shows stale results from a previous run. The current request events are
blocked properly. #Paused an Audience which didn�t run even once. On clicking Run
enactments are moving to Final Audience. Current request events didn�t blocked#
Can you verify this behavior. You can look into the group enactment logs to check
if the audience is running or not.
Regards,
Jose
Thanks,
Zoheb.
Hi Zoheb,
Audience:
- Paused an Audience from PodConfig.ini then from jmx.
- Audience is paused properly
- When I �Run� Audience from Analyze tab, Enactments are moving properly even
though �Audience� is in Paused state (Is this expected?)
Program:
- Program1:
? Published a new program with above �Audience� and program is getting
triggered properly even �Audience� is in Paused state (Is this correct?)
- Program2:
Event Flow:
https://confluence.oraclecorp.com/confluence/display/RES/Event+Flow
Database Tables:
----------------
Event DB:
E_WEB_BROWSE
E_WEB_CART
select * from e_recipient_opened where launch_id IN (676067,676087);
Cust DB:
select * from program_dropbox_entry order by created_dt desc;
select * from program_dropbox where batch_id in (141447,141427,141467);
Event DB
select * from e_recipient_opened where launch_id in (676387,676407);
BUFFERED_EVENT_GROUP
PRG_BUFFERED_EVENT
PEG:
----
For PEG events, EF is not required ****** Dont check for EF_EVENT_STATUS table for
PEG Events..
If PEG is not working:
Check the settings.ini for list and timeout configuration.
Go to WebEventProcessorBatchRepeatMins=15 - Check this to 3 min.
Invoke the JMX API after triggering from pubweb02/01 server - rescheduleBatch
under webeventprocessor
"interact.web.event.processor.impl.batch.WebEventProcessorBatchScheduler"
Program will trigger after TimeOut configuration(assuming 2) +
WebEventProcessorBatchRepeatMins(assuming 3) = 5 min.
After 2, all the data in event db is deleted and after 3 min, this data will be
picked up by WebEventProcessorBatchRepeatMins and process it. Program will get
triggered.
Control Feature:
----------------
[ProgramBehavioralEvents]
Enabled=1
ProgramBehavioralEventsEnabled=1 (enabled)
WebEventProcessorBatchRepeatMins=5
Confluence Links:
-----------------
https://confluence.oraclecorp.com/confluence/display/RES/Event+Switch+support+for+b
ehavioral+and+rapid+retargeter+events
Deployed on:
------------
WEP - pubweb01
WEL - pubweb02
LEL - eventcapture01
BEL - eventcapture01
BEL - eventcapture01
1998941
2000341 [email protected]
23857344
Enactments are getting stuck at campaign stage in all channels except email.
23857344 - ISSUE WITH ENACTMENTS NOT RELEASING FROM APPCLOUD STAGE IN TRIGGERED
MODE
-----------------------------------------------------------------------------------
---
Event Switch Support for Behavioral and Rapid Retargeter events -
https://confluence.oraclecorp.com/confluence/display/RES/Event+Switch+support+for+b
ehavioral+and+rapid+retargeter+events
Summary:
An Event Switch is similar to a Data Switch in that enactments flow into it, an
evaluation occurs and one path is chosen for the outflow. An Event Switch is
different from a Data Switch in that a Data Switch routes according to a field
within a record, whereas an Event Switch receives the incoming enactments, holds
them and waits for an Event to occur. The outflow from an Event Switch is
determined by which Event occurs first, not on a data field.
New events supported in Event switches:
Rapid Retargeter Events : Cart Abandon, Browse Abandon & Purchase Behavioral Events
Opens, Clicks, Conversion events
-----------------------------------------------------------------------------------
---
pubweb server contains Web Event Listner(wel) and Web Event Processor(WEP).
http://ui01-eng1.eng1.dc2.responsys.com:8080/jmxconsole/
ProgramDesigner>ProgramManagerConsole>raisePEGEvent
-----------------------------------------------------------------------------------
---
RSYS-2475 Cart Abandon Event registration for Program Engine/Clients
WHO
Program Event Registry.
WHAT
Cart Abandon events as intermediate events at event gate.
WHY
The registry is done based on PEG event type(for e.g. CA here) by a given program
i.e. a program event configuration containing the stage ids of CA events supported
by the program at the intermediate event gate stage.
This is similar as event gates listening to custom events.
ACCEPTANCE CRITERIA
1. Create a program with any start stage and include event gate.
2. Enactments should get released when correct peg event(CA here) is triggered
Podconfig.ini needs to have the below configuration for PEG EVENT.
[ProgramEventRegistryClients]
ui.EventTypes=PEG_EVENT, SMS_RECEIVED_EVENT, CUSTOM_EVENT, LIST_EVENT
programdesigner.EventTypes=PEG_EVENT, SMS_RECEIVED_EVENT, LIST_EVENT,
COLLABORATION_EVENT
webevtprocessor.EventTypes=CUSTOM_EVENT, PEG_EVENT
Find out the Program id from LAUNCH table for the given launch id in event.
Now we need to find out the stage for a given program id which is listening to the
particular event type (Open, click, conversion)
We need to enhance event registry that will allow us to find the list of stage id
for the event switch for a given account id, list id, program id, event type and
campaign id.
If multiple stages in a program are listening to the same event (let�s say open).
We need to send the event to multiple endpoints.
Now we have the Program id and stage id information available for the given event.
We need a way to batch them together for inserting data into Program_dropbox and
program_dropbox_entry tables.
We need to batch the events based on program Id ,stage id and whether it has
enactment id or group member id .This is because on the event gate side we need to
split based on enactment id or group member id
All the events belonging to the same program id, stage id , batch type (enactment
id or group member id) will be grouped together.
We do not need event type for grouping since we will get only one event type at a
time in the listener.
We will create a map of Map<String, List<EventFlowEvent>> where the Key would be
ProgramID , StageID, batch type and value would be a List of EventFlowEvent
objects.
We will create another set Set<Triplet<Long, String, BehBatchType>> .The Triplet
holds program id and stage id and batch type.
We will populate these 2 data structures as we loop through the List of EventFlow
objects that are passed to the processBatch() method.
Once they are populated, we will create the Batch IDs for all the entries present
in the 2 nd map mentioned above. Note: This will be achieved by using a single
query to obtain multiple sequence IDs.
Once we get the Batch IDs, we will create one entry per Batch in the
PROGRAM_DROPBOX table and for every Batch that is present in the 1 st Map we will
create child records in the PROGRAM_DROPBOX_ENTRY table.
After the transaction is committed, the performPostCommitActions() method is
invoked. Inside this method we will invoke the Dropbox Client API which will
create a DropboxEvent and put the message in the ProgramDropbox JMS Queue.
-----------------------------------------------------------------------------------
---
RSYS-2865 New war file for supporting Opens Clicks and Conversions using event flow
WHO
Program at the event gate
WHAT
Read Opens,Clicks and Conversion events from event db and send them to Program
Dropbox
WHY
Enactments listening to behavioral (opens,clicks,conversions) events at the event
gate should be correctly released when program receives those events via program
dropbox . The matching criteria for split will be Enactment ID.
ACCEPTANCE CRITERIA
1. Create a program with any start stage and campaign stage (only email channel).
2. Include event gate and configure it to listen for open/click/conversion events.
3. Once the campaign is launched from the campaign , the emails will be sent.
4. Let's assume the event gate is configured for open . If you open an email
received through this program and campaign then the event should be captured in
E_RECIPIENT_OPENED
5. We will be creating a new war file (bel.war) as part of this user story. If the
war file is deployed correctly then it should read the records from
E_RECIPIENT_OPENED and send them to program drop box. The new war file will use the
event flow architecture to read data from EVENT DB. The records should be available
in PROGRAM_DROPBOX_ENTRY table
use the following scripts to enable Eventflow Manually for an Account
to be inserted to shared cust db --Event type id 4 for open ,5 for click and 6 for
conversion
INSERT INTO ef_last_event_processed (account_id, event_type_id, target_schema,
last_sync_time, last_sync_id, application_name)
values ( <account id> , 4 ,<cust schema ex:'shashiqa_CUST'>,
sysdate,0,'behavioraleventlistener');
INSERT INTO ef_last_event_processed (account_id, event_type_id, target_schema,
last_sync_time, last_sync_id, application_name)
values ( <account id> , 5 ,<cust schema ex:'shashiqa_CUST'>,
sysdate,0,'behavioraleventlistener');
INSERT INTO ef_last_event_processed (account_id, event_type_id, target_schema,
last_sync_time, last_sync_id, application_name)
values ( <account id> , 6 ,<cust schema ex:'shashiqa_CUST'>,
sysdate,0,'behavioraleventlistener');
shared event db --Event type id 4 for open ,5 for click and 6 for conversion
INSERT INTO ef_event_status (arg_id, account_id, event_type_id,
event_schema,is_enabled ,run_status, last_sync_time, last_sync_id, event_table,
application_name)
values(<arg id> ,<account id> ,4 ,<arg specific event
db>,'Y','A',sysdate,0,'E_RECIPIENT_OPENED','behavioraleventlistener');
INSERT INTO ef_event_status (arg_id, account_id, event_type_id,
event_schema,is_enabled ,run_status, last_sync_time, last_sync_id, event_table,
application_name)
values(<arg id> ,<account id> ,5 ,<arg specific event
db>,'Y','A',sysdate,0,'E_RECIPIENT_CLICKED','behavioraleventlistener');
INSERT INTO ef_event_status (arg_id, account_id, event_type_id,
event_schema,is_enabled ,run_status, last_sync_time, last_sync_id, event_table,
application_name)
values(<arg id> ,<account id> ,6 ,<arg specific event
db>,'Y','A',sysdate,0,'E_RECIPIENT_CONVERSION','behavioraleventlistener');
Cust DB:
select * from program_dropbox_entry order by created_dt desc;
select * from program_dropbox where batch_id in (141447,141427,141467);
Event DB
select * from e_recipient_opened where launch_id in (676387,676407);
-----------------------------------------------------------------------------------
---
ACCEPTANCE CRITERIA
Precondition: Event flow is enabled ,the controlled feature is enabled for
behavioral events and bel.war is deployed
1. Create two programs with any start stage and campaign stage (only email
channel).
2. Include event gate and configure one program to listen to Open Event.
Other program should not listen to open event.
3.Once the campaign is launched from the Program, the emails will be sent.
4.Open the emails sent from both the programs.
5.Open event is registered in E_RECIPIENT_OPENED table of event db for both the
opens.
If Program event registry is working as expected and bel.war is deployed
5.Program Drop box should have the records for the program 1 which is listening to
open event at event gate
6. The events for the program which is not listening to open event should not enter
the program dropbox.
Cust DB:
select * from program_dropbox_entry order by created_dt desc;
select * from program_dropbox where batch_id in (141447,141427,141467);
Event DB
select * from e_recipient_opened where launch_id in (676387,676407);
-----------------------------------------------------------------------------------
---
Event Flow
How to check if event flow is enabled or not.
Login to SysLocal Shared Event DB. Access EF_EVENT_STATUS. Query this table using
account ID. We need to look into the column called APPLICATION_NAME, it will have
values for behtargetting and reporting. Also, check the column IS_ENABLED for
checking if behtargetting/reporting is enabled/disabled. Also check EVENT_TABLES
column.
For example:
select * from EF_EVENT_STATUS where account_id=23487 and APPLICATION_NAME like
'%beh%';
IS_ENABLED table will contain value Y for the EVENT_TABLES that are enabled.
-----------------------------------------------------------------------------------
---
--> To check Event flow is enabled connect syslocal event shared db and access
EF_EVENT_STATUS
--> To check if bel.war is deployed, access eventcapture01/eventcapture02 servers
and check if bel is listed in jmx.
-----------------------------------------------------------------------------------
---
RSYS-2482 Browse Abandon Event Runtime Handling
select * from Proclog where message like '%227827%' order by RUNTIME desc;
select * from Proclog where message like '%990947%' order by RUNTIME desc;
If enactments are not moving to next stage in triggered mode/batch mode for
launcheventlistener/beh event listener, check EF_EVENT_STATUS and check, is enabled
= Y
if N, update
WebEventProcessorBatchRepeatMins=5
-----------------------------------------------------------------------------------
---
RSYS-2866 Support Opens Clicks Conversions at Event Switch
Acceptance Criteria:
1.Create a pure triggered program with event gate stage.
2.After enactments wait at the event gate stage and when the group timer event
comes, trigger to batch migration happens.
3.Check in the GRP_MEMBER table for these riids, the ENACTMENT_ID_ column should
get populated with the ENACTMENT_ID_ value in the PRG_ENACTMENT table.
also for new programs, the GRP_MEMBER as well as CUST_TXN tables should have the
nullable ENACTMENT_ID_ column of type NUMBER.
PRG_TAB_COLUMN table will have this column added after 1st group gets created.
NOTE: If EnactmentBatching is enabled the enactments will directly enter the batch
engine and when after campaign launch when the email is clicked/opened we will have
valid enactmentId and grpEnactmentId in the eventDB tables and hence dropbox batch
will be populated via BEL.
Please note ENACTMENT_ID_ column will only get populated if the outpath for event
switch has atleast one of the behavioral event types (opens,clicks,conversions)
configured and not always.
-----------------------------------------------------------------------------------
---
-----------------------------------------------------------------------------------
---
> The Rapid Retargeter events will continue to be raised by the webeventprocessor
but unlike where RR events are used as start stage that WEP sends them to Program
Engine Triggered, at the event gate stage they will directly come to the batch
engine.
> The major distinction between Rapid Retargeter events and Behavioral events is
that RR events are usually sent from an external system without much knowledge
about the internals of the interact system; the user will know of the API to
introduce them. On the other hand, an Behavioral event receives its name from the
fact that they carry a context payload related to the execution of a program, a
campaign, a user unique identifier and others.
/* Events supported till 6.29 are custom event(list upload,connect,form submit,web
services), collaboration event, smsreceived event, rapid retargeter
events(browse,cart,purchase)
* and behavioral events(opens,clicks,conversions)
* we process each of these events differently. custom event(list upload,connect)
and collaboration event are group events and are processed immediately
* for custom event(form submit,web services), smsreceived event, rapid retargeter
events(browse,cart,purchase) - these are trigger events and we do not process
immediately. we first create a
* buffer group(group state = "F") and every 10 mins during grouptimer job process
and release them accordingly
* Rapid Retargeter events flow:-
* once browse,cart abandon and purchase events are triggered via web event listener
the event entries come to event DB tables - E_WEB_BROWSE and E_WEB_CART
* web event processor job that runs every 15 minutes aggregates these events and
sends to programs. For RR events as start events it comes to program engine trigger
for event gate
* it comes to program engine batch
* 1st F group is created and every 10 mins during grouptimer job process and
release them accordingly. It is done based on matching by RIID.
* when match field is also selected then specific RIID with matching ETV value that
came alongwith the event is released
* Behavioral Events flow:-
* For opens, clicks and conversion the events are 1st stored in event DB tables -
E_RECIPIENT_OPENED, E_RECIPIENT_CLICKED and E_RECIPIENT_CONVERSION
* these come to programs via event flow. BehavioralEventListener creates batches
and inserts into PROGRAM_DROPBOX and PROGRAM_DROPBOX_ENTRY tables. Those events
which have come via batch flow
* i.e. those have valid grpEnactmentId and EnactmentId in event DB tables will have
GRP_ENACTMENT_ID column in PROGRAM_DROPBOX as -4 and those which came via pure
trigger flow with null
* grpEnactmentId in event DB tables will have GRP_ENACTMENT_ID column in
PROGRAM_DROPBOX as -3. Eventgateworker will receive these events as
ProgramDropboxGroupEvent and
* will not process them immediately but insert the batch info into
PRG_BUFFERED_EVENT table. every 10 mins during grouptimer job
* and every time a new group enters event gate we process them and release
accordingly. here release is done batched on matching by enactmentId.
*
*/
-----------------------------------------------------------------------------------
---
481921
627_DropBox and Channel Client
-------------------------------
627_DropBox and Channel Client
Database Tables:
----------------
custShared db
EF_LOG
EF_LAST_EVENT_PROCESSED
EF_EVENT_STATUS
cust db
GRP_ENACTMENT_LOG
PROGRAM_DROPBOX
PROGRAM_DROPBOX_ENTRY
event db
LUNCH
LAUNCH_ACTIVE
E_RECIPIENT_SENT
E_RECIPIENT_SKIPPED
E_RECIPIENT_FAILED
Confluence Links:
-----------------
Channel Client -
https://confluence.oraclecorp.com/confluence/display/RES/Channel+Client
Dropbox Design -
https://confluence.oraclecorp.com/confluence/display/RES/Orion6.25_ProgramDropboxDe
sign
6.30/NewFeatures/Programs/Collaboration
Shared event
SELECT es.account_id, es.event_type_id, arg_id, event_schema,
event_table,application_name, last_stored_id, last_stored_time, last_sync_id,
last_sync_time, run_status, rownum rn
FROM ef_event_status
es, ef_last_insert_log ei
WHERE ARG_ID = 4
AND application_name =
'launcheventlistener'
AND run_status = 'A'
AND is_enabled = 'Y'
AND es.account_id =
ei.account_id
AND es.event_type_id =
ei.event_type_id;
custShared
select * from EF_LAST_EVENT_PROCESSED where application_name =
'launcheventlistener'
I can see other configuration for eventflow and applicationhost are present in
podconfig.
I checked the PROGRAM_DROPBOX tables � but there are no entries there since June
2015.
This I believe is because there are no entries for arg4 in the EF_EVENT_STATUS
table and hence the argManagers are not woken up to trigger the eventflow mechanism
for LEL to insert data in the PROGRAM_DROPBOX tables.
I can see other configuration for eventflow and applicationhost are present in
podconfig.
I checked the PROGRAM_DROPBOX tables � but there are no entries there since June
2015.
This I believe is because there are no entries for arg4 in the EF_EVENT_STATUS
table and hence the argManagers are not woken up to trigger the eventflow mechanism
for LEL to insert data in the PROGRAM_DROPBOX tables.
I can see other configuration for eventflow and applicationhost are present in
podconfig.
I checked the PROGRAM_DROPBOX tables � but there are no entries there since June
2015.
This I believe is because there are no entries for arg4 in the EF_EVENT_STATUS
table and hence the argManagers are not woken up to trigger the eventflow mechanism
for LEL to insert data in the PROGRAM_DROPBOX tables.
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------------
RSYS-2779 Enhancement to handle app failure
https://jira.oraclecorp.com/jira/browse/RSYS-2779
WHO
Launch Event Listener(producer) and Dropbox client(consumer)
WHAT
Today we have a LaunchListenerJob that picks up the records from dropbox table that
are in the New state every 15 mins (configurable). The existing LaunchListenerJob
should be modified not only to pick the records in New status but also queued ones.
If LEL app server goes down after status changed to QUEUEING, but before message
sent to the consumer , records be queued (STATE =Q) for ever. Such records need to
be retried to allow for reprocessing.
WHY
To recover elegantly from failures.
ACCEPTANCE CRITERIA
Possible failure scenarios
1. If DB has gone down during the processing, the processing should resume once the
DB has come up.
2. If LEL has gone down during the processing, the processing should resume once
the LEL has come up.
3. If JMS has gone down during the processing, the processing should resume once
the JMS has come up.
4. If Personalizer has gone down during the processing, the processing should
resume once the Personalizer has come up.
Expected behavior is
The records should be picked irrespective of the status (New/Queued/Processing)
when the failure occurs
The records would be retried for the configured number of retry attempts every 10
minutes (??) and records that are being processed for
FailedRecordsProcessingDurationInMins minutes would be retried.
[ProgramDropbox]
RetryCount=4
FailedRecordsProcessingDurationInMins=60
After the number of retries the records would be updated as failed (F) and the
failure reason would be updated in the PROGRAM_DROPBOX.EXTRA_INFO column. Failure
reasons would be truncated at 4000 chars.
The records marked as Failed would eventually be persisted to PRG_BLOCKED_EVT_prgId
table and picked up by existing BlockedEventRecovery job to replay them to program
engine batch or program engine triggered
TEST APPROACH
Create a program with ChannelClient enabled account.
After dropbox tables are populated by LEL and Dropbox client is called to notify
Program Dropbox of the batches that are persisted.
Now after Batch is updated with status=Q bring the LEL application server down.
The records should still be sent to the Program engine eventually
Shared event
SELECT es.account_id, es.event_type_id, arg_id, event_schema,
event_table,application_name, last_stored_id, last_stored_time, last_sync_id,
last_sync_time, run_status, rownum rn
FROM ef_event_status
es, ef_last_insert_log ei
WHERE ARG_ID = 4
AND application_name =
'launcheventlistener'
AND run_status = 'A'
AND is_enabled = 'Y'
AND es.account_id =
ei.account_id
AND es.event_type_id =
ei.event_type_id;
custShared
select * from EF_LAST_EVENT_PROCESSED where application_name =
'launcheventlistener'
I can see other configuration for eventflow and applicationhost are present in
podconfig.
I checked the PROGRAM_DROPBOX tables � but there are no entries there since June
2015.
This I believe is because there are no entries for arg4 in the EF_EVENT_STATUS
table and hence the argManagers are not woken up to trigger the eventflow mechanism
for LEL to insert data in the PROGRAM_DROPBOX tables.
In the shared event DB table EF_EVENT_STATUS for event schema programteam_EVENT is
mapped to arg1 but from account schema for programteam account I see it is arg4.
Can we run the script to populate the seed data for arg4.
I can see other configuration for eventflow and applicationhost are present in
podconfig.
I checked the PROGRAM_DROPBOX tables � but there are no entries there since June
2015.
This I believe is because there are no entries for arg4 in the EF_EVENT_STATUS
table and hence the argManagers are not woken up to trigger the eventflow mechanism
for LEL to insert data in the PROGRAM_DROPBOX tables.
POD config for CustShared and EventShared configuration details, search for
�shared� keyword
Database Tables:
----------------
CUST DB:
commit;
SysAdmin DB:
commit;
Classic Campaign:
1. Link Table Delete - Success
2. Fail Script - Built in does not work
3. Document delete - Success
4. List change - Success
SMS Campaign:
1. Link Table Delete - Success
2. Fail Script - Success
3. Document delete - No document
4. List change - Not possible.
5. Key word delete - Key word not getting deleted.
6. Delete custom column - Does not get blocked.
MMS Campaign
1. Link Table Delete - No Link table
2. Fail Script - Success
3. Document delete - Does not get blocked
4. List change - Success
5. Delete custom column - Does not get blocked.
${Surender_Contacts.NAME1?uppercase}
For the triggered mode, ideally, we should not have the popup for Retry/Skip/Exit
for the customer login.
However, with the current behavior, you�ll see the blocked popup with Skip and Exit
options.
This though will not unblock the stage as the unblock options are supported only
for the batch engine. We are currently looking into how to handle this scenario.
For the new stages, for the customer login, retry/skip/exit is not supported
(unblock options are supported only for campaign stages for customer login).
However, for the sysadmin login, the behavior should be the same as any other non-
campaign stages.
Hello Shashi,
So, currently there is no way for the unblock action logic to tell the UI if it is
a triggered program or batch program stage block.
Also, there may be cases where a stage is fed by both batch and triggered start
events. Example, a campaign stage having two in-paths, from a Scheduled Filter and
a Customer Activated Event.
Therefore, as of now, the unblock options will be shown for both cases.
For triggered stage blocks, clicking the options does nothing - this is a known
issue.
The auto-retry option will however try to recover these blocks.
We also have a flag called isUserActionable in the PRG_BLOCK table. This is used to
show the Retry button.
It is set for all stages if it is SysAdmin login. For customer login, it is set
only for Bulk Campaign launch blocks(above the EmailCampaign.SmallBatchThreshold).
So, based on this you will either see all 3 options, or only Skip and Exit options.
So, the answer for your use cases (for customer login, and assuming the stage in
question is a campaign stage)�
1. Yes, but only Skip and Exit options are shown. Clicking the options does
nothing � known bug.
2. Yes. Skip and exit is shown. Retry is shown if it is above the small batch
threshold. Also, if the latest block as the isUserActionable set � meaning batching
should have been before the block happened, and this is above the small batch
threshold.
3. Is this valid case ? Can there be migration from PRG_ENACTMENT_XXX to
GRP_MEMBER_XXX , and origin changed to �B� ? Shouldn�t origin be still �T� ?
4. Yes, Skip and Exit options are shown. No retry!
5. Yes, All 3 options are shown.
Regards,
Jose
The problem is not that they are doing this.. The problem is why do they have to do
this?
Think about it.. It's easy for me and you to pick a phone, see a video, get
suddenly aware getting our eyes wide open and write a comment..but are we really
aware of people's problems around us? Are our eyes really open?
If your family is dying of starvation, what would you do when nothing good can be
done anymore and no one cares be it the people around you or the government.. Karma
definitely wouldn't be the thing that will come first on your mind.. You will say
I'm sorry God.. I'm helpless.. I have to do it for me and my family's survival..
Well not everyone who is born and living on this earth is blessed.. They would go
to the best possible extent to do for their family.. I don't have any hope with the
government but I wish everyone reading this comment take a pledge to help people
around them when they're actually capable of doing it..If one helps another then
united we are helping thousands of them.
DM
--
DM
Database Tables:
----------------
How to find MPET table:
1. Take the list id of the profile list(say 89741).
2. select * from attribute_profile_map where list_id=283981; Note down the MPET
ID.
3. select * from mpet_00000089981;
4.
ATTRIBUTE_VALUES_PROPERTIES
ATTRIBUTE_VALUES_DENORM
select * from collab_wf_activity;
table_metadata
DM Important Links
-------------------
https://confluence.oraclecorp.com/confluence/pages/viewpage.action?pageId=188019923
Project overview:
https://confluence.oraclecorp.com/confluence/display/RES/Solution+for+Orgs+impactin
g+Programs+and+Campaigns
https://confluence.oraclecorp.com/confluence/display/RES/Collaboration
%3A+6.25+Requirements
Recursive Execution
The existing Program Batching Engine in Production is running in �Recursive� model.
It means the program workflow execution will recursively execute each stage till a
thread boundary is reach e.g. Timer Stage is reached, Email campaign bulk launch is
executed, and etc.
For the above program, the stage execution flow in Recursive will be:
� GroupFilter event received
� Execute stage S1: create Group G1, move G1 to S2
� Execute S2: split Group G1, to G2, G3, and G1; Move G2 to next stage S3; Move
G3 to next stage S4; Move G1 to next stage S5
� Execute S3 for Group G2: execute Email Campaign w/ Bulk Launch
� Execute S4 for Group G3: execute Email Campaign w/ Bulk Launch
� Execute S6 for Group G1: execute Email Campaign w/ Bulk Launch
� Launch Complete on G2: move G2 to next stage S6; execute S6 for G2
In Sprint-2, Async Engine completed the full cycle of Async events (START &
COMPLETE).
Sprint-3 deliverable includes:
Async Program Engine - Event Switch Worker fullly support async event cycle (B-
09315)
Async Program Engine - Stage Gate Worker fullly support async event cycle (B-09401)
Async Program Engine - Stage Retry Verification (B-09549)
POD: QA1
Build: 630008113.1
Account: qa1prog/Welcome1234%
Program: P_ChannelClient_RetryForBatchTrigger2(Pgm ID:536801)
EmailCampaign.SmallBatchThreshold = 10
Expected Result:
----------------
Retry option should be visible.
Actual Result:
--------------
Retry option is not present.
Note: In batch trigger mode, since there is no AUTO RETRY, Retry option should be
available.
6.31
-----
https://confluence.oraclecorp.com/confluence/display/RES/VT%3A+Program+Platform+-
+6.31
https://confluence.oraclecorp.com/confluence/display/RES/Program+To+Program+Events+
Engineering+Specification
Test:
----Test
After a brief thought, with exorbitant Goan New Year prices in mind, I said to
myself, "Hey, why not sikkim? if the budget will work out to be same as Goa !"
So, I was back to square one. Few days passed, nothing solid had worked out. Then,
like we all Indians with affinity towards Advertisements, heard Amitabh on TV,
saying, kuch din to guzariaye Gujrath mein. And there I was, Google Maps,
makemytrip.com, Travel Websites, Gujrath Tourism website, flipkart.com, started
accessing them all.
Sounded fun !
Booked Flight to and Fro to Ahm.
I was all exited about Kutch/Bhuj but somehow this feeling started to creep-in.
Temples? Really? umm..
Amature the traveller that I am, had not checked the moon visibility for the period
I was travelling. The Moon visibility during the period I was travelling was not
great at all for Kutuch.
And hence, Guj plan went for a toss. Since, the filght was alraedy booked, we
decided, lets do Rajasthan
http://www.quora.com/How-can-a-person-increase-his-or-her-intellect
Muttarayana Hills
08532 226195
underprivileged
as kids, we played all day.. then came school, took all my time away..
hushed and rushed, i was supposed to score 90 plus.
By the time i realized, cricket was my calling,
pre-university
Any book that helps a child to form a habit of reading, to make reading one of his
needs, is good for him. �Maya Angelou
---------------------------
Let's go back to 1700-1800 and see how the world was and how British managed to get
a hold of India.
1760s saw a number of battles between the Europeans and the French in North
America, Africa.
}
}
by 2 tea
Mother promise
father promise
god promise
i am like this only..
if u have any problems with this, dont revert back !