RTD Platform PSE 14 (Patch set exception) is a update with full set of install files. The installation files are available through support.oracle.com:

1.       Patch # 16576172

Search and access through http://support.oracle.com

Navigate to the “ Patches & Updates” tab enter in bug number 16576172 and hit search

Readme: http://download.oracle.com/otndocs/products/rtd/RTD_3.  

Below is a list of defects addressed by this patch. For installation information and additional information, consult the readme file provided above and bundled with the patch file.

For the latest information regarding this patch set update, including newer revisions – see Oracle RTD Platform Patches

Defects fixed in this patch:

New fixes in

1.    16576172 - backport 13957720 to - snapshot takes long time.


New fixes in

1.    Learning Server performance improvements – see section “Learning Server Architectural Changes Introduced in This Patch” below.

2.    13610972 - Data Source not found error in certain race conditions

3.    13080205 - Inline Service Application parameters not visible in Decision Center

4.    12985556 - RTD need to recover gracefully from data source interruption

5.    12962684 - Batch jobs should be forwarded to least-loaded batch agent in cluster

6.    12831443 - Unable to load model due to counter reaching int limit (2^31)

7.    12798391 - Unable to deploy Inline Service using command line deploy too if inline service uses "Days Since Last Event" function

Previously fixed in

1.    12353084  Model snapshot data (correlation, predictiveness) for completed time windows is offset by one period.

2.    11837000  <session-timeout> parameter removed from UI.war’s web.xml.  [For Decision Manager].

3.    11832629  Batchagent fails to register with batchmanager in cluster due to race condition.  Retry (3 attempts) code implemented.

4.    11804529  External rule editor - double quotes (") entered for the parameter TitleMessage leads rendering error.

5.    11742973  Decision center – “Internal server error” seen for choicegroup-level Analysis > Trends reports where children choices are a mix of static and dynamic choices.

6.    11739285  Decision center – “Internal server error” seen for choicegroup-level Analysis > Drivers report due to jsp page exceeding size limitation.

7.    11668572  JBoss – Request forwarding channel reset error fix using Jgroups 2.8.

8.    10411524  RTD decision service java client to support JUL logging, automatically generate session key in header, support user-defined header.

9.    10390665  Add system property to bypass ILS test loading during ILS deployment

10. 10387803  Decision Service performance log (ds_perf.csv) - additional request forwarding metrics

11. 10383794  Decision Center - increased precision shown in report data.

12. 10323594  Temporary data storage (TDS) – Add session key name to TDS key value.

13. 10279493  Upgrade RTD-bundled Oracle JDBC driver to

14. 10259859  Model runtime apis return parent choicegroup data instead of choice data if choice event model defined with only one positive event.

15. 10254585  Add javadocs for getchoiceeventlikelihoodswhy() method

16. 10211905  Decision Center – when in https, need to suppress popup warning “This page contains both secure and nonsecure items”. [For Decision Manager].

17. 10178734  External Rule Editor - add option to hide inherited rules.  [For Decision Manager].

18. 10170068  Decision Center – IE 8 support needed.

19. 10122030  Decision Service - allow negative choice score values.

20. 10035297  Sticky control group assignment when there are multiple session keys.

21. 10035277  Sequential selection values result in sequential control group assignment.

22. 10034931  Entity cache code generation improvement to reduce SQL queries.

23. 10031983  Weblogic/Websphere - Request forwarding channel reset error fix using Jgroups 2.8.

24. 10013868  Java smart client retains open file handles on sdclient.properties.

25. 9959417   External Rule Editor - add option to override default title value.  [For Decision Manager].

26. 9927978   Java smart client forgets cookies when used asynchronously.

27. 9924191   DC_Demo sample ILS - external rules deployment helper.  Update to allow editing/saving of long external rule xml strings.

28. 9893907   Prevent rare infinite loop symptom when a model's "Randomize Likelihood" option is selected.

29. 9866824   Decision Service WS response may include duplicate copies of attributes which had values set in several parent choicegroup levels

30. 9726419   External Rule Editor - add option to display rule editor in read-only mode.  [For Decision Manager].

31. 9553431   Rule editor - javascript error disables save feature.

32. 9340440   Decision Center - incorrect reports when "Value Domain" of partitioning attributes of a model definition is non-empty.

33. 9310288   Studio - remove temporary data storage option for generic models.

34. 9306670   Decision Center - when positive counts exceed total counts, show model quality as 0 and hide cumulative gains graph.

35. 9302009   Studio - remove temporary data storage option for choice models.

36. 9286155   Model quality - integer overflow causes model quality to appear as 0.

37. 9267227   Model quality - internal data check (ismonotonicallyincreasing) at times incorrectly shows model quality as 0.

38. 9096379   Decision Service performance counters - add request forwarding metrics.

39. 8977280   Temporary data storage (TDS) – fix feature.

Learning Server Architectural Changes Introduced in This Patch

This release of Oracle RTD introduces several design changes within the Learning Server, offering increased learning throughput of the learning records:

1.   Parallel model learning.  When learning occurs at the end of an integration point request, or at the close of the Oracle RTD session, such that more than one model is to be updated by the learning, the updates to the models occur in parallel.

2.   Read-ahead caching of learning records.  The learning server maintains an active read-ahead queue of learning records to incorporate into its learning models.  It is continuously updating this queue of records from the database, in order to offer the learning algorithms the next record as fast as possible.

3.   Asynchronous deletion of processed learning records.  Once learned upon, learning records are expunged from the database in an asynchronous manner that prevents any decrease in learning throughput in the learning server.

4.   Schema changes:

1.   A new SDLearning table for enhanced concurrent performance of selects, deletes and insertions.  The SDLearning table is now a partitioned IOT (index organized table).

2.   New stored procedures: SDLRQueueFill, SDDeleteLRS, SDGetMaxLRId.

3.   Removal of deprecated stored procedures: SDGetLearningData, SDGetLearningIdRange

4.   New table, SDLastLRId, used in the deletion of process learning records.

Creating Tablespaces

Prior to installing/upgrading this release of Oracle RTD, the CreateTablespaces.sql script must be run on the Oracle instance, as SYS. 

Both the file names for the partitions and the file sizes may be varied.  The tablespace names must remain invariant as these names are used in the SQL for SDLearning table creation.

Configuration of the Learning Server

The following Java system properties direct the behavior of the learning server.  They must be set as JVM properties on the Learning Server JVM prior to starting the JVM.

1.   rtd.numCPUs – to specify the number of threads to use in the parallel learning thread pool.  This is recommended to be less than or equal to the number of CPU’s on the machine running the LS instance.  Default: The LS instance detects the number of CPU’s on its machine and defaults the thread count to this number. 

[Recommendation: do not set this property]

2.   rtd.LearningDispatcher.LearningSleepMS - sleep interval between main task loop executions. Default is 15000 (15 s).  This is the sleep time between executions of the recurring main loop task.

[Recommendation: set this property to a value of 100 (meaning 100 ms)]

3.   rtd.LearningDispatcher.ProcessingSize – number of Learning Records ( LR’s) to process as a group before checking for timeout in the “Learn LR’s” sub-task of the main loop task. Default is 20.  The LS will process this many LR’s before checking whether the timeout set in #3 has been met.

[Recommendation: do not set this property]

4.   rtd.LRQueueCapacity – the capacity of the LS queue the pre-reads LR’s from the database (from the SDLearning table).  Default is 10,000.

[Recommendation: set to ~5% of expected learning records generated per hour. I.e, if the system is expected to generate 1,000,000 learning records/hour, set the Queue capacity to 50,000]

5.   rtd.LRQueueRefillRatio - Refill Ratio of the LS queue – this is the ratio of queue size/capacity that induces launch of a new reader task when size is reduced by 1 in LR processing.  Default is 0.5 (i.e. when polling removes a LR such that size < ½ capacity, a reader task is launched if one is not already active). 

[Recommendation: do not set this property]

6.   rtd.LRQueueSleepIntervalSec - Sleep time, in seconds, for the LS queue reading task. If the reading task encounters an empty SDLearning table, it sets a sleep time for the next launch of itself – on the next launch, it sleeps for this time before resuming.  Default is 10 sec.

[Recommendation: do not set this property]


Learning Server Logging Changes

The following are the logging system changes in this release:

LRQueue Logging:

1.   INFO level logging:

a.   LRQueue reading task result logs at INFO level whenever the task completes:

"LRQueue read task complete: Added {0} Records to LRQueue in {1} sec. SP took {2} msec. Queue size is now {3}",   This log entry is made only if records were added to the queue (only if the {0} count > 0). The size is taken at the point of creating this log entry.  Noting how the size is << the added number of Records (X) shows how fast processing is taking Records off of the front of the queue.  If 0 records were added to the queue in the reading task, this log entry is omitted.

If the following system property is set, indicating to trace BLOB to byte array conversion times for LR’s: rtd.LearningServer.traceBLOBConversion=true, then the reading task result log is augmented with the average stat:

"Added {0} learning records to the LRQueue in {1} sec. SP took {2} msec. Queue size is now {3}. Average BLOB conversion time was {4} msec.".

2.   ERROR logging:

a.   LRQueue reading task fails with exception:
"SD_ERROR_com.sigmadynamics.server.ls.LRQueue.taskException", "LRQueue reading task failed with exception” - with trace.

b.   If on start(), DB is unavailable:
"Database unavailable in LRQueue.start.  Stopping...."

c.   Currently, only Oracle DB is supported.  Attempting to run LRQueue on an non-Oracle DB results in the following error from LRQueueTask:
"LRQueue reading task failed - unsupported DB type."

GleanerTask Logging:

1.   INFO level:

a.   The GleanerTask logs the number of records removed, and the SP execution time at INFO level:
“Removed {0} processed learning records for study: '" + studyName + "'. Removal took {1} msec.”

2.   ERROR level:

a.   The GleanerTask fails with exception:
"SD_INFO_com.sigmadynamics.server.ls.GleanerTask.exception", "LR Gleaner failed with exception" – with trace.

ReadLearningData.readData() Logging:

The “Learn LR’s” sub-task of the main task loop reports the number of LR's it processed at INFO level.  This log entry is made only if the number of LR’s processed was greater than 0

1.   INFO level:

a.   Normal processing:
"Processing of {0} learning records in range {1}:{2} took {3} seconds.  Backlog of learning records to process is now {4}."

b.   Forced learning:
"Forced learning of {0} learning records in range {1}:{2} took {3} seconds.  Backlog of learning records to process is now {4}."