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

Introduction

easyTravel can be set up to execute procedures remotely. This is done by having a non-GUI Launcher application executing on all participating machines, which creates a Master-Slave-Launcher setup. Communication then takes place via REST solely from the Master Launcher to the Slave Launchers.

This is used for two use cases:

  • Set up easyTravel to run on multiple machines in-house, e.g. for CI testing
  • Set up easyTravel to run in the Cloud, e.g. Amazon EC2

Terms

  • Master: The machine where you start the Administration Console UI of easyTravel
  • Slave: Any additional machine which starts one or more of the easyTravel Applications/Tiers

Architecture

Overall the system will consist of multiple machines, each running a Master or a Slave node of easyTravel. There should be exactly one Master-node and a number of slave nodes.

Only one instance of Slave/Master can run on one machine at one time as they use the same networking ports and thus would cause conflicts.

Necessary steps

  1. Run the usual installation of easyTravel on all machines that should take part in the setup
  2. Edit the script "startDistributed.cmd" on the "Master". This is provided as part of easyTravel under C:\Program Files (x86)\dynaTrace\easyTravel
    1. Set at least the correct hostname/ip-addresses for DTSERVER, WEBLAUNCHER and any procedures that should run on a remote box. Set an actual hostname/ip-address and not "localhost" for WEBLAUNCHER as other machines need to "call home" via this setting
    2. Sample settings

      rem Specify where easyTravel WebLauncher is available 
      cd weblauncher
      
      rem Set the hostname/IP-Address of the machine where the 
      rem master-launcher is executing, 
      rem don't specify localhost here!
      set WEBLAUNCHER=stockhausen
      
      rem Set the hostname/IP-Address of the machine where the 
      rem dynaTrace Server is running
      set DTSERVER=dynasprint
      
      rem Specify where each procedure should be started
      rem use localhost for running it locally
      set FRONTEND=dynasprint
      set BACKEND=localhost
      set DOTNETBACKEND=dynasprint
      set DOTNETFRONTEND=localhost
      
  3. Start easyTravel on all Slaves via the “cmdlauncher.cmd” script that is part of the easyTravel Installation, look in C:\Program Files (x86)\dynaTrace\easyTravel
  4. Run the script “startDistributed.cmd” on the Master. Note: Only run this script on one machine, having multiple Masters will confuse easyTravel and you! Use "cmdlauncher.cmd" on the Slaces
  5. In the Browser-Window that opens up, the same “Application Console” is available as in the normal GUI version of easyTravel, here you can start any of the available Scenarios as usual

If it all starts up, you see the remote Hostnames/IP Addresses displayed for each of the remotely started procedures as follows:

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))

46 Comments

  1. This works very nicely! I especially dig the weblauncher, which is perfect for controlling this distributed environment!

    Is there any way to distribute the webserver? I would like to have the launcher with the loadgenerator on one machine and the webserver on another machine. I don't want to pick a scenario without Apache since I'm interested in demoing UEM.

    Also, in the standard configuration, Apache and Tomcat communicate using some fancy special protocol when I start a UEM scenario. Is it possible to configure Apache in a way that it just proxys the request to Tomcat using HTTP? Which config file would I need to edit?

  2. ad Distributing the Web Server

    In principle we allow the following procedures to be located on a remote machine:

    • Apache HTTPd
    • Customer Frontend (Java)
    • B2B Frontend (.NET)
    • Business Backend (Java)
    • Payment Backend (.NET)
    • Credit Card Authorization (Native)
    • Third Party Content Server (Java)

    Although doing this for the Apache HTTPd is not well tested and might simply not work correctly. However we are interested in feedback, You can try by adding the following system property to the startDistributed.cmd script

    com.dynatrace.easytravel.host.additional.apache_httpd=<hostname> ^

    A quick way to try it is to start a scenario which does not have Apache, i.e. Production/Standard and then right click on the "Stop" button and choose "Start->Apache Webserver-><remotehost>"

    ad Adjusting HTTPd configuration

    The AJP protocol between Apache and Tomcat is necessary so that the Apache HTTPd load balancer knows about the Tomcat Session Ids. Otherwise it will try to send requests that belong to a user-session to the other frontend-instance where the session id is unknown.

    Unless the Tomcat instances have a shared session storage which makes all sessions available on all tomcat-instances, this is required to make it work.

    You can play around with the Apache HTTPd config by setting the property config.apacheWebServerUsesGeneratedHttpdConfig to "false" in the easyTravelConfig.properties and then editing the file httpd.conf.

    BTW, In the GUI Launcher the property-file is available via right click on the scenario-header and the httpd.conf file is available via right click on the Apache HTTPd procedure icon. When using the WebLauncher, you need to open the files manually. The property file is located in the installation directory under the resources-directory. The generated httpd.conf is located in the config-directory under C:\users\<user>\.dynaTrace\easyTravel 2.0.0\easyTravel\config

    1. Okay, this did the trick:

      set APACHE_HTTPD=[hostname]
      [...]
      ..\jre\bin\java -Dcom.dynatrace.easytravel.install.dir.correction=..  ^
      -Dcom.dynatrace.easytravel.host.apache_httpd=%APACHE_HTTPD% ^
      

      Note that the working syntax is
      com.dynatrace.easytravel.host.apache_httpd=<hostname> ^

      (without ".additional" in the property.)

      I will continue to test if everything works as expected. If it does, you might as well offer this option out of the box.

      1. Sure, sorry for the mistype, I will add it to the script, let us know if you discover any problem with it.

        Thanks... Dominik.

  3. Using MS SQL Server for the easyTravelBusiness database

    Here's how you can connect easyTravel to a MS SQL database. Edit easyTravelConfig.properties on your Weblauncher server:

    config.internalDatabaseEnabled=false
    config.databaseDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver
    config.databaseUrl=jdbc:sqlserver://[dbhostname]:1433;databaseName=easyTravelBusiness
    config.databaseUser=easytravel
    config.databasePassword=easytravel
    

    It turns out that easyTravel ships without the MS SQL JDBC driver. To make it work, you need to complete the following steps:

    1. Download the MS SQL JDBC drivers at: http://go.microsoft.com/fwlink/?LinkId=245496
    2. Unpack "sqljdbc4.jar" to C:\Program Files\dynaTrace\easyTravel (x64)\lib
    3. Unpack "META-INF/MANIFEST.MF" from "com.dynatrace.easytravel.database.jar" in your main easyTravel directory
    4. Add "lib/sqljdbc4.jar" to the end of the Class Path in MANIFEST.MF
    5. Overwrite the MANIFEST.MF in "com.dynatrace.easytravel.database.jar" with your changed file.

    This should work fine.

    Would it be possible to ship MS SQL support in a future version? Or is there an easier way to add the library to the database classpath?

    1. Hi, thanks for the info, I have now published some information regarding using other databases at Using other RDBMSes in easyTravel which we collected internally and I have merged your information regarding the MS JDBC Driver.

      Microsoft disallows redistribution of it's JDBC Driver via the license. Therefore for connecting to Microsoft SQL Server, we ship the open source jTDS JDBC driver and have successfully used easyTravel with it.

  4. Booking-Payment-Finish issue

    While having my easyTravel distributed I am consistently having an issue while booking a trip.

    Whenever you click finish on the finish button you get the following error:
    "Error while booking: Error invoking PaymentService: While handling url: http://192.168.2.3:9010/Payment/Pay?bookingId=7573a97f-80bf-4611-b616-526ee5b0ee83&user=maria&ccNumber=vaHuiUn7xyepxeYN%2F0r7AddSar0%2BmW%2Bx&amount=481.6"

    When looking at this issue in dynaTrace I am able to see that easyTravel is throwing an exception while trying to process the HTTP post for the performBooking method.

    I am not sure if this is a common issue but installing on a different set of VM's does not seem to correct the issue and all other functions of easyTravel seem to be working correctly.

    any assistance would be appreciated.
    thanks in advance

    1. It seems the .NET side is either not working correctly or the configuration does not point to the correct host or is not reachable from the machine where Business Backend is running.

      If you do not care about .NET, you can simply use DummyPaymentServer instead of DotNetPaymentService, see the resource/easyTravelConfig.properties and thus turn off sending to the .NET side.

      Otherwise please provide some details about the type of exception and your setup.

      1. Hi I'm having the same problem with .NET Payment Service.

        I tried to access the Payment Service standalone by visiting localhost:9010 but I got the following configuration-error:

        Konfigurationsfehler

        Beschreibung: Fehler beim Verarbeiten einer Konfigurationsdatei, die für diese Anforderung erforderlich ist. Überprüfen Sie die unten angegebenen Fehlerinformationen, und ändern Sie die Konfigurationsdatei entsprechend.

        Parserfehlermeldung: Unbekannter Konfigurationsabschnitt "system.serviceModel".

        Quellfehler:

        Zeile 173:    </assemblyBinding>
        Zeile 174:  </runtime>
        Zeile 175:  <system.serviceModel>
        Zeile 176:    <bindings>
        Zeile 177:      <basicHttpBinding>


        Quelldatei: C:\Program Files (x86)\dynaTrace\easyTravel\dotNET\dotNetPaymentBackend\web.config Zeile: 175


        Versionsinformationen: Microsoft .NET Framework-Version:2.0.50727.5472; ASP.NET-Version:2.0.50727.5471

         

        -----------------------------------

         

        Sorry for the german-error text, but it says that there is an unknown configration-point "system.serviceModel" within the web.config.

        Thanks for your help.

         

        Robert

        1. This can indicate that a newer .NET Framework is missing, does the machine only have .NET 2.0 and not any newer?

          We try to detect this during installation, but there might be cases where it slips through.

          Thanks... Dominik

          1. Hello Dominik,

             

            we have already checked this. We have .NET Framework 4.0 installed. We even reinstalled easyTravel to get sure. But the error stays the same.

            Any other suggestions? When loading the B2B-Frontend directly,we only get an server errror.

            Serverfehler in der Anwendung /.


            Laufzeitfehler

            Beschreibung: Anwendungsfehler auf dem Server. Aufgrund der aktuellen benutzerdefinierten Fehlereinstellungen für diese Anwendung können die Details des Anwendungsfehlers nicht angezeigt werden.

            Details: Sie können die Details dieser Fehlermeldung auf dem lokalen Computer anzeigen, indem Sie ein <customErrors>-Tag in der Konfigurationsdatei web.config erstellen, die sich im Stammverzeichnis der aktuellen Webanwendung befindet. Das mode-Attribut dieses <customErrors>-Tags sollte auf RemoteOnly festgelegt werden. Sie können die Details auf Remotecomputern anzeigen, indem Sie "mode" auf "Off" festlegen.

            <!-- Web.Config Configuration File -->
            
            <configuration>
                <system.web>
                    <customErrors mode="RemoteOnly"/>
                </system.web>
            </configuration>


            Hinweise: Die aktuelle Seite kann durch eine benutzerdefinierte Fehlerseite ersetzt werden, indem Sie das defaultRedirect-Attribut des <customErrors>-Konfigurationstags dieser Anwendung so setzen, das es auf einen benutzerdefinierten Fehlerseiten-URL zeigt.

            <!-- Web.Config Configuration File -->
            
            <configuration>
                <system.web>
                    <customErrors mode="On" defaultRedirect="mycustompage.htm"/>
                </system.web>
            </configuration>

             

            Robert

            1. Hello Dominik,

              it seems that these problems disappear, when you have installed the right .NET Framework Version (smile)

              I have now installed .NET Framework 3.5.1 and now everything works as expected.

              Maybe you should add this Version as prerequisite (instead of .NET Framework 2.0 or higher).

              Thanks for your help.

              Robert

              1. Thanks for the note, seems we miss to check this correctly in the installer, I will verify that this is the case and ask for the necessary enhancements to the package.

  5.  

    Hi,

    I am having the same or similar issue as Robert was (Error while booking: Error invoking PaymentService: While handling url: http://localhost:9010/Payment/Pay?bookingId=1ae46738-5a9f-403a-933f-a88a79520f12&user=monica&ccNumber=Q%2B6k3niEez%2Bt2ed8gTS1d8SdQK8751D7&amount=1441.98)

    1. On a Windows Server 2008 R2  I was able to correct the problem by installined .NET Framework 3.5.1, just as Robert did.  Thanks Dominik!
    2. On a Windows Server 2012 R2  I already have .NET Framework 3.5 installed (as well as .NET FrameWork 4.5) and am still getting the error.  I am not sure I can uninstall .NET Framework 4.5 on this O/S.

    Any ideas on how to get EasyTravel working on machine #2?   Has anyone gotten EasyTravel working on WIndows 2012 R2 Server?

    Thanks,

    Jim

      

    Back

    1. The error is quite generic, it just means that the .NET process did not respond correctly, so it could be something different on the 2nd machine.

      Some things to look at to narrow this down:

      • Is this with .NET modules running in IIS or with standalone .NET modules? (This is visible in easyTravel Config UI on the procedures for Payment Backend (.NET) and B2B Frontend (.NET), if the running-icon for these has "IIS", they are running on IIS
      • First check if the Payment Backend (.NET) is in state "running"
      • For non-IIS modules, you can right-click on the payment backend and choose "Show Logfile", to bring up the logfile, please check if there are errors listed there
      • For IIS modules, the IIS Manager may provide information why they are not starting up correctly.

      A workaround if you don't need the .NET side is to deselect Problem Pattern "DotNetPaymentService" and select "DummyPaymentService", this way bookings will not try to send to the .NET side any more.

  6.  

    Thanks Dominic.   We did implement the DummyPaymentService workaround.   I think we're just going to move forward with the WIndows Server 2008 R2 version since that one is farther along.

  7. I have tested the distributed easyTravel Scenario.

    Every IP configuration in easyTravel startDistributed.cmd leads to a http status 403 on both, front and backend.
    The log says:

    [Mon Feb 17 11:07:49 2014] [error] [client 192.168.192.93] client denied by server configuration: C:/Program Files (x86)/dynaTrace/easyTravel/apache2.2/htdocs/dynaTraceMonitor
    [Mon Feb 17 11:07:49 2014] [error] [client 192.168.192.93] client denied by server configuration: C:/Program Files (x86)/dynaTrace/easyTravel/apache2.2/htdocs/services
    [Mon Feb 17 11:07:49 2014] [error] [client 192.168.192.93] client denied by server configuration: C:/Program Files (x86)/dynaTrace/easyTravel/apache2.2/htdocs/services
    [Mon Feb 17 11:07:54 2014] [error] [client 192.168.192.93] client denied by server configuration: C:/Program Files (x86)/dynaTrace/easyTravel/apache2.2/htdocs/orange.jsf
    [Mon Feb 17 11:08:04 2014] [error] [client 192.168.192.93] client denied by server configuration: C:/Program Files (x86)/dynaTrace/easyTravel/apache2.2/htdocs/

    my httpd.conf:

    ServerRoot "/dynatrace/easytravel/apache2.2/Linux"
    DocumentRoot "/dynatrace/easytravel/apache2.2/htdocs"
    ServerName "EasyTravelWebserver"
    Listen 8079
    Listen 8999
    Listen 8070
    Listen 8077
    LoadModule dtagent_module "/dynatrace/dynatrace-5.6.0/agent/lib/libdtagent.so"
    LoadModule actions_module modules/mod_actions.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule asis_module modules/mod_asis.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule env_module modules/mod_env.so
    LoadModule include_module modules/mod_include.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule setenvif_module modules/mod_setenvif.so
    
    #dynaTrace EasyTravel
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule headers_module modules/mod_headers.so
    
    # enable Apache Status page at http://localhost:5077/server-status
    # and the Load Balancer page at http://localhost:5077/balance-manager
    ExtendedStatus On
    LoadModule status_module modules/mod_status.so 
    <Location /server-status>
        SetHandler server-status
        Order Deny,Allow
        Allow from all
    </Location>
    <Location /balancer-manager>
        SetHandler balancer-manager
        Order Deny,Allow
        Allow from all
    </Location> 
    
    <IfModule !mpm_netware_module>
    <IfModule !mpm_winnt_module>
    User daemon
    Group daemon
    </IfModule>
    </IfModule>
    
    ServerAdmin admin@dynatrace.local
    
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    
    <IfModule dir_module>
        DirectoryIndex index.html
    </IfModule>
    
    <FilesMatch "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </FilesMatch>
    
    LogLevel warn
    
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    
    ScriptAlias /cgi-bin/ "cgi-bin"
    
    <Directory "cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
    
    DefaultType text/plain
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    <Proxy balancer://mycluster>
        ProxySet stickysession=JSESSIONID
        BalancerMember ajp://192.168.192.91:8280 route=jvmRoute-8280 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8281 route=jvmRoute-8281 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8282 route=jvmRoute-8282 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8283 route=jvmRoute-8283 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8284 route=jvmRoute-8284 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8285 route=jvmRoute-8285 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8286 route=jvmRoute-8286 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8287 route=jvmRoute-8287 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8288 route=jvmRoute-8288 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8289 route=jvmRoute-8289 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.91:8290 route=jvmRoute-8290 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8280 route=jvmRoute-8280 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8281 route=jvmRoute-8281 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8282 route=jvmRoute-8282 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8283 route=jvmRoute-8283 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8284 route=jvmRoute-8284 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8285 route=jvmRoute-8285 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8286 route=jvmRoute-8286 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8287 route=jvmRoute-8287 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8288 route=jvmRoute-8288 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8289 route=jvmRoute-8289 connectiontimeout=10 retry=120
        BalancerMember ajp://192.168.192.92:8290 route=jvmRoute-8290 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8280 route=jvmRoute-8280 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8281 route=jvmRoute-8281 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8282 route=jvmRoute-8282 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8283 route=jvmRoute-8283 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8284 route=jvmRoute-8284 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8285 route=jvmRoute-8285 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8286 route=jvmRoute-8286 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8287 route=jvmRoute-8287 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8288 route=jvmRoute-8288 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8289 route=jvmRoute-8289 connectiontimeout=10 retry=120
        BalancerMember ajp://localhost:8290 route=jvmRoute-8290 connectiontimeout=10 retry=120
    </Proxy>
    <VirtualHost 127.0.0.2>
        ProxyRequests Off
        ProxyPreserveHost On
        ProxyPass / balancer://mycluster/
        ProxyPassReverse / balancer://mycluster/
    </VirtualHost>
    <VirtualHost 127.0.0.3>
        ProxyRequests Off
        ProxyPreserveHost On
        ProxyPass / http://localhost:9000/
        ProxyPassReverse / http://localhost:9000/
    </VirtualHost>
    <VirtualHost *:8070>
        RequestHeader unset Accept-Encoding
        ProxyRequests On
    </VirtualHost>
    CustomLog '|\"/dynatrace/easytravel/apache2.2/Linux/bin/rotatelogs\" \"/root/.dynaTrace/easyTravel 2.0.0/easyTravel/log/access_%H.log\" 3600' common
    ErrorLog '|\"/dynatrace/easytravel/apache2.2/Linux/bin/rotatelogs\" \"/root/.dynaTrace/easyTravel 2.0.0/easyTravel/log/error_%H.log\" 3600'
    TypesConfig "/root/.dynaTrace/easyTravel 2.0.0/easyTravel/config/mime.types"
    PidFile "/root/.dynaTrace/easyTravel 2.0.0/easyTravel/log/httpd.pid"

    Can you please check that and give me some workaround?

     

  8. I think the VirtualHosts are somehow created incorrectly in your case, usually it would be

    <VirtualHost *:8079>
        ProxyPass / balancer://mycluster/
        ProxyPassReverse / balancer://mycluster/
    </VirtualHost>
    <VirtualHost *:8999>
        ProxyPass / http://localhost:9000/
        ProxyPassReverse / http://localhost:9000/
    </VirtualHost>
    <VirtualHost *:8070>
        RequestHeader unset Accept-Encoding
        ProxyRequests On
    </VirtualHost>

    Somehow the IP-Addresses/Hostnames that are configured seem to cause an special feature to be enabled which usually is only used when the system is set up to run on an official internet URL.

    Can you try to specify a hostname instead of the IP-Address to verify if this is the case for you?

  9. The demo environment is not reachable from the internet. The config you've posted works with ip adresses. I specified hostnames in the config and everything works fine without changing the httpd.conf.

    Thanks for your help!

  10. Ok, thanks for the quick response, I have asked the team to only enable the feature that adds these strange virtualhosts via a separate config-option so others do not fall into this any more. Naturally also using IP-Addresses should work fine then.

  11. Hi all,

    Is it possible to separate the credit card functions onto a separate server? I tried adding:

    set CREDITCARD=et-creditcard

     

    -Dcom.dynatrace.easytravel.host.credit_card_authorization=%CREDITCARD%


    But I get errors checking credit card details through easyTravel, is there anything else I need to change to get this to work?

    Cheers Kev.

    1. It's not supported out of the box because the default CreditCardAuthorization used on Windows uses named pipes as communication protocol with the Java side and this does not work on remote machines.

      We have a separate plugin SocketNativeApplication which you can use instead of the default NamedPipeNativeApplication in easyTravelConfig.properties, then the following setting is required to specify the hostname where the native process is started by easyTravel:

      -Dconfig.creditCardAuthorizationHost=%CREDITCARD%

      Finally in the scenario.xml file (accessible via right click on the scenario name in the easyTravel console) ensure that the NamedPipe/Socket mode is selected accordingly for the Credit Card Procedure as follows:

                  <procedure id="credit card authorization">
                      <setting name="IpcMode" value="Socket" />

      The correct process was started if it is named CreditCardAuthorisationS with "S" for "Socket" at the end. You can check in the Launcher by right clicking on the procedure and looking at the Details.

      Disclaimer: we did not actively test this, it should work, but you might run into unexpected problems.

      1. Thanks for the info Dominik, I tried this but I got a file not found on the CreditCardAuthorizationS.exe

        2014-05-02 13:51:12 CmdLaun SEVERE  [ProcedureFactory] The easyTravel installation is corrupt. Unable to create procedure for mapping 'credit card authorization': Corrupt installation. The following file could not be found: C:\Program Files (x86)\dynaTrace\easyTravel\CreditCardAuthorizationS.exe.

        Don't worry about this, I think I'm going to stick to the Java Back-end and Credit Card Authorization on the same VM as I'm running out of RAM and Disk space...

        Thanks anyway.

        Kev.

  12.  

    I am attempting to run easyTravel distributed slaves on borrowed space on a restricted access Linux box. I have the dT 60 collector going fine there. But when I attempt to run ./runEasyTravel.sh I get the following errors:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:        

    no swt-pi-gtk-3735 in java.library.path        

    no swt-pi-gtk in java.library.path        

    Can't load library: /home/nbsxlwa/.swt/lib/linux/x86/libswt-pi-gtk-3735.so        

    Can't load library: /home/nbsxlwa/.swt/lib/linux/x86/libswt-pi-gtk.so        

    /home/nbsxlwa/.swt/lib/linux/x86/libswt-pi-gtk-3735.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

    I can not install these packages. Are these needed just to run the easyTravel Java apps using a master running on my laptop? Did I miss a config step for running the distributed slaves?

     

    Thanks,

    Rich

  13. Hi. Can you try launching the weblauncher.sh? This will launch easyTravel but withouth the "Rich Client UI" (which requires SWT) but just controlling it via the Web Interface

  14. Hi Andi dTCommunityHerosCEO and dTrescueMan,

    Duh, I should have issued "ls *sh" and would have seen: runEasyTravelNoGUI.sh.

    Thanks,

    Rich

    1. I LIKE these tags (smile) - enjoy your holiday weekend

  15. Hi,

    Earlier today before time ran out I was able to get the Linux workload to run. I then started the master on my windoze system. It showed the remote JVMs but I wasn't able to control the workload rates from the windoze Master Web based GUI. I then figured out how to start the WebGUI on the Linux box but that was hosed up somehow (sorry I forget the details, I tweaked configs a couple times since this is having a slave and a master (it seemed) on the Linux box). Anyhow I had to abort (a holicay weekend, TY). I was able to find another windoze system to borrow and got it all running very easily there. I might have missed a step or something getting the Linux slave to work with either workload control GUI. It is amazing all that you guys have done with that demo app and so many ways to tweak it ... so no rocks are being thrown here ... either I missed something or it takes tweaking deeper in for that convoluted env. I do believe if I had a 2nd chance to try I would get it working ... again, nice stuff!!

    Bier time and it is October,

    Rich

    1. There is not much difference between running on Linux or Windows if you are using the "...NoGUI.sh" script for Slaves to not require Window-System libraries. Having multiple instances of slave/master on one machine is however guaranteed to cause trouble as we use a number of networking ports which will conflict and cause functionality to work incorrectly.

      Dominik.

  16. Hi we have just started easy travel distributed but i get information on ET web UI for all tiers that Agent is not available.

    We have tried setup on ip and hostname as well with the same output. All servers are MS Windows 2008 R2 with Java 1.7 and .Net 3.5

    Our config looks like this:

    Anyone have any idea how to fix this?

     

    rem ================== TODO ===============================

    rem Specify where easyTravel WebLauncher is available 

    cd weblauncher

    rem ================== TODO ===============================

    rem Set the hostname/IP-Address of the machine where the 

    rem master-launcher is executing, 

    rem don't specify localhost here!

    set WEBLAUNCHER=192.168.1.39 

    rem ================== TODO ===============================

    rem Set the hostname/IP-Address of the machine where the 

    rem dynaTrace Server is running

    set DTSERVER=192.168.1.39

    rem ================== TODO ===============================

    rem Specify where each procedure should be started

    rem use localhost for running it locally

    set FRONTEND=rja-CustomerFrontend

    set BACKEND=192.168.1.42

    set DOTNETBACKEND=192.168.1.12

    set DOTNETFRONTEND=192.168.1.46

    set APACHE_HTTPD=localhost

    set NGINX=localhost

    set CASSANDRA=localhost

    set THIRD_PARTY_SERVER=localhost

    1. The Dynatrace Agent needs to be installed in the default location for easyTravel to find it. This sounds like it is missing or not found by easyTravel.

      If it is not installed yet, please install it and restart all easyTravel processes.

      If it is installed in a non-default location, then you need to adjust the path in the config file resources/easyTravelConfig.properties where it says "auto".

      Dominik.

      1. It is installed on all hosts in default location actually.

        1. Then you might need to take a look at the startup-logs and see why easyTravel thinks they are not available, the logs are available in the context-menu via right-click on the Scenario name.

          Dominik.

          1. Below you can find a link o text files that contains the logs from both working fine on local host customer frontend and not working on remote one busines backend 

            https://www.dropbox.com/s/ax2k43843615xhc/New%20Text%20Document.txt?dl=0

            Any ideas after a look there?

  17. There seems to be more amiss, some of the logs indicate that Business Backend cannot access the database and I don't see anything about agents at all in this log.

    Can you maybe zip up all the logfiles from the local machine and the remote machine so I can forward this to the easyTravel team to take a closer look?

    Dominik.

    1. Sure I can, but tell me where I can find this log files u need? ET installation was default one

      1. Sure, on Windows under C:\Users\<user>\.dynaTrace\easyTravel 2.0.0\easyTravel\log, on Linux ~/.dynaTrace/easyTravel 2.0.0/easyTravel/log

        Regards... Dominik.

        1. Sorry for the delay but in the mean time we have reinstalled the the environment and we still have the problems. Dt agents on remote host are not visible in dynatrace server.

          Below you can see the logs and screenshots from the environment.

          https://www.dropbox.com/sh/zorp2ohdhvysrsy/AACfNdhfpoJ3xYfOIrRH-dgMa?dl=0

          1. Hm, I see that the processes seem to be started with seemingly correct agentpath, only the dtserver is not set correctly as it is localhost, this indicates that you need to set the DTSERVER correctly in the startDistributed.cmd

             

            ... executing process with command: [C:\Program Files (x86)\dynaTrace\easyTravel\jre\bin\java, -agentpath:C:\Program Files\dynaTrace\dynaTrace 6.2\agent\lib\dtagent.dll=name=CustomerFrontend_easyTravel_8080,server=localhost,wait=5, -Djava.util.logging.config.file=../resources/logging.properties, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=60, -XX:CMSIncrementalSafetyFactor=40, -XX:+CMSClassUnloadingEnabled, -Djava.net.preferIPv4Stack=true, -Xmx160m, -jar, C:\Program Files (x86)\dynaTrace\easyTravel\com.dynatrace.easytravel.customer.frontend.jar, -persistencemode, jpa, -installationmode, Classic, -propertyfile, C:\Users\radek\.dynaTrace\easyTravel 2.0.0\easyTravel\tmp\easyTravelConfig1267986617610110001.properties, -port, 8080, -shutdownport, 8180, -ajpport, 8280, -contextroot, /, -webappbase, webapp]: com.dynatrace.easytravel.launcher.process.AttentiveExecuteResultHandler onProcessFailed

             

            Hope that helps... Dominik.

  18. Hey Dominik,

    I've been trying to get the Apache instance running on both the same and a separate Ubunutu hosts as the easyTravel master but haven't had much luck getting it to start.  However, after testing the startup on a Windows instance, the Apache instance started up just fine and is working correctly.  Therefore, I believe that the issue resides in permissions that are specific to Ubuntu but unfortunately am still unable to resolve the issue even after changing the permissions.  Below is what I'm seeing in the easyTravel weblauncher logs:

    2016-08-26 20:57:48 WebLaun WARNING [RAPSupport] Exception trying to show file '/home/dynatrace/.dynaTrace/easyTravel 2.0.0/easyTravel/log/error*.log': File '/home/dynatrace/.dynaTrace/easyTravel 2.0.0/easyTravel/log/error*.log' does not exist: com.dynatrace.easytravel.launcher.fancy.RAPSupport showFile
    java.io.FileNotFoundException: File '/home/dynatrace/.dynaTrace/easyTravel 2.0.0/easyTravel/log/error*.log' does not exist
    at org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:299)
    at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1711)
    at org.apache.commons.io.FileUtils.readFileToString(FileUtils.java:1748)
    at com.dynatrace.easytravel.launcher.fancy.RAPSupport.showFile(RAPSupport.java:142)
    at com.dynatrace.easytravel.launcher.fancy.RAPSupport.showFile(RAPSupport.java:122)...

    2016-08-26 20:57:49 WebLaun INFO [Batch] Procedure Apache Webserver is still not operating

    Am I missing something here?  Although the processes are started using the "dynatrace" user ID it appears that they are still unable to write to the /home/dynatrace/ log location.  If it helps, I'm using version 2.0.0.2448 of easyTravel.

    Thanks in advance!

    Josh

    1. The error about "log does not exist" is not relevant as far as I see as it is reported only when you try to view the Apache log in the UI, but there is not yet a logfile written at all.

      Rather as the latest easyTravel is provided as 64-bit package, but Apache HTTPD is still provided as 32-bit binary inside the package, you might now miss some 32-bit libraries in the operating system setup.

      To run 32bit Apache process on 64bit Linux VM problems please install additional packages via the following steps:

      Ubuntu 13.04 or later

       

      sudo apt-get update
      sudo aptitude install gcc-multilib
      sudo apt-get install libxml2:i386
      sudo aptitude install lib32z1
      sudo apt-get install libcurl3:i386

       

       

      If you do not get libxml2:i386 you have to enable multilib support first:

       

      sudo dpkg --add-architecture i386
      sudo apt-get update

       

      If you want to use 32-bit installation MongoDB scenario on 64bit Linux dist you would have to install additional library:

       

      sudo apt-get install lib32stdc++6

       

      CentOS

       

      sudo yum install zlib.i686
      sudo yum install libcurl.i686
      sudo yum install libxml2.i686

       

      openSuse Leap

      sudo zypper install zlib-devel-32bit
      sudo zypper install libcurl-devel-32bit
      sudo zypper install libxml2-2-32bit
      Update: I have now also published this at Installing easyTravel on 64-bit linux systems for further reference.
      1. Absolutely perfect Dominik!  Running the Ubuntu commands resolved my issue. Many thanks for the quick reply and for including these items in the documentation.

        Thanks,

        Josh

  19. Is there an option to configure EasyTravel to use an Oracle DB?

    Edit:

    Using other RDBMSes in easyTravel

  20. Question on using easyTravel to test Collectors and AppMon end to end. 

    I have AppMon 6.5 Server with 4 Collectors in two Collector groups to run non  production testing before we deploy 100 agents in production. I have easytravel on a separate Windows 2012 server and have configured the properties of easytravel with the ip address of the Appmon server. I have imported the easytravel profile to Appmon . BUT can I configure easytravel to send Agent data to the AppMon server via a specific Collector?

    I have ready the distributed setup doc and the regular easytravel configuration guide but I cannot see where / if I can tell easytravel agents what collect I want them to use. 

     

    (If you know Andreas please let me know) Thanks 

     

    Graham Gardner

    AppMon fanboy Melbourne

    1. I think you just need to set the following two properties to the collector-host/port to send the agent to a specific collector:

       

      config.dtServer=localhost

      config.dtServerPort=auto

       

      (I know a few Andreases in the company, which one are you looking for?)

      1. Thanks Dominik - I was looking for Andy Grabner .

        So the config.dtServer can be a collector or the AppMon server? I incorrectly assumed that the dtServer meant AppMon main server.

        I now have things working nicely generating easyTravel test activity on a Windows server that pushes the agent data up to a Collector and then into the Main AppMon server. The next phase of testing will be using the Master/Slave test setup.

         

        Appreciate the help- thanks

         

        Graham Gardner