Comments have been closed on this page. Please use AppMon & UEM Open Q & A forum for questions about this plugin.

Available groups of problem patterns

Group - CPU

  • CPULoad
  • CPULoadExternalProcess
  • CPULoadJourneyService

Group - Database

  • DBSpamming
  • DBSpammingAuth
  • DBSpammingAuthWithAppDeployment
  • DatabaseAccessExceedPoolNonThreaded
  • DatabaseAccessExceedPoolThreaded
  • DatabaseAccessFromFrontend
  • DatabaseAccessFromFrontendHeavy
  • DatabaseAccessPoolContention
  • DatabaseAccessPoolContentionSync
  • DatabaseCleanup
  • DatabaseReducePoolSize
  • DatabaseSlowdown
  • DisableHibernateCache
  • FetchSizeTooSmall
  • FindJourneysSqlServerQueryOverride
  • JourneyUpdateFast
  • JourneyUpdateSlow
  • RandomSQLStatements
  • UseLocationCache

Group - Exception

  • ExceptionSpamming
  • LoginProblems

Group - Http Errors

  • BookingErrorAsHttp500
  • CreditCardCheckError500
  • EnableCaching
  • HTTPErrorForBlogAds
  • JourneySearchError404
  • JourneySearchError500
  • MissingServletError404
  • TravellersOptionBox
  • WSMQNativeApplicationError

Group - Http Redirect

  • HttpRedirect

Group - Integration

  • DCRUMEmulationPlugin

Group - Internal

  • Host Emulation
  • LoadChange
  • NetworkPacketDrop
  • PHPEnablementPlugin
  • Print
  • ScaleMicroJourneyService

Group - Javascript

  • FailedImagesDetection
  • FailedXHRs
  • JavascriptAppVersionSpecificError
  • JavascriptBootstrapAgent
  • JavascriptChangeDetectionWithError
  • JavascriptChangeDetectionWithSlowBrowser
  • JavascriptErrorOnLabelClick
  • JavascriptFrameworkDetection
  • JavascriptFrameworkDetectionUpdate
  • JavascriptIncreasedErrorCount
  • JavascriptTagging
  • JavascriptUserActionError
  • WorldMapDNSFailsAsia
  • WorldMapDNSFailsEurope
  • WorldMapDNSFailsUnitedStates

Group - Memory

  • CassandraMemoryCache
  • GarbageCollectionEvery10Seconds
  • HazelcastMemoryCache
  • LargeMemoryLeak
  • MediumMemoryLeak
  • SimpleMemoryCache
  • SmallMemoryLeak

Group - Messaging/Remoting

  • HotDealClientJMS
  • HotDealClientRMI
  • HotDealServerJMS
  • HotDealServerRMI

Group - Mobile App

  • MobileCrashesPeak
  • MobileErrors
  • SlowTransactionForPHPBlog
  • TabletCrashes

Group - Native Application

  • CTGNativeApplication
  • DummyNativeApplication
  • IMSNativeApplication
  • NamedPipeNativeApplication
  • SocketNativeApplication
  • StarvingDummyNativeApplication
  • WSMQNativeApplication

Group - PaymentService

  • DotNetPaymentService
  • DummyPaymentService
  • SlowIoDummyPaymentService

Group - Problems

  • CaptureBookingID
  • CrashCouchDB
  • DeadlockInFrontend
  • DeadlockInFrontendJavaConcurrent
  • InfiniteLoopInFrontend

Group - Slowdown

  • SlowAuthentication
  • SlowImages
  • SlowUserLogin

Group - Synchronization

  • BadCacheSynchronization

Group - Tomcat

  • WebApplicationDeployment

Group - UI related plugin

  • AngularJSGalleryApplication
  • CouchDB
  • DummyPagePlugin
  • ErrorInFlashContent
  • FlashBanner
  • HiddenIframeAmazonTracking
  • JQueryEffectsOptimized
  • JQueryEffectsStandard
  • MagentoShop
  • NodeJSWeatherApplication
  • PluginAgentBB
  • PluginAgentCF
  • PrintClusterNode
  • SlowPageActionInFlash
  • StreamingMediaTraffic
  • StreamingVideo
  • ThirdPartyAdvertisements
  • ThirdPartyContent
  • ThirdPartyIncludeSocialMedia
  • ThirdPartyJQueryEffectsCloudflare
  • ThirdPartySlowAdvertisements
  • ThirdPartyWebAnalyticsTool
  • ThirdPartyWebFontGoogle
  • UnhealthyThirdPartyService-CDN-01-Healthy
  • UnhealthyThirdPartyService-CDN-02-Unhealthy-LimitedAvailability
  • UnhealthyThirdPartyService-CDN-03-Unhealthy-Outage
  • UnhealthyThirdPartyService-SocialMedia-01-Healthy
  • UnhealthyThirdPartyService-SocialMedia-02-Unhealthy-LimitedAvailability
  • UnhealthyThirdPartyService-SocialMedia-03-Unhealthy-Outage
  • WPOPagePlugin

Group - Webserver

  • SlowApacheWebserver

Plugins available in Launcher and for inclusion in Scenario XML

Pattern

Description

State (see below)

Suitable for APM/dynaTrace

Dependency (i.e. required DB type)

AngularJSGalleryApplication

This plugin enables links on the main page to the Image Gallery AngularJS application.

   

BadCacheSynchronization

Activating this plugin causes synchronization problems in the customer frontend and uses a lot of CPU by doing an inefficient cache lookup. Activating this plugin should show a class 'CacheLookup' as doing lots of synchronization.

   

BookingErrorAsHttp500

Throws a HTTP 500 Server Error if the payment validation or booking yield an unexpected error, e.g. if the credit card or payment service plugin are unavailable. Usually you will combine this problem pattern with others, e.g. by disabling all 'NativeApplication' problem patterns.

   

CPULoad

Causes high CPU usage in the business backend process to provoke an unhealthy host health state. The additional CPU time is triggered in 8 separate threads independent of any searching/booking activity.

   

CPULoadExternalProcess

Causes high CPU usage in a separate process to provoke an unhealthy host health state. The additional load is being triggered in multiple threads based on the number of cores of the CPU on the current machine so that only a bit of CPU time is left. The load is triggered by an external application - not the procedure executing this plugin.

   

CPULoadJourneyService

This plugin causes additional high CPU usage when searching for a journey. It is executed a number of times, regardless whether the requested journey is found or not.

   

CTGNativeApplication

Dispatches the credit card verification into CICS using the CICS Transaction Gateway (CTG). This requires manual setup of the corresponding resources on the CICS side.

 

dynaTrace

 

CaptureBookingID

If enabled the Business Transaction "easyTravel BookingIDs" creates a dynamic Measure for each booking. This Business Transaction causes a Measure Explosion. Set system property com.dynatrace.diagnostics.server.OverruleMaxSplittingsBTs for dynaTrace Server to e.g. "easyTravel:easyTravel BookingIDs=50" to limit the number of splittings to 50.

   

CassandraMemoryCache

Uses the Cassandra distributed memory cache functionality for building a distributed cache of journeys and locations which avoids costly calls to the backend/database. Note: Install and run Cassandra Server first (see devwiki)

(warning)

  

CouchDB

This plugin forces the use of images loaded from an instance of CouchDB running on a specified server.

   

CrashCouchDB

The plugin will crash the CouchDB Erlang process in such a way as to be observed by Windows Error Reporting. Windows will then display a crash pop-up dialog box. To disable the pop-up, re-configure the Windows Error Reporting settings.

   

CreditCardCheckError500

Simulates an exception while communicating with the native application. This is triggered when the credit card is validated as part of booking a journey in the customer web frontend.

   

DBSpamming

Plugin which causes unnecessary DB access in business backend when a booking of a journey is stored. It also reduces the number of cached entries in the hibernate cache in order to increase the number of DB Statements. Note: This Problem Pattern will require more memory than is usually available for the Business Backend process, add the following to your scenario or increase memory for Business Backend in the properties to at least 368m:. Also a lot of CPU is used here, on slower/less powerful machines this might use up a considerable amount of CPU time!

 

dynaTrace

 

DBSpammingAuth

Plugin which causes unnecessary DB access in business backend when user is authenticated. It also reduces the number of cached entries in the hibernate cache in order to increase the number of DB Statements.

   

DBSpammingAuthWithAppDeployment

Plugin causes two things: simulates upgrade of the web application (by deploying a new easyTravelMonitor.war file on business backend) and enables database spamming when user is authenticated. Database spamming is started aproximately after 1 minute after deployment. It also reduces the number of cached entries in the hibernate cache in order to increase the number of DB Statements.

   

DCRUMEmulationPlugin

This plugin generates data like an DC-RUM appliance. You can use it to show how dynaTrace leverages the capabilities of DC-RUM. Be aware that some load must be activated via the slider in the easyTravel Configuration UI to get emulated data.

 

dynaTrace

 

DatabaseAccessExceedPoolNonThreaded

On the Business Backend application, while storing a Booking execute some SQL queries in multiple connections to see high usage of the connection pool.

  

jpa

DatabaseAccessExceedPoolThreaded

On the Business Backend application, while storing a Booking execute some SQL queries in multiple threads for some time to create heavy load on the connection pool/database.

  

jpa

DatabaseAccessFromFrontend

Causes an 'architecture problem' by causing the customer frontend application to directly perform SQL queries against the database whenever a search is done, which 'by design' only the business backend application should do. Also uses a non-connection pool connection which is displayed differently in the Database Dashlet. Look for class 'QueryLocations' in the PurePath.

  

jpa

DatabaseAccessFromFrontendHeavy

Causes an 'architecture problem' by causing the customer frontend application to directly perform SQL queries against the database whenever a search is done, which 'by design' only the business backend application should do. Also uses a non-connection pool connection which is displayed differently in the Database Dashlet. Look for class 'QueryLocations' in the PurePath. Note: This plugin puts a heavy load on CPU as well, not suited for live demos!

   

DatabaseAccessPoolContention

On the Business Backend application, while searching Locations, executes a stored procedure that contends a db-pool for a few secondes. The effect in dynaTrace will be that you see high database calls of a stored procedure which allows to show database related use cases. The database call will be done asyncronously and will show a database time of 2 seconds.

  

jpa

DatabaseAccessPoolContentionSync

On the Business Backend application, while searching Locations, executes a stored procedure that contends a db-pool for a few secondes. The effect in dynaTrace will be that you see high database calls of a stored procedure which allows to show database related use cases. This will do the call syncronously as part of the transaction and will cause a database delay of 500 milliseconds.

  

jpa

DatabaseCleanup

Cleans out items where we continuously accumulate data in the Database, e.g. Booking and LoginHistory and keeps the last 5000 to avoid filling up the database over time. This is done every 5 minutes at the point where a Journey is searched. Usually this plugin is enabled by default, if you disable it, the databasde will fill up over time, especially if traffic is generated automatically.

   

DatabaseReducePoolSize

Reduces the pool size of the Database Connection Pool to only 3 connections. In combination with other database-related problem patterns, this shows situations where there are much too less connections available and thus many threads are waiting for the database.

  

jpa

DatabaseSlowdown

Plugin which causes queries on locations to take longer. To enable it set config.enableDBSlowdown property to true.

   

DeadlockInFrontend

Causes a deadlock in the customer frontend application when the user clicks on the promotion picture in the customer frontend. You can then use dynaTrace thread dump functionality to quickly find the cause of the deadlock.

   

DeadlockInFrontendJavaConcurrent

Triggers a deadlock in the customer frontend application when the user clicks on the promotion picture in the customer frontend. Uses classes from the java.util.concurrent package introduced in Java 1.5.

   

DisableHibernateCache

Disables the hibernate query cache for all database queries, this will increase the number of database statements as we do not cache data any more in the persistence layer.

  

jpa

DotNetPaymentService

If enabled, the .NET Payment Backend is called when a booking is made. This plugin is enabled if .NET is available and disabled on installations where .NET is not availalbe, e.g. Unix. Usually this plugin is configured via the bootplugins in the properties.

   

DummyNativeApplication

Simulates the 'validation' of the entered credit card number when a booking is stored but does not actually call the native (C++) application. Any string consisting of only digits will match. Use this plugin if you don't have the C++ application available. Remember to disable the plugin 'NamedPipeNativeApplication' as well in this case.

   

DummyPagePlugin

Sample plugin to show what functionality plugins can extend on the customer frontend web page. It adds some elements to the main page which act a showcase what elements UI-plugins can add/adjust.

 

dynaTrace

 

DummyPaymentService

Always returns 'payment accepted' instead of calling the .NET Payment Backend. Use this plugin if you don't have the .NET applications available, e.g. on Unix. Remember to also disable the 'dotNetPaymentService' plugin if you are using this plugin.

   

EnableCaching

This Plugin enables browser-side caching of resources of type HTML, JS, CSS and PNG. Note: To disable the plugin properly you have to clear the cache of your browser.

 

dynaTrace

 

ErrorInFlashContent

Plugin to include a flash banner that produces an error every few page requestse. This plugin helps demonstrating dynaTrace's capabilities to track flash content using the JavaScript ADK. Remember to disable the 'Flash Banner' and 'Slow page action in Flash' plugins if this plugin is enabled.

 

dynaTrace

 

ExceptionSpamming

Plugin which causes heavy exception spamming on several locations.

 

dynaTrace

 

FailedImagesDetection

When activating this pattern the user can force the generation of failed images. The failed images are shown in the waterafall view.

   

FailedXHRs

When activating this pattern the user can force the generation of xhr failures.

   

FetchSizeTooSmall

This plugin sets the fetchsize of the Hibernate persistence layer to 1 when executing database queries. This will cause inefficient select statements to show up on databases where otherwise Hibernate is optimizing fetches into bulks.

   

FindJourneysSqlServerQueryOverride

This plugin uses a very expensive stored procedure (sp_findJourneys) to fetch journeys. The procedure has to be created manually before the plugin can be used. The SQL source file (sp_findJourneys.sql) is located in the plugin's JAR file root. Note: This is usually only available when running easyTravel against SQL Server.

   

FlashBanner

Plugin to include a flash banner. This plugin demonstrates dynaTrace's capabilities to track flash content using the JavaScript ADK. Remember to disable the 'Error in Flash Content' and 'Slow page action in Flash' plugins if this plugin is enabled.

 

dynaTrace

 

GarbageCollectionEvery10Seconds

Causes a manual full garbage collection on the Business Backend process when searching for journeys. The GC is triggered every 10 seconds.

   

HTTPErrorForBlogAds

Enable 'HTTP error 500' for ads (curl) on wordpress-blog site

   

HazelcastMemoryCache

Uses the Hazelcast distributed memory cache functionality for building a distributed cache of journeys and locations which avoids costly calls to the backend/database. This plugin can be used to show how dynaTrace visualizes such a distributed caching functionality.

(warning)

  

HiddenIframeAmazonTracking

A plugin which adds a hidden iframe which loads some Amazon page that allows to count clicks on the homepage. Loading the iframe is done in the background via Javascript so that the page loads as usual and the user does not notice the access, take a look how dynaTrace displays this access.

   

Host Emulation

The plugin simulates a large number of host agents. The plugin may require a large amount of memory and should be used only for development purposes.

   

HotDealClientJMS

This plugin requests hot deals by using JMS. It displays four hot deals on the search page. ATTENTION: In order to work both the HotDealServerJMS plugin and the HotDealClientJMS plugin must be activated. It is a good practice to activate the HotDealServerJMS plugin first.

   

HotDealClientRMI

This plugin requests hot deals by using RMI. It displays four hot deals on the search page. ATTENTION: In order to work both the HotDealServerRMI plugin and the HotDealClientRMI plugin must be activated. It is a good practice to activate the HotDealServerRMI plugin first.

   

HotDealServerJMS

This plugin provides hot deals by using JMS. The HotDealClientJMS plugin requests these deals and displays them on the search page. ATTENTION: In order to work both the HotDealServerJMS plugin and the HotDealClientJMS plugin must be activated.

   

HotDealServerRMI

This plugin provides hot deals by using RMI. The HotDealClientRMI plugin requests these deals and displays them on the search page. ATTENTION: In order to work both the HotDealServerRMI plugin and the HotDealClientRMI plugin must be activated.

   

HttpRedirect

Adds a link to the footer of the main page of the customer frontend application which tries to provide a very simple faked 'hot deals' widget, but fails and redirects to an error page.

   

IMSNativeApplication

Dispatches the credit card verification into IMS instead of using the native ADK implementation.

 

dynaTrace

 

InfiniteLoopInFrontend

Causes an infinite loop in the frontend when searching trips with a from date past the to date.

   

JQueryEffectsOptimized

This plugin modifies the effects in the navigation bar of easyTravel. To do so the plugin loads only the essential and compressed jQuery files.

 

dynaTrace

 

JQueryEffectsStandard

This plugin modifies the effects in the navigation bar of easyTravel. This plugin loads uncompressed jQuery files. It also causes the loading of superfluous jQuery files.

 

dynaTrace

 

JavascriptAppVersionSpecificError

This pattern generates javascript errors that are specific to an application version. Every browser visit with the application version of 1.3 or 1.4 is reporting an error when clicking on the login button! Version 1.7 and 1.8 also generate an error here but this one is different.

 

dynaTrace

 

JavascriptBootstrapAgent

Injects the javascript bootstrap agent (<) or initialization code (> 6.5) into the customer frontend. Disable automatic injection for system profile!

   

JavascriptChangeDetectionWithError

DO NOT SHUTDOWN WITHOUT DEACTIVATING - FILE STATE PERSISTS! Activating this plugin causes changedetectionlib.js being changed by placing an erroneous piece of JavaScript code in it. UEMLoad and real request will produce a JavaScript-Syntax error. The OS-Agent sends a message to the server which is shown in the HostsDetail view. There exists no incident at the moment which informs the user about the possible connection of increasing JavaScript-Errors and the monitored ChangeDetection. ATTENTION: when performing a demo and you want to show the updated file within the browser tools, you have to run easyTravel with admin permissions. The .js file will only be updated with proper rights.

 

APM

 

JavascriptChangeDetectionWithSlowBrowser

DO NOT SHUTDOWN WITHOUT DEACTIVATING - FILE STATE PERSISTS! Activating this plugin causes changedetectionlib.js being changed by placing JavaScript code in it which performs bad on Internet Explorer. The OS-Agent sends a message to the server which is shown in the HostsDetail view. There exists no incident at the moment which informs the user about the possible connection of increasing JavaScript-Errors and the monitored ChangeDetection. ATTENTION: when performing a demo and you want to show the updated file within the browser tools, you have to run easyTravel with admin permissions. The .js file will only be updated with proper rights.

 

APM

 

JavascriptErrorOnLabelClick

When activating this pattern the user can force the generation of a JavaScript error on orange.jsf by clicking on one of the labels of the journey search box.

   

JavascriptFrameworkDetection

Adds an additional framework (Angular JS) to the list of detected frameworks

 

APM

 

JavascriptFrameworkDetectionUpdate

Updates the angular js framework that is added by JavascriptFrameworkDetection problem pattern to a newer version (1.4.4). Requires the JavascriptFrameworkDetection to be enabled.

 

APM

 

JavascriptIncreasedErrorCount

This pattern increases the likelyhood that a page load produces a JavaScript error from 4% to approximately 10%. The execution of the pattern will lead to a base line violation.

   

JavascriptTagging

Uses the JavaScript API instead of the BT-Tagging to tag a visit.

   

JavascriptUserActionError

When activating this pattern will add additional generated user actions to the contact page during UemLoad. The action ending with 'Error Button' (Error 1) is always added whereas the actions ending with 'Error Label' (Error 2) and 'Error Mouseover' (Error 3) are appended on approximately every 5th request. Error 1 adds automatically generated errors on every 10th , Error 2 on every 5th request - depending if Error 2 has been added to the page on base of the previously mentioned probability. The amount of generated errors can be between 1 and 3 and is determined randomly. If Error 3 is added to the page it is always causing an inline javascript error with a random line number.

   

JourneySearchError404

Causes an HTTP 404 error code by returning an image name that does not exist when searching for journeys in the customer frontend web application.

   

JourneySearchError500

Throws an HTTP 500 server error if the journey search parameters are invalid, e.g. toDate is before fromDate

   

JourneyUpdateFast

This plugin updates the amount of journeys using batch updates. This allows to show the effect of using JDBC batch updating, which is usually faster than non-batched mode.

  

jpa

JourneyUpdateSlow

This plugin updates the amount of journeys one after another. This shows the effect of using non-batched JDBC, which is usually much slower.

  

jpa

LargeMemoryLeak

Causes a large memory leak in the business backend when locations are queried for auto-completion in the search text box in the customer frontend. Note: This will quickly lead to a non-functional Java backend application because of out-of-memory errors.

   

LoadChange

This plugin changes the load. New load is defined by config.baseLoadIncreased configuration value.

   

LoginProblems

Simulates an execption when a login is performed in the customer frontend application.

   

MagentoShop

This plugin enables links on the main page to the Magento demo shop - Madison Island.

   

MediumMemoryLeak

Causes a medium sized memory leak in the business backend when locations are queried for auto-completion in the search text box in the customer frontend. This leak is large enough to show growing memory in the timeframe of aprox. 30 minutes and should lead to an OOM in under one hour when you are using the default traffic setting in easyTravel.

   

MissingServletError404

Adds a link called 'Package Tours' to the header of the main page of the customer frontend application which will lead to a HTTP Error 404 if clicked. Remember to refresh the web page after enabling this pattern.

   

MobileCrashesPeak

Mobile crahes peak.

   

MobileErrors

Journey searches and bookings from mobile devices create errors. (no errors created for Tablets)

   

NamedPipeNativeApplication

Sends the entered credit card number for 'validation' to the native application via named pipes interprocess communication. This is usually enabled by default. Disable this and enable the 'DummyNativeApplication' if you would like to run without the native application.

   

NetworkPacketDrop

Plugin will cause network problems by dropping packets directed as a response from Customer Frontend to Apache Web Server. Plugin will work when Apache Web Servier is running on the Linux host only

   

NodeJSWeatherApplication

This plugin includes the current weather of the destination into the results page and the weather forecast for the trip duration into the trip details page.

   

PHPEnablementPlugin

Used to indicate in the Customer Frontend if PHP/Rating support should be used.

   

PluginAgentBB

This plugin is used to demonstrate plugin agents. It generates traffic from Business Backend to an external process on a Vagrant box. Note: the Vagrant box must be configured manually

 

APM

 

PluginAgentCF

This plugin is used to demonstrate plugin agents. It generates traffic from Customer Frontend to an external process on a Vagrant box. Note: the Vagrant box must be configured manually

 

APM

 

Print

Sample plugin which just prints out the plugin location that is visited.

 

dynaTrace

 

PrintClusterNode

Shows the actual port of the instance which received the page request in the footer area of the customer frontend when multiple frontend applications are handling requests via a load balancing server, e.g. via the Apache procedure in some scenarios.

   

RandomSQLStatements

Causes two 'architecture problems' by causing the customer frontend application to directly perform ever-changing SQL queries against the database whenever a search is done, 'by design' only the business backend application should do SQLs and prepared statements should be used for performing SQLs with bind-variables. Also uses a non-connection pool connection which is displayed differently in the Database Dashlet. Look for class 'QueryLocations' in the PurePath. NOTE: This will currently make Customer Frontend go out of memory quickly because of of how hibernate caching is configured!

  

jpa

ScaleMicroJourneyService

Plugin increases number of microservice instances. It would not work by default as it requires Mesos and Marathon to be properly configured and to contain required applications.

 

APM

 

SimpleMemoryCache

Uses a simple memory cache to keep results of searches for Locations and Journeys in the Customer Frontend application, this can be used to show much less webservice/database calls when enabled and can simulate a performance improvement that is implemented in a new version.

   

SlowApacheWebserver

Slows down Apache Webserver.

   

SlowAuthentication

Performs an inefficient calculation of total revenues for a user on login. Monica and Hainer (who is not used by UEMLoad) have a large login / booking history and will experience noticeable lags when trying to login. The Dashlets will show a huge amount of Database access with calls to the database procedure 'verify_location' on top.

  

jpa

SlowImages

Simulates a slow loading process of the image elements of the customer frontend.

 

dynaTrace

 

SlowIoDummyPaymentService

Simulates a remote payment service that takes a long time to respond, causing long socket I/O wait times. Please disable all other payment service plugins.

   

SlowPageActionInFlash

Plugin to include a flash banner that causes a significant delay to the loading of the page. This plugin helps demonstrating dynaTrace's capabilities to track flash content using the JavaScript ADK. Remember to disable the 'Error in Flash Content' and 'Flash Banner' plugins if this plugin is enabled.

 

dynaTrace

 

SlowTransactionForPHPBlog

Enable Slow Transactions from Java to PHP. Transactions are slow beacause of DB spamming.

   

SlowUserLogin

Simulates a general problem with user logins. When this plugin is enabled, all users will experience login time of over 10 seconds. The Method Hotspots Dashlet will show that we have to wait very long for external data to come in.

   

SmallMemoryLeak

Causes a small memory leak in the business backend when locations are queried for auto-completion in the search text box in the customer frontend.

   

SocketNativeApplication

Sends the entered credit card number for 'validation' to the native application via socket interprocess communication. This is usually enabled by default. Disable this and enable the 'DummyNativeApplication' if you would like to run without the native application.

   

StarvingDummyNativeApplication

Simulates a legacy credit card validator that can only be accessed single-threaded and takes a long time, starving concurrent callers. Any string consisting of ten digits will match. Please disable all other native application plugins.

   

StreamingMediaTraffic

Simulates playback of streaming media by the visitors. Approximately every 3rd signal will be extended with streaming media information. The 'Streaming' Javscript Pack of the JavaScript agent must be enabled for any traffic to be generated!

 

dynaTrace

 

StreamingVideo

Plugin to include a video using HTML5 Media Tags on the home page of easyTravel.

 

dynaTrace

 

TabletCrashes

Journey bookings from mobile tablet devices crash.

   

ThirdPartyAdvertisements

Plugin to include third party advertisements banner loaded from a third party server. The ad banner is loaded from easyTravel's Third Party Content Server. This plugin conflicts with plugin ThirdPartySlowAdvertisements. If all are enabled the loaded third party banner is determined by the plugin last executed.

   

ThirdPartyContent

Plugin to include third party social media links for facebook, twitter and google+. This plugin helps demonstrating dynaTrace's capabilities to monitor third party content.

   

ThirdPartyIncludeSocialMedia

Shows additional UI elements which use Javascript functionality provided by Facebook and Twitter in the frontends. Note: This requires a working internet connection and will cause problems with web testing frameworks like Selenium and Canoo Webtest.

   

ThirdPartyJQueryEffectsCloudflare

This plugin forces the use of a remote instance of JQuery: cdnjs.cloudflare.com.

   

ThirdPartySlowAdvertisements

Enable this plugin to include third party advertisements banner loading from a slow third party server (easyTravel's Third Party Content Server). This plugin conflicts with plugin ThirdPartyAdvertisements. If all are enabled the loaded third party banner is determined by the plugin last executed.

   

ThirdPartyWebAnalyticsTool

Plugin to include a web analytics tool(statcounter) on every page

   

ThirdPartyWebFontGoogle

This plugin forces the use of a font loaded from the Web (Google): The header for the 'Your Journey' box should be displayed using the Pacifico handwriting font.

   

TravellersOptionBox

Causes an 'ArrayIndexOutOfBoundsException' wrapped in an 'InvalidTravellerCostItemException' if in the review-step of the booking flow in the customer frontend, the last option '2 adults+2 kids' is selected in the combo-box for 'travellers'.

   

UnhealthyThirdPartyService-CDN-01-Healthy

Plugin to include third party content from a CDN (easyTravel's Third Party Content Server). PLEASE NOTE: This plugin has to be used mutually exclusive with both 'UnhealthyThirdPartyService-CDN-02-Unhealthy-LimitedAvailability' and 'UnhealthyThirdPartyService-CDN-03-Unhealthy-Outage'.

 

dynaTrace

 

UnhealthyThirdPartyService-CDN-02-Unhealthy-LimitedAvailability

Plugin to include third party content from a CDN (easyTravel's Third Party Content Server). There is a limitation of the CDN simulated when accessing the resources and therefore the resources get delievered with a delay. PLEASE NOTE: This plugin has to be used mutually exclusive with both 'UnhealthyThirdPartyService-CDN-01-Healthy' and 'UnhealthyThirdPartyService-CDN-03-Unhealthy-Outage'.

 

dynaTrace

 

UnhealthyThirdPartyService-CDN-03-Unhealthy-Outage

Plugin to include third party content from a CDN (easyTravel's Third Party Content Server). There is an outage of the CDN simulated when accessing the resources and therefore the resources do not get delievered at all. PLEASE NOTE: This plugin has to be used mutually exclusive with both 'UnhealthyThirdPartyService-CDN-01-Healthy' and 'UnhealthyThirdPartyService-CDN-02-Unhealthy-LimitedAvailability'.

 

dynaTrace

 

UnhealthyThirdPartyService-SocialMedia-01-Healthy

Plugin to include third party content from a Social Media Provider (easyTravel's Third Party Content Server). PLEASE NOTE: This plugin has to be used mutually exclusive with both 'UnhealthyThirdPartyService-SocialMedia-02-Unhealthy-LimitedAvailability' and 'UnhealthyThirdPartyService-SocialMedia-03-Unhealthy-Outage'.

 

dynaTrace

 

UnhealthyThirdPartyService-SocialMedia-02-Unhealthy-LimitedAvailability

Plugin to include third party content from a Social Media Provider (easyTravel's Third Party Content Server). There is a limitation of the Social Media Provider simulated when accessing the resources and therefore the resources get delivered with a delay. PLEASE NOTE: This plugin has to be used mutually exclusive with both 'UnhealthyThirdPartyService-SocialMedia-01-Healthy' and 'UnhealthyThirdPartyService-SocialMedia-03-Unhealthy-Outage'.

 

dynaTrace

 

UnhealthyThirdPartyService-SocialMedia-03-Unhealthy-Outage

Plugin to include third party content from a Social Media Provider (easyTravel's Third Party Content Server). There is an outage of the Social Media Provider simulated when accessing the resources and therefore the resources do not get delievered at all. PLEASE NOTE: This plugin has to be used mutually exclusive with both 'UnhealthyThirdPartyService-SocialMedia-01-Healthy' and 'UnhealthyThirdPartyService-SocialMedia-02-Unhealthy-LimitedAvailability'.

 

dynaTrace

 

UseLocationCache

If this plugin is enabled an inefficient cache implementation for travel locations will be activated which synchronizes on all accesses and causes longer hangs when a location is created in the B2B Frontend.

 

dynaTrace

 

WPOPagePlugin

Plugin to show Web Performance Optimization Use Cases, e.g.: too many JS Files, optimized/non-optimized content loaded, caching. When enabled, there will be a link 'WPO' in the customer frontend which will provide these options.

 

dynaTrace

 

WSMQNativeApplication

Dispatches the credit card verification into a Websphere Message Queue instead of using the native ADK implementation. Use this plugin to demo use cases that involve WSMQ, WSMB and/or CICS. Ensure to disable all other native application implementations (DummyNativeApplication, NamedPipeNativeApplication, SocketNativeApplication).

 

dynaTrace

 

WSMQNativeApplicationError

Simulates faulty options for the WebSphere MQ message retrieval. This will cause exceptions to happen under high load, which will lead to uncontrolled growth of the queue. The response queue will be openend exclusively for reading which will cause concurrent credit card checks to fail. This will cause the response queue to get filled up with unread messages. This problem pattern will clear all messages from the response queue when it gets disabled.

 

dynaTrace

 

WebApplicationDeployment

Plugin simulates upgrade of the web application by deployment of the new 'war' file. New .war file is deployed each time plugin is started.

 

APM

 

WorldMapDNSFailsAsia

This plugin causes a significant slowdown of the DNS lookup in Asia.

   

WorldMapDNSFailsEurope

This plugin causes a significant slowdown of the DNS lookup in Europe.

   

WorldMapDNSFailsUnitedStates

This plugin causes a significant slowdown of the DNS lookup in the United States

   

Note: (warning) means that the plugin is not automatically deployed in order to allow easyTravel to run on older hardware and smaller systems. If you want to enable this plugin, please copy the respective jar-file from the folder "plugins-unused" to "plugins-frontend" or "plugins-backend" respectively and restart easyTravel.

Additional Patterns

The frontend-webapp contains the "problempatterns" folder to gather different jsp-pages which implement various defects.

Pattern

How to enable

Comment

HTTP 500 Errors

Access the following link:
http://localhost:8080/problempatterns/errorcode_500.jsp?showerror=true

This page generates an "HTTP Status 500" errorcode. The error is only generated if the parameter "showerror=true" is set. Otherwise the page renders successfully.

Slow search

Enabled via the link "Delay times for search" on the "About" page or directly by entering http://localhost:8080/searchdelay.jsf in the address line.

Can do busy wait and sleep-wait. The page contains two options to change:

  • delaytime [ms]: This specifies the amount of time to consume artificically during search. The time is specified in milliseconds.
  • checkbox "busy waiting": Two strategies for waiting are available - busy and idle waiting. During busy-waiting cpu-time will be consumed otherwise only "waiting time" will be produced without consuming cpu time.

Access external URL

Enabled via webservice, enter the following in the Browser, replace the URL:

http://localhost:8091/services/ConfigurationService/setExternalUrl?external=http://www.google.com

URL is accessed and content downloaded when a Booking is done via the UI

Controlling plugins via REST

The easyTravel Business Backend process provides REST interfaces for controlling plugins, i.e. listing available and enabled plugins and enabling/disabling plugins. You can get an overview by accessing http://localhost:8091/services/listServices

This can e.g. be used to create dynamically changing scenarios via external scripts.

URL

Purpose

http://localhost:8091/services/ConfigurationService/getAllPlugins

http://localhost:7654/PluginService/getAllPlugins

Returns all available plugins in XML format, the plugin information is encoded as "<name>:<group>:<description>"

http://localhost:8091/services/ConfigurationService/getAllPluginNames

http://localhost:7654/PluginService/getAllPluginNames

Returns the name of all available plugins in XML format

http://localhost:8091/services/ConfigurationService/getEnabledPlugins

http://localhost:7654/PluginService/getEnabledPlugins

Returns all currently enabled plugins in XML format

  http://localhost:8091/services/ConfigurationService/getEnabledPluginNames

  http://localhost:7654/PluginService/getEnabledPluginNames

Returns just the names of all currently enabled plugins in XML format
http://localhost:8091/services/ConfigurationService /getEnabledPluginsForHost?host=<host>

Returns the currently enabled plugins for the given host in XML format

Note: This call is different for the PluginService, however you can usually send the request to a BusinessBackend which will forward the call to the PluginService correctly

http://localhost:8091/services/ConfigurationService /getEnabledPluginNamesForHost?host=<host>

Returns the names of currently enabled plugins for the given host in XML format

Note: This call is different for the PluginService, however you can usually send the request to a BusinessBackend which will forward the call to the PluginService correctly

http://localhost:8091/services/ConfigurationService /setPluginHost?name=<name>&host=<host>&host=<host>

Sets a list of hosts for the given plugin <name>

Note: This call is different for the PluginService, however you can usually send the request to a BusinessBackend which will forward the call to the PluginService correctly

http://localhost:8091/services/ConfigurationService/setPluginEnabled?name=<name>&enabled=<true/false>

http://localhost:7654/PluginService/setPluginEnabled?name=<name>&enabled=<true/false>

Enable or disable a plugin

http://localhost:8091/services/ConfigurationService/ping

http://localhost:8091/PluginService /ping

Just will return "pong" and tell you that the Service is running

Controlling plugins with multiple backends in a single scenario (available since easyTravel build 900)

Since the backend is at the same time the registry for plugins, in deployments with multiple backends an additional plugin service process should be used as this registry.

Scenarios with a plugin service should start it as early as possible - therefore list it in the beginning of the scenario file.

<procedure id="plugin service" host="(pluginhost)" />

In order for the backends to be aware of having to delegate to the plugin service instead of taking care of it themselves, an additional setting is required.

<procedure id="business backend" host="(backendhost)">
<setting name="config.pluginServiceHost" type="procedure_config" value="(pluginhost)" />
</procedure>

The Plugin Service offers the same functionality as the backends at this endpoint:

http://(pluginservicehost):7654/PluginService

Restricting execution of plugin to specific hosts (available since easyTravel build 900)

When using the Plugin Service as registry for enabled or disabled plugins execution of plugins can also be restricted to specific hosts within a scenario.

Example:

<procedure id="plugin service" host="(pluginhost)">
<setting name="CPULoadExternalProcess" type="pluginhosts" value="hostA,hostB" />
</procedure>
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))