> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 08/31/18 Release Notes

> Highlights of the GermainUX release of August 31, 2018, including analytics improvements, configuration changes and maintenance fixes.

> **[60% performance improvement of User Login](#customer-story-60%-performance-improvement-of-user-login)**
>
> Customer Story

> **[Analytics - "Static Content" time analysis for Clicks](#analytics-“static-content”-time-analysis-for-clicks)**

> **[Correlation engine (for facts)](#analytics-correlation-engine-for-facts)**
>
> Analytics

> **[Data Search](#analytics-data-search)**
>
> Analytics

> **[Display Name for KPI & Field](#analytics-display-name-for-kpi-%26-field)**
>
> Analytics

> **[Business Process - Monitor BPs that contain more steps than configured](#analytics-business-process-monitor-bps-that-contain-more-steps-than-configured)**
>
> Analytics

> **[Monitor & disregard Targeted Clicks](#analytics-monitor-%26-disregard-targeted-clicks)**
>
> Analytics

> **[Exclude Field Value(s) from User Session Replay](#analytics-exclude-field-values-from-user-session-replay)**
>
> Analytics

> **[garbage collection stats, class & system stats](#analytics-for-java-garbage-collection-stats-class-%26-system-stats)**
>
> Analytics for Java

> **[Doc update for Java code & JVM real-time monitoring/profiling](#analytics-for-java/jvm-doc-update-for-java-code-&-jvm-real-time-monitoring/profiling)**
>
> Analytics for Java/JVM

> **[Siebel Session Replay Fix](#analytics-for-siebel-crm-ip17-user-session-record/reconstruct/replay-bug-fixed)**
>
> Recording playback corrected

> **[Crash RCA dashboard](#analytics-for-siebel-crm-crash-rca-dashboard)**
>
> Analytics for Siebel CRM

> **[Be alerted when S\_EVT\_REQ exceeds N rows and view the rows](#analytics-for-siebel-crm-be-alerted-when-s_evt_req-exceeds-n-rows-and-view-the-rows)**
>
> Analytics for Siebel CRM

> **[Dynamic DB Table creation](#configuration-dynamic-db-table-creation)**
>
> Configuration

> **[Dynamic Type creation](#configuration-dynamic-type-creation)**
>
> Configuration

> **[External Table content in an Email alert or Portlet](#configuration-external-table-content-in-an-email-alert-or-portlet)**
>
> Configuration

> **[3-5% performance degradation for IE user when User Replay enabled](#maintenance-3-5%-performance-degradation-for-ie-user-when-user-replay-enabled)**
>
> Maintenance

> **[\~30% Insert throughput improvement](#maintenance-30%-insert-throughput-improvement)**
>
> Maintenance

> **[Clustered deployment of germain APM](#maintenance-clustered-deployment-of-germain-apm)**
>
> Maintenance

> **[Oracle UPT vs germain APM and germain CRT](#competitive-analysis-oracle-upt-vs-germain-apm-and-germain-crt)**
>
> Competitive analysis

## Customer Story - 60% performance improvement of User Login

One our clients found a way to improve by 60% the User Login response time to its CRM application, within 2 weeks of using germain Germain, issue that the customer had been investigating for 1.5 years before using germain Germain.

Unfortunate Note: the customer first failed finding insights using germain Germain, we had to step in and help....which made us realize that we have to improve the way data and insights are visible on germain Germain dashboard. We will be implementing a number of enhancements to make data and insights easily accessible by users that have never used germain Germain before..stay tune.

### Customer Story details

> **Read the full success story (7 pages)**
>
> ![Success story, page 1](https://mintcdn.com/germain-ux/tSVQ42-UY7_I0bpH/images/attachments/success-story-slow-logins-1.png?fit=max\&auto=format\&n=tSVQ42-UY7_I0bpH\&q=85\&s=cb0d6107872cb31a77ab9b8a70e40610)
>
> ![Success story, page 2](https://mintcdn.com/germain-ux/tSVQ42-UY7_I0bpH/images/attachments/success-story-slow-logins-2.png?fit=max\&auto=format\&n=tSVQ42-UY7_I0bpH\&q=85\&s=1fe78d40731de0dbff915a8642b83dfe)
>
> ![Success story, page 3](https://mintcdn.com/germain-ux/tSVQ42-UY7_I0bpH/images/attachments/success-story-slow-logins-3.png?fit=max\&auto=format\&n=tSVQ42-UY7_I0bpH\&q=85\&s=17b9a15384c75822c5121c212df30c6b)
>
> ![Success story, page 4](https://mintcdn.com/germain-ux/tSVQ42-UY7_I0bpH/images/attachments/success-story-slow-logins-4.png?fit=max\&auto=format\&n=tSVQ42-UY7_I0bpH\&q=85\&s=522db76b44ef11341a631fbc3ab36652)
>
> ![Success story, page 5](https://mintcdn.com/germain-ux/tSVQ42-UY7_I0bpH/images/attachments/success-story-slow-logins-5.png?fit=max\&auto=format\&n=tSVQ42-UY7_I0bpH\&q=85\&s=d0b3599187e415f595e683b0f86b66c9)
>
> ![Success story, page 6](https://mintcdn.com/germain-ux/tSVQ42-UY7_I0bpH/images/attachments/success-story-slow-logins-6.png?fit=max\&auto=format\&n=tSVQ42-UY7_I0bpH\&q=85\&s=6d24f3f432693fbdf0bb67dd684496f8)
>
> ![Success story, page 7](https://mintcdn.com/germain-ux/tSVQ42-UY7_I0bpH/images/attachments/success-story-slow-logins-7.png?fit=max\&auto=format\&n=tSVQ42-UY7_I0bpH\&q=85\&s=d14434d820e0055e5dbd04a172a6e4cf)

## Analytics - "Static Content" time analysis for Clicks

### Description

Real-time **Static Content (JS, CSS, Images) load time analysis** is now available on User Click RCA dashboard, so you know how much time is spent downloading any JS, CSS, Images... from the network, which typically occurs when a user clicks on page, button, etc. This is similar to what we did for User Login, last month.

Supported browsers: : Chrome52+, Firefox57+, Opera39+

Unsupported browsers: IE, Edge.

### Examples

RCA of a Drilldown and of a click on a View on Siebel CRM (same as for any other web apps e.g. Angular, Html, React, Salesforce.com, etc

Note that these screenshots are not showing the server-side portion of the RCA (e.g. Backend Transaction, Code, SQL, etc) that is yet supported.

## Analytics - Correlation engine (for facts)

This new Correlation Engine is another great step forward to have Germain provide smarter insights (in the past, Germain used to correlate some data, but none of that correlation was configurable).

* Any data, that Germain collects, can be correlated to one another.
* Correlation is configurable via config console
* One or many properties (id, name, etc) can be used for correlation

### Configuration

This new correlation engine is preconfigured to analyze the root-cause of a Siebel Object Manager crash, so we will be using that as our use case to show you and it can be configured.

1. Open up Germain Configuration Console and go to **germain.apm.analytics.correlationScenarios**
2. Create a **new correlation scenario**: \
   &#x20;\
   &#x20;**Name** – value to be used to configure a KPI to show the correlated data \
   &#x20;**Retention** – how long to keep the correlated data in cache. In this case, we expect all raw crash data to be received within 1 hour \
   &#x20;**Fact class** – model type to store correlated data in \
   &#x20;**Name Generator** – MVEL expression that will populate the “name” field on the correlated data point \
   &#x20;\
   &#x20;![08/31/18 Release Notes: Configuration](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-20_9-28-42.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=cad561f40bf1480c1eec7037d2159af7)
3. Select the **KPIs** that will contain the raw data to correlate. \
   &#x20;\
   &#x20;In this example, there are 3 Siebel crash data types that are collected by Germain. Any data point that matches either of the KPIs will be included by the correlation service as part of this scenario \
   &#x20;![08/31/18 Release Notes: Configuration, image 2](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-20_9-39-28.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=ed05e3d096dc2210b39fc3a6ddfb6cb8)
4. Configure **how** incoming KPIs / raw data are correlated. \
   &#x20;\
   &#x20;**Name** – an identifier to uniquely identify this type \
   &#x20;**Key Expression** – an MVEL expression that will generate a key for this correlation scenario from a raw data point. In this example, the key is comprised of server name and process ID, but other values are possible as well (ex: session ID). Any raw facts that share the same key value will be correlated. \
   &#x20;**Filters** – Specifies filters on the raw data, if any. This makes it possible to assign raw data to a specific correlation type. \
   &#x20;\
   &#x20;In this example of a Siebel Crash, we will only define a single type for this purpose: \
   &#x20;![08/31/18 Release Notes: Configuration, image 3](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-20_9-31-28.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=69d293c904566336ad0e6ee86ac186ab)
5. Example of **Filters** \
   &#x20;![08/31/18 Release Notes: Configuration, image 4](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-21_16-11-49.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=515e5666fc357df294052e0c9bd0ab59)
6. Define which fields to **exclude** from correlation for the “Crash Event” type. Any fields not included on this list will be copied from the raw data to the correlated fact. For example, since system.name is not included in the list, the correlated fact’s system.name will match the raw facts’ system names. \
   &#x20;\
   &#x20;![08/31/18 Release Notes: Configuration, image 5](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-20_9-31-39.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=aa537227981c468a211abb955b95eecf) \
   &#x20;\
   &#x20;Once the correlation scenario has been created, the system will begin processing incoming raw data.
7. In order to visualize the correlated data on a dashboard, **create a new KPI** that matches the **Fact Class** and **Name properties** of the scenario: \
   &#x20;\
   &#x20;![08/31/18 Release Notes: Configuration, image 6](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-20_9-35-5.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=70ecd605dd108058c65e702239532d36)

## Analytics - Data Search

### Description

Search feature is now an enhanced keyword-guided search, closer to what a human being would type while searching for data or insights. This is the third round of enhancements. To support this search mechanism, we have enhanced the back-end caching capability and reached a **14 millisecond**response time to get **5 million** record updated.

### Example of searches

Count users

Count session ID

Volume of rounds played where map is OREGON

Total Amount Spent per player after 2015 January 1st

### Demo/video: [click here](https://youtu.be/8pgbdjbZzlw)

## Analytics - Display Name for KPI & Field

### Description

A KPI and/or field(s) can have a DISPLAY NAME different than the default name. This is useful when you want Germain users to search "business data" or "data they know" instead of requiring these users to learn the "internal data model".

How to configure display names:

Configuration console > KPI > "Display Name" field

![08/31/18 Release Notes: Analytics - Display Name for KPI & Field](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-30_13-37-31.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=6777431a65b60982905a1efe746a66d3)

![08/31/18 Release Notes: Analytics - Display Name for KPI & Field, image 2](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-31_8-49-46.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=1c75d140b2fa83709ab9ed5e37c58d14)

![08/31/18 Release Notes: Analytics - Display Name for KPI & Field, image 3](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-31_8-48-24.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=03bb50b0999344956eb20ccc350e6afa)

## Analytics - Business Process - Monitor BPs that contain more steps than configured

### Description

Business Processes that contain more steps than configured are now supported/monitored by Germain. Available in Germain 8.5 and up.

## Analytics - Monitor & disregard Targeted Clicks

### Description

One of our customers asked us to detect the first click that a user makes on a specific web page and they wanted to record the 1st click that a user makes on any of the documents (pdf, xls, etc) that are available on that page and derive analytics from it.

To complicate things, there is a short / letter menu which lets users navigate to documents starting with a specific letter of the alphabet. If they do so, we are to disregard that click on record only the following click on an actual document / link as before. Example:

* Navigate to page
* Click on "W"
* Click on "Waitlisted Segments" \
  &#x20;This should be recorded as "Click on Waitlisted Segments".

(Available in Germain v8.5 and up)

## Analytics - Exclude Field Value(s) from User Session Replay

### Description

You can exclude any field's value from being displayed during the replay of any user session. Useful when you don't want the Germain user to see sensitive data e.g. personal information, financial information, etc

### Example of how the Session Replay looks when Field Values are excluded

wildcard "\*\*\*\*" are used to show that even though the application user typed/selected value(s), these values are hidden to the Germain user.

## Analytics for Java - garbage collection stats, class & system stats

### Description

Enhancement of our Java monitoring capability, now providing **garbage collection stats**, **class loading stats,** **system load average stats** from JVM

### Root-cause Analysis

![08/31/18 Release Notes: Root-cause Analysis](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-30_13-54-42.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=83860e1e4e36b1b8ee3672e1167b536f)

### Aggregation & drilldown to raw data (new)

![08/31/18 Release Notes: Aggregation & drilldown to raw data (new)](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-30_13-48-33.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=bb1087496a8db20d0759da84d2c1c9cb)

![08/31/18 Release Notes: Aggregation & drilldown to raw data (new), image 2](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-30_13-48-41.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=9cdf43d162ba23b05d25043ab7238bef)

## Analytics for Java/JVM - Doc update for Java code & JVM real-time monitoring/profiling

Document updated:

## Analytics for Siebel CRM (IP17)- User Session Record/Reconstruct/Replay bug fixed

### Description

Fixed a bug that was preventing User Sessions to be **recorded, reconstructed and replayed** of users browsing Oracle Siebel CRM IP17.

### Video/demo showing 3 user session replays for **[Siebel](https://www.youtube.com/watch?v=5OswdM78GFE),[Salesforce.com](https://www.youtube.com/watch?v=MUpx7rWLGSI)** and an [**Wordpress**](https://www.youtube.com/watch?v=ajSsugti7y0\&list=PLCHfGt_Am0tWjswpP0QCY7W_liifColrI) web app.

## Analytics for Siebel CRM - Crash RCA dashboard

### Description

The new Correlation engine is preconfigured to help identify root-cause of a Siebel Crash, the dashboard that present the RCA looks like this:

1. Description of the crash \
   &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-28_15-30-53.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=da5f778d9f15c29185f41bf2a97d2685)
2. **Files and/or Events** (produced by the application crash)

   ![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 2](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-28_15-31-38.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=91a0973fd59e5b057e0f56dc66b59247)
   1. Core root-cause analysis
   2. FDR file root-cause analysis
   3. Enterprise and Object Manager log files root-cause analysis
3. User **Error(s):** \
   &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 3](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-28_15-34-33.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=a9a7c42bc9a4b3125d922932b567194c)
4. **User(s) that lost their session:**

   ![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 4](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-28_15-31-53.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=8eabb41eda852711e61f58bc537f9e71)
5. **Infrastructure** Trend Analysis (Memory, Cpu, Network Usage of the crashed process, etc) \
   &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 5](https://mintcdn.com/germain-ux/pVzDI00ZTP9hWmsT/images/main/08-31-18-release-notes/image2018-8-28_15-33-24.png?fit=max\&auto=format\&n=pVzDI00ZTP9hWmsT\&q=85\&s=811df45948b013cf29474297faa051df)
6. **Recorded video** of the User Scenario (includes mouse moves, clicks, value that used selected on picklists, dropdowns....and data that used typed) \
   &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 6](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-28_15-45-45.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=87edbb6741eef605682538c5797d6b7b)
7. **Browser Transaction** (of the user session that caused the crash): \
   &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 7](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-28_15-34-7.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=811891b2beb60aacc4ce29b87adb4c96)
8. **Server Transaction** (of the user session that caused the crash): \
   &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 8](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-28_15-33-57.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=cb9d92c5ed24d5cb355e0eb1eaea5bdf)
9. **Browser Transaction of all user sessions** (that had a session running within that process) \
   &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 9](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-28_15-33-47.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=cd584a2d314abb6960d3c7d6afae7ef0)
10. **Server Transaction of all user sessions** (that had a session running within that process) \
    &#x20;![08/31/18 Release Notes: Analytics for Siebel CRM - Crash RCA dashboard, image 10](https://mintcdn.com/germain-ux/1qQfFdbNhyEDbpuY/images/main/08-31-18-release-notes/image2018-8-28_15-33-36.png?fit=max\&auto=format\&n=1qQfFdbNhyEDbpuY\&q=85\&s=da246daa4bcc8cc148b22091485146a2)

## Analytics for Siebel CRM - Be alerted when S\_EVT\_REQ exceeds N rows and view the rows

Germain can be configured to send an email when a specific/configurable threshold, set against an external database table, is met (e.g. in this example, sends email alert when S\_EVT\_REQ exceeds 2500 rows) and you can also add a portlet to visualize the database records that triggered that Alert (e.g. the 2500 records in S\_EVT\_REQ). These aren't new features, but just something a client asked us to configure.

### Configure: click here

Example:

## Configuration - Dynamic DB Table creation

### Description

Allows you to create **your own custom Database Table** within Germain data model, without having to deploy a new release of Germain. These Tables can be used to store data which does not fit the out-of-the-box data model. Some customers have used this mechanism to integrate Germain with other database and store data into Germain datamart.

How to create a new custom database table:

1. Open the Germain **config console** and navigate to **germain.apm.monitoringConfig.systemConfig.datamart.dynamicTypes**
2. Add new **dynamic type**
   1. name: we’ll chose “CustomFact” as a name for this example
   2. parentClass: For most use cases, parentClass should be set to “com.germainsoftware.apm.data.model.Fact”.
   3. tableName: name of the table you wish to create (in the below example, we created a table called "TEST\_FACT") \
      &#x20;\
      &#x20;Once done, click on “Create”: \
      &#x20;![08/31/18 Release Notes: Configuration - Dynamic DB Table creation](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/dynamic-database-table-creation/image2018-8-21_16-21-18.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=d2b9eb45d5afb78c11726936ff98b205)
3. Next, define the **fields** that should be available on your new model class. By default, all model types have the following properties:
   1. **id** (Unique identifier)
   2. **timestamp** (Date/Time associated with the data)
   3. **type** (Type identifier which ties the data to a KPI) \
      &#x20;\
      &#x20;You do not need to define these above properties.
   4. A few examples of custom fields:
      1. If you want to store a **single string value**, for example a session ID, you can use the following field configuration: \
         &#x20;![08/31/18 Release Notes: Configuration - Dynamic DB Table creation, image 2](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/dynamic-database-table-creation/image2018-8-16_14-42-8.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=4b3e7fce14afdb3d795bb1cef64ba434)
      2. If you want to store a **numeric value**, for example the duration of a transaction, you can use the following field configuration: \
         &#x20;![08/31/18 Release Notes: Configuration - Dynamic DB Table creation, image 3](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/dynamic-database-table-creation/image2018-8-16_14-42-26.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=ec591fea819337ef56485ac65981d129)
      3. If you want to store **system information** on the custom fact, you can use the existing system dimension data type: \
         &#x20;![08/31/18 Release Notes: Configuration - Dynamic DB Table creation, image 4](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/dynamic-database-table-creation/image2018-8-16_14-42-49.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=463cd0aedbeeb22efb6816eeff6df59d) \
         &#x20;\
         &#x20;There are **other pre-defined dimensions** available that cover many common use cases. Out-of-the-box, Germain contains dimensions to store the information like: user, user agent (browser), database, application, location, HTTP referrer, etc.
4. Once you have defined the custom fields on your model, you must choose which of these should be included for **aggregation.** Any fields that are not included will only be available as long as there is raw data. Once the raw data has been purged, only aggregated fields will remain. To configure the aggregated fields, navigate back to the custom type and click on the aggregateFields collection. Then add any field names that you want to include – as before, you do not need to specify the build-in fields id, type, and timestamp. \
   &#x20;![08/31/18 Release Notes: Configuration - Dynamic DB Table creation, image 5](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/dynamic-database-table-creation/image2018-8-16_14-43-14.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=a43ef586724a9ae3f2b55f19d2346a3d)
5. At this point your model is complete. In order to make the Germain system aware of the new model, a restart of the Germain services is necessary.
6. Once the services have been restarted, you can now retrieve the schema for your database implementation by navigating to the following URL on your browser: \
   &#x20;[https://\<path](https://docs.germainux.com/main/dynamic-database-table-creation.md) to your Germain>/query/schema/\<database flavor>/\<type name> \
   &#x20;\
   &#x20;For example, to get the schema for a type named “CustomFact” on Oracle, use the following URL: \
   &#x20;[https://\<path](https://docs.germainux.com/main/dynamic-database-table-creation.md) to your Germain>/query/schema/ORACLE/CustomFact \
   &#x20;![08/31/18 Release Notes: Configuration - Dynamic DB Table creation, image 6](https://mintcdn.com/germain-ux/8KX3c-GSSWR99tdN/images/main/dynamic-database-table-creation/image2018-8-16_14-43-28.png?fit=max\&auto=format\&n=8KX3c-GSSWR99tdN\&q=85\&s=d7bd12483b2e0dc6d05264d34d8238c0) \
   &#x20;\
   &#x20;Once you create the tables in your datamart schema, you are ready to reference the new model type in monitoring rules and KPIs.

Important reminder: indexes (and other tuning options) aren't automatically generated to new custom database table. please have your DBA implement them to ensure optimal performance.

## Configuration - Dynamic Type creation

### Description

We/you can now dynamically create new data "Type" for raw data.

### Benefit of having data types/model classes

* improved performance over storing different types of data in a single table and
* being able to have fact types with lots of different properties.

### Use Case

e.g. One of our customers uses Germain to find insights within its **Teradata** datamart. That Teradata datamart has a significant number of types of raw data that needs to be stored into Germain datamart, for further analysis, which is now possible with this new enhancement.

## Configuration - External Table content in an Email alert or Portlet

### Description

Here is how you can include the content/row(s) of an external Table (table that isnt in Germain database) into a Germain email alert (or alternatively on a portlet): click here

## Maintenance - 3-5% performance degradation for IE user when User Replay enabled

### Description

Two of our clients reported that users were experiencing performance degradation of their web application whenever they were accessing their application with **Microsoft Internet Explorer** and Germain's **User Session Replay** was enabled. We have implemented a number of optimization bringing down the degradation to 3-5%.

## Maintenance - \~30% Insert throughput improvement

### Description

Increased by 30% our DB throughput to individual Germain database tables by expanding parallelism for data insert.

### Examples

* One of our client has increased from 1,500 to 2,000 database insert per second (using a **low-end** hardware and **Oracle** database) => **\~170 Million db inserts per day**
* At another client we reached **40,000 database insert per second** at another client using **MemSQL** in-memory database as datastore for Germain => **\~3.5 billion db inserts per day**

## Maintenance - Clustered deployment of germain APM

Full support for clustered deployment of Germain

(available in Germain 8.5 and up)

## Competitive analysis - Oracle UPT vs germain APM and germain CRT

We have been asked a number of times over the past months, to compare germain Germain and germain CRT to Oracle Siebel UPT. We have used UPT in the past and again refreshed our knowledge this past month using their latest version. Here is our take on it but in the end, please try them out and you will see the differences by yourself.

| COMPETITIVE ANALYSIS FOR SIEBEL CRM CUSTOMERS | Oracle UPT | germain CRT | germain Germain |
| - | - | - | - |
| tool for developer | yes | yes | yes |
| tool for administrator, ux, user support, bi team | no | no | yes |
| User Experience realtime monitoring  (behavior, flow/scenario, mouse clicks and moves, data typing and selecting) | no | no | yes |
| Business Process monitoring & insights | no | no | yes |
| Infrastructure monitoring & insights (n/w, hardware, software) | no | no | yes |
| Application monitoring & insights (down to code) | no | no | yes |
| Automation framework | no | no | yes |
| Predictive Analytics | no | no | some |
| Monitor how often users use a siebel application, an applet, or business component | yes | no | yes |
| Helps change application configuration and features | yes | yes | yes |
| Helps simplify the user interface | no | no | yes |
| Facilitate siebel developer training | some | yes | no |
| Facilitate siebel user training | no | no | yes |
| Gather details about the actions that lead to error conditions | no | yes | yes |
| Monitor feature usage after application upgrades or during development cycles | yes | no | yes |
| Monitor feature performance after application upgrades or during development cycles | no | yes | yes |
| Help evaluate the usefulness of upgrades or new development and to optimize test cycles | no | yes | yes |
| Siebel Event Handlers call count | yes | no | yes |
| Siebel Method call count | yes | no | yes |
| Siebel eScript  automatic review | no | yes | no |
| Siebel eScript issue impact analysis | no | yes | no |
| Siebel eScript tuning recommendation | no | yes | no |
| Siebel Repository Object automatic review | no | yes | no |
| Siebel Repository Object issue impact analysis | no | yes | no |
| Siebel Repository Object tuning recommendation | no | yes | no |
| Siebel DB Index automatic review | no | yes | no |
| Siebel DB Index issue impact analysis | no | yes | no |
| Siebel DB Index tuning recommendation | no | yes | no |

## Get Help

> **[Contact GermainUX Support](https://docs.germainux.com/main/support.md)**
>
> The Germain Team can help you set this up.

> **Can't find what you need?**
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.