cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

easyTravel Documentation and Download

Karolina_Linda
Community Team
Community Team

easyTravel_logo.png
easyTravel - One step to happiness  

easyTravel is a state-of-the-art demo application for Dynatrace. It helps you evaluate or showcase Dynatrace with a realistic heterogeneous multi-tier web application.

 

Overview

easyTravel provides a web portal that allows users to log in, search for journeys to various destinations, select promotional journeys directly that are offered, and book a journey using credit card details.

 

Additionally, a Business-to-Business (B2B) web portal for travel agencies is provided where travel agencies can manage the journeys that they offer and can review reports about made bookings.

easyTravel is a multi-tier application implemented in .NET and Java. The starting of the various tiers and the enabling/disabling of different problem pattern plugins is done via a separate easyTravel Launcher.

 

The Launcher allows the user to conveniently switch between different demo scenarios. Each scenario can define load scripts and certain problem pattern plugins that are enabled. The scenarios can be modified or extended by changing an XML file. This is useful when giving demos and allows you to focus on problem areas that are particularly relevant for a specific demo.

 

Search and book a journey on the easyTravel web frontend with a realistic multi step booking process.Search and book a journey on the easyTravel web frontend with a realistic multi step booking process.         Start all the tiers of easyTravel and enable architecture and performance flaws by selecting a pre-configured scenario.Start all the tiers of easyTravel and enable architecture and performance flaws by selecting a pre-configured scenario.

 

Download

Check latest published version here: README.txt

easyTravel security updates

Please see this page for the security updates in easyTravel: easyTravel security updates.

 

Install easyTravel

Prerequisites:

  • If you already have easyTravel installed, uninstall it.
  • On Microsoft Windows
    • IIS (Internet Information Server) installed and working if you want to use easyTravel procedures via IIS
    • .NET Framework 2.0 or higher if you want to use/demo  .NET features of Dynatrace

Installation steps for Windows

  • Download easyTravel (see above)
  • Run the installer

Installation steps for Linux

  • Download easyTravel (see above)
  • execute "java -jar dynatrace-easytravel-linux-x86_64.jar"
  • execute "/bin/bash installChromeDeps.sh" in <easytravel install dir>/resources directory. NOTE: you need root privileges to run this script.

Run easyTravel

Windows

  • run "easyTravel Configuration UI" from Windows Start Menu OR
  • run <easyTravel-InstallationDirectory>\weblauncher\weblauncher.cmd
    Weblauncher will be accessible at http://localhost:8094/main

Linux

  • run <easyTravel-InstallationDirectory>\weblauncher\weblauncher.sh

Both

  • Click on the scenario you want to run (e.g. "Standard")
    Now all the tiers of easyTravel are starting up and when you run it for the first time easyTravel will populate the internal database with a good amount of test data - so this may take a minute or two for the first run.
    To generate heavy load on the application go to the easyTravel launcher and switch to the Black Friday Scenario by clicking on the link "Black Friday".

easyTravelInstall.png

 

Install OneAgent

⚠️You should disable monitoring of launcher (com.dynatrace.easytravel.launcher.jar easyTravel (x64)) processes. Otherwise, there will be no connection between application and services. See steps below:

  1. Edit a process.
    disable_launcher_process_monitoring1.png
  2. Disable process monitoring.
    disable_launcher_process_monitoring2.png


Connecting easyTravel to Dynatrace (SaaS and Managed)

⚠️Only needed if you need mobile app traffic.

 You have to edit "C:\Program Files\Dynatrace\easyTravel (x64)\resources\easyTravelConfig.properties"

 

Set following configuration properties for SaaS:

 

 

 

config.apmServerDefault = APM 

config.apmServerHost=live.dynatrace.com
config.apmServerWebPort=443
config.apmServerPort=443
config.apmServerWebURL=https://live.dynatrace.com:443
config.apmTenant=<tenant_name>

 

 

 

When connecting to the Dynatrace Managed server:

 

 

 

config.apmServerDefault = APM

config.apmServerHost=<managed_server_host>
config.apmServerWebPort=443
config.apmServerPort=8443
config.apmServerWebURL=https://<managed_server_host>:443
config.apmTenant=<environment_id>

 

 

 

 ⚠️You should disable monitoring of launcher (com.dynatrace.easytravel.launcher.jar easyTravel (x*)) and weblauncher (com.dynatrace.easytravel.weblauncher.jar easytravel-*-x*) processes. Otherwise, there will be no connection between application and services. 

 

Troubleshooting

➡️Error during installation: "Error writing to file: UltiDevCassiniHttpRequestProcessor2.0.dll. Verify that you have access to that directory."

Ensure that Microsoft IIS (Internet Information Server) is installed and working and ensure that .NET Framework 2.0 or higher is installed.


➡️Apache HTTPD does not start, error "An operation was attempted on something that is not a socket" in error.log

This indicates that some other installed software interferes with socket network calls. A workaround is to add the following additional setting to the Apache HTTP config file at <installation_location>/apache2.2/plain_conf/plain_httpd.conf

       Win32DisableAcceptEx

For details, see the Apache Documentation.

 

➡️Internet Explorer 9 displays some pages incorrectly in compatibility mode

If Internet Explorer displays some pages with incorrect layout, (e.g. text-fields in one of the login screens are displaced or login box is displayed behind other content), you likely run Internet Explorer in "compatibility mode", where it simulates an Internet Explorer 7.

You can disable compatibility mode by clicking the blue "broken page" icon so that it is displayed in gray again.

InternetExplorer9CompatibilityMode.png

 

➡️.NET Applications do not fully start on an Windows XP or Windows Server 2003 instance

See easyTravel on Windows XP and 2003 for a detailed description of the problem and a number of possible workarounds.

➡️.NET Applications do not start - "An attempt was made to access a socket in a way forbidden by its access permissions"

This problem is likely to be caused by IIS running dotNetBackend and dotNetFrontend thus blocking the port the backend is trying to use. The frontend just gets assigned another port.

➡️"Error while checking Credit Card - The system cannot find the file specified"

In 3.5.1 this can indicate that you need to update your Agent to the latest version in order to make ADK/C++ instrumentation work correctly. I.e. you should at least install the Update "April 2011", make sure to also update the agent dlls as well.

If you rather stay with the current agent and would like to work around this problem you can go to the Problem Patterns tab in the easyTravel launcher and deactivate the plugins “NamedPipeNativeApplication” and “NamedPipeNativeApplication.NET” and instead activate “DummyNativeApplication” and “DummyNativeApplication.NET”

 

➡️.NET Applications running slow on Firefox

If the .NET-Application seems to be running slow in Firefox on localhost, try using the ip-address instead or add localhost to network.dns.ipv4OnlyDomains in the Firefox configuration, enter the following in the address bar "about:config" to access Firefox configuration.

 

➡️iOS easyTravel App does not install

This problem is likely to be caused by multiple network interfaces (e.g. from VMWare) on the easyTravel host. To override the host auto detection for the iOS App download configure appleMobileHost in C:\Program Files (x86)\dynaTrace\EasyTravel\resources\easyTravelConfig.properties to the IP address of your easyTravel frontend.

 

➡️iOS easyTravel App does not install due to connection error

You are getting an error like "Cannot connect to x.x.x.x" or "Cannot install applications because the certificate for x.x.x.x is not valid". This problem is caused by apple by requiring an SSL-Connection to install the app via direct link. You have install the self-signed SSL-Certificate, which can be found in the “iOS App Installation”-section on the "About"-page.

 

Architecture

The overall architecture consists of:

  • Two Java processes providing the Customer Frontend and the Business backend server
  • Two .NET processes providing the B2B Frontend and the Payment backend server
  • A C++ application which receives credit card numbers via IPC/Named Pipe and simulates verifying the number against a third party provider.
  • A Launcher GUI which allows to control the processes and also hosts the Java Derby Database (unless some other RDBMS is configured)
  • A Java Derby Database for storing the travel data (can easily be replaced with other JDBC databases)
  • A MS SQL Server Compact Edition Database for storing payment data
  • Optionally an Apache Web Server instance for load balancing

easyTravel-Technology-Architecture.pngeasyTravel_Architecture.png

 

Memory usage

Estimated main memory usage of default scenario, measured as "process private bytes" on Windows OS:

 

Application

Technology

Memory

Launcher (includes Java DB)

Java/SWT

225MB

Customer Frontend

Java/Tomcat

<190MB

Business Backend

Java/Tomcat

<190MB

Credit Card Authorization

C++/ADK

<1MB

Payment Backend

.NET/MVC

65MB

B2B Frontend

.NET/MVC

65MB

Overall

-

<800MB

 

Demo Scenarios

The easyTravel Launcher starts up all the processes for the different tiers and also allows a user to enable/disable different problem patterns - known as plug-ins. A configuration of running processes and plug-ins is called a scenario.

In order to focus the demo to the interests of the audience, the scenarios are grouped. By default the easyTravel Launcher offers two scenario groups:

  • UEM
  • Production

Sometimes the default scenarios and groups may not fit your needs. Maybe your audience is not interested in .NET or you want to enable a certain plugin to demonstrate special Dynatrace capabilities. In this case, you have the possibility to set up your own scenarios and groups.

 

Defining Custom Scenarios

On the first startup of the easyTravel Launcher a default scenario configuration file is created. The scenarios.xml file can be found in USER_HOME\.dynaTrace\easyTravel <version>\easyTravel\config. In order to customize your scenario setup you can edit this configuration.

⚠️

Because the easyTravel Demo Application and consequently the default scenario configuration may change in further versions, your customized file might be replaced by a new configuration file after an update. The old configuration file is backed up in the original directory.

Since easyTravel for 4.2, you can put your scenario-definitions in a file userScenarios.xml in the config directory and thus avoid this overwriting.

 

Scenario File Structure

The scenario.xml consists of nested group and scenario tags. The following excerpt shows a common structure:

 

 

 

 

 

 

 

 

<group order="1" title="Group Title">
  <scenario enabled="true" order="1" title="Scenario Title">
    <description>Scenario Description</description>
    <procedure id="inprocess DBMS" order="1"/>
    <procedure id="database content creator" order="2"/>
    <procedure id="business backend" order="3"/>
    <procedure id="customer frontend" order="4"/>
    <procedure id="credit card authorization" order="5"/>
    <procedure id="payment backend" order="6"/>
    <procedure id="b2b frontend" order="7"/>
  </scenario>
</group>

 

 

 

The procedure elements describe the tiers of the scenario. The order attribute of the group and scenario elements define the sequence they are listed in the easyTravel Launcher. The order attribute of the procedure elements defines the startup sequence of the tiers.

 

Customization Example

Let's assume we want to define a new group with a single scenario. The scenario should run without B2B Frontend and the "SmallMemoryLeak" plugin has to be enabled in order to simulate a memory leak:

 

 

 

<group order="1" title="Example Group">
  <scenario enabled="true" order="1" title="Example Scenario">
    <description>This is an example scenario</description>
    <procedure id="inprocess DBMS" order="1"/>
    <procedure id="database content creator" order="2"/>
    <procedure id="business backend" order="3">
      <setting name="SmallMemoryLeak" type="plugin" value="on"/>
    </procedure>
    <procedure id="customer frontend" order="4"/>
    <procedure id="credit card authorization" order="5"/>
    <procedure id="payment backend" order="6"/>
  </scenario>
</group>

 

 

 

Settings on Procedure Level

Procedures support a few specific settings and additionally allow to override any of the global properties that you have in the easyTravelConfig.properties file.

Specific settings are available for the following types of procedures:

  • BusinessBackend or PluginService: Enable/Disable plugins as part of a scenario as well as define on which host a plugin is active (if you have multiple instances of a procedure-type running on multiple hosts)
<setting name="DatabaseCleanup" type="plugin" value="off"/>
<setting name="DummyPaymentService" type="pluginhosts" value="dynaday13fall" />
  • Ant Procedure: Set details of Ant-Execution (look at existing scenarios for examples)

 

Setting global properties on procedure-level via type="procedure_config" only makes sense if you have multiple procedures of the same type and want to set different settings for these or if you use multiple scenarios and one of them requires different settings. Otherwise it is probably easier to specify them in the global property file, ideally in a easyTravelLocal.properties in the C:\Users\...\config directories.
 

: 2.0.0.2660

 

Questions? Comments? Add them below!

Keep calm and build Community!
13 REPLIES 13

crazlaz
Newcomer

Hello Links to download EasyTravel is returning a error page.

theharithsa
Dynatrace Pro
Dynatrace Pro

I am with @crazlaz 
Links to download and also to readme.txt are not working, Linda. Please check and update the latest ones. That would be great to share the post with everyone. 

Love more, hate less; Technology for all, together we grow.

EnriqueAP
Newcomer

Hi, I am also triying to download EasyTravel and once I try to access the links it gives and error page.
Thanks

tomasz_wieremje
Dynatrace Supporter
Dynatrace Supporter

The download links should work again 😉

jackh_fong
Visitor

Would we put Customer Frontend, Business Backend, and Business Database components into different servers?  How will we update the application configurations please?

Thanks.

mikezase
Newcomer

Hi, I've tried to run easyTravel on Raspberrypi 4 with Ubuntu 22.04. The installation process was successful but I was not able to run it because of an error:

sudo ~/easytravel-2.0.0-x64/weblauncher/weblauncher.sh
/home/ubuntu/easytravel-2.0.0-x64/weblauncher/weblauncher.sh: 13: ../jre/bin/java: Exec format error

Can easyTravel be deployed on Raspberry Pi? Did you have the same issue?

techean
Dynatrace Champion
Dynatrace Champion

Yes it should work irrespective of its underline hardware until you are running the supported OS and the proper supported execution command for that respective OS.

KG

Sahil2308
Visitor

Hi, I am trying to start the application on CentOs Linux 7 hosted on AWS(noGUI). Getting an error :

WebLaunche WARN [DocumentStarter] Exception occurred while opening URL: http://localhost:8094/. Exception: Cannot run program "firefox": error=2, No such file or directory

 

Can anyone plz provide a solution for this?

andre_f
Dynatrace Advisor
Dynatrace Advisor

Hi... Can it be that it is a CentOs without UI only terminal? There is no Firefox installed and can not be used.

yes. Is there any way to start the app?

andre_f
Dynatrace Advisor
Dynatrace Advisor

As far as I know a GUI is required to run and configure the app. Unfortunately I don't know a workaround (if any exists) to launch the app without a browser.

You can run the app by executing the runEasyTravelNoGUI.sh script located in the root directory, but no configuration options are available if you use this method.

 

What I have seen is that no browser traffic is generated this way, but you can access the easyTravel page by browsing to http://<your_easytravel_host_ip>:8079, which should load up the page and RUM data comes through.

Considering you are using a virtual machine... You can open ports 8094 and 8079 required for the application in your security group and access the application using the public_ip:8094 in any browser. By default it tried to locate firefox application irrespective of OS you use. I hope this helps.