FusionReactor Java Performance Monitor: Blog

All about FusionReactor’s Daily Reports


Something you will hear over and over when looking at the APM space, is reports. Every APM solution has reports, and FusionReactor is no different.

With the release of FusionReactor 5.0.0, we included the Daily Report, which is a summary report which is sent as an email to the configured address(s) at the given time.  This plugin is very simple to use and just like other features in FusionReactor will work without a restart.   The idea behind this report is that it can be used to provide users with a quick indication of server health without having to check the instance directly via the FR interface.

Background

A quick overview of what the daily report consists of before we get started in making it work for us.

You can see from the image that the daily report contains a break down of the up time, web request activity and the core resource usage. The report is intended to quickly put over the basic state of your server over the last 24 hours; and in my opinion does it quite well.

Uptime is measured as a percentage of that day that the server was online, effectively it is (1 day – downtime / 1day) * 100.

 

Daily Report Screenshot

Setup

I feel that the best thing about this feature is that there is very little to do, as is often the case when setting up FusionReactor. All you need to do to receive this report is to enter the mail server settings within the FusionReactor -> Settings page. I will not go through all the settings as for the most part they are fairly simple. There are also a few other things in this email settings which can be helpful to know. For any further help please refer to the docs here.

From Address

The “From Address” is actually not needed to send an email, and is usually just used as a method to identify the sender. What i like to do for the FusionReactor instances is to use this to indicate the instance/server that the email has come from. So for instance i have the current released version of FusionReactor running on the testfr server. I can then use the email address release@ testfr.com, so now i can apply filters to the email account that this mail is sent to, allowing to be have different folders in the mail client for the different instances/server.

Using this approach means i can just look at the new mails per folder to know it there is any missing.

Host Name

This field is quite often overlooked. As FusionReactor’s internal web server, and discovered host name, is usually hidden from the outside world. The links in the email will not work unless you are inside the correct network. This field allows you to specify the host name and port that should be used in the links in the email. This has no affect on the email server used or and functionality, it is simply a way to set the host name that this instance of FusionReactor is available on.

As you can see from this example you can also include port numbers.

Send Test Email

This last part of the form is quite useful, if not a little annoying in its implementation. Basically this little button will send a test mail using the entered settings, unfortunately you do need to save the settings prior to clicking this button. This hopefully will be fixed in FR 6.

If you have set up the email settings for your mail server correctly the you will receive an email report from FusionReactor at 00:05 (server time). If you want to change the time the report is sent or the recipients read on.

Advanced Settings

There are a few more settings that can be changed if you want to have the email sent at a different time, or have the report sent to recipients other than those in the default mail settings for the instance. These settings are available in plugin configuration screen, go to FusionReactor -> Plugins -> Active Plugins. Then click on the Configuration button for the FusionReactor Daily Report Plugin, there are not many plugins on this page so should be easy to find.

Firstly, send time. If you want the report to be sent at another time, simply change the “Report Time” field to the time that you want the report sent. Note: this time should be in 24hour format. You should also be aware that this time also indicates the time that the report takes as the end of the day. So if you change the time to be 12:00, the report will be for the time from 12:00 – 12:00.

Next we have recipients, this is fairly straight forward. A comma separated list of email address that the email should be sent to, these recipients are only used for this report. Also note that a blank field indicates that it will use the To Address in the FusionReactor -> Settings page.

No need for the Daily Report?

If you do not want to receive reports from FusionReactor then you can either remove the settings in FusionReactor -> Settings (which will prevent all emails from FusionReactor), or you can disable the plugin from the plugin configuration.

FR6 Reporting Sneak Peak

We received lots of positive feedback to the Daily Report in FusionReactor and we decided to further extend the reporting in the upcoming FusionReactor 6 release.  FR6 will include an improved new Daily Report, as well as a brand new Service Level Report.   Here is a sneak peak of some of the features you can expect.

  • Session activity
  • Improved source details
  • 404 count
  • Outage details Start – end times
  • Durations
  • Reason
  • HTTP response code break down
  • Trend indicators
  • Improved configurations
  • Daily AND weekly summaries !
Preview of FR6 Daily Reports

Getting custom instrumentation and metrics using FusionReactor: Examples with ColdFusion


FusionReactor will simply work out-of-the-box to give you masses of metric data and insight into requests, transactions, queries and resources without adding any additional code to your application.   However, if you want to get even more insight into specific areas of your application, then it’s easy to customize FusionReactor.   This level of customization will enable you to instrument specific parts of your code that FusionReactor (normally) does not track e.g. you can track method calls, web service calls – anything you like.   All this can be achieved by simply adding a few lines of code to instruct FusionReactor to track metrics, add properties to transactions or even create new child transactions around parts of your code.

In this post I will show you how to instrument your ColdFusion code to:

  • Create graphed series
  • Add properties to transactions
  • Create new Transactions

Creating a Graphed Series

The first step in creating a tracked series in FusionReactor is to create an instance of the FusionReactor API, playfully named FRAPI. This requires the use of the ColdFusion createObject call, see below.

Create FRAPI object
<cfset frapiObj = createObject("java", "com.intergral.fusionreactor.api.FRAPI")>
<cfset frapi = frapiObj.getInstance()>

From here all we need do is call the method on the frapi variable to post the metric, see below.

 

Post Float value
<cfset frapi.postNumericAggregateMetricFloat("/series/name", 10.0)>
 As ColdFusion can have some problems with distinguishing float and long primitive values there is also a method that takes a long, see below.
Post long value
 <cfset frapi.postNumericAggregateMetricLong("/series/name", 10)>
 Now both of these methods will take the value and post it to the given series name, in the event that that series does not exist it will be created automatically. These two methods will also create the standard numeric aggregates that are available in FusionReactor (1 Hour, 1 Day and 1 Week), if you do not want this much data from the series then you can use the alternative methods to post data without creating the aggregates.
Non Aggregated metrics
<cfset frapi.postNumericMetricLong("/series/name", 10)>
<cfset frapi.postNumericMetricFloat("/series/name", 10.0)>

The first call to post will create the series and aggregates, so if you first call is to postNumericAggregateMetric.. then the series will have the aggregates.  Similarly if you create the series using the postNumeric. then the series will not have the aggregates, even if a later post is to postNumericAggregate.

 

A Simple Example

Simulate Revenue being generated via sales and display the revenue in a graph within FusionReactor.

<cfloop from=1 to=120 index="j">
   <cfscript>
   frapi.postNumericAggregateMetric("/Revenue", RandRange(100,300));
   Thread.sleep(JavaCast("long",1000));
   </cfscript>
   <cfflush>
</cfloop>

Once you have posted the values to FRAPI you can see the graphs in FusionReactor on the Custom Metrics page. (Metrics -> Custom Metrics) and will be able to access the /Revenue values from the drop down menu.

FRAPI customization in FusionReactor

 

Add Properties to a Transaction

FusionReactor will automatically track lots of ColdFusion metrics, one of the most important is Web Requests. Along with tracking requests, FusionReactor is able to attach properties to requests so you can better diagnose problems later on. To attach a property to a transaction using ColdFusion see the code snippet below.

 

Adding properties to WebRequest
<cfset transaction = frapi.getActiveTransaction()>
<cfset transaction.setProperty("/property/name","StringValue")>

The setProperty method is effectively a map put, and is able to take any object as a value. However the FusionReactor UI is only able to display the value as a string, so it is a good idea to ensure the result of the toString method of the given object is a user friendly string.

It is even possible to use the FusionReactor as a kind of private session store, that is only available for the life time of that request. So similar as above, but by using the getActiveMasterTransaction you can always get the top level transaction on this request. The difference between getActiveMasterTransaction and getActiveTransaction is explained in the next section. With this top level transaction you can put and get properties from it just like a session, but this is only available for this request.

 

Get property from Transaction
<cfset transaction = frapi.getActiveMasterTransaction()>
<cfset prop = transaction.getProperty("/property/name")>

If you do put properties into the request it is important to remember that FusionReactor will keep these requests in memory for some time, depending on settings, so it is NOT ADVISABLE to put large objects into the request properties !

 

Creating new Transactions

As mentioned above, FusionReactor will automatically create many transactions to track WebRequests, JDBC requests, CFHTTP among many more.  Let’s imagine you have a function or section of code that you want to track the performance of.   Using FusionReactor you can wrap this section of code is a custom transaction to visualize the performance inside FusionReactor.   Doing this is very simple, image we have the below CFFunction code.

 

Example CFFunction
<cffunction name="newRandomNumber" access="public" returnType="string" output="false">
<cfset rndObj = createObject("java", "java.util.Random")>
<cfset rnd = rndObj.init()>
<cfset area = rnd.nextInt(99999)>
<cfreturn area>
</cffunction>
 So from this example if we want to track all calls to this function all we need to is add a create and end transaction call.
Instrumented CFFunction
<cffunction name="newRandomNumber" access="public" returnType="string" output="false">
  <cfset frapiObj = createObject("java","com.intergral.fusionreactor.api.FRAPI")>
  <cfset frapi = frapiObj.getInstance()>
  <cfset trans = frapi.createTransaction("newRandomNumber")>
  <cfset rndObj = createObject("java", "java.util.Random")>
  <cfset rnd = rndObj.init()>
  <cfset area = rnd.nextInt(99999)>
  <cfset trans.close()>
  <cfreturn area>
</cffunction>

This code will now create a transaction with the flavour “newRandomNumber”, which will be added as a child transaction to the web request and visible in the FusionReactor UI. Alternatively there is a createTrackedTransaction method that will do the same as the createTransaction but will also create a periodic sampler that will produce a activity and duration graph for the given transaction flavour.

Summary

These three features of FRAPI are a small select sample of the functions available, and offer some unique and powerful options to developers that are looking for ways to track performance and debug code. There are many other methods available via the FRAPI interface many of which are helpful for both tracking performance and debugging errors. For more information on the available methods please review the Java docs.

Keeping it real – excluding the effect of long running requests in FusionReactor



Something that comes up when speaking to FusionReactor customers is the need to handle long running requests.  In FusionReactor as with many APM solutions there is a continuous running aggregate of the average run-time of the web requests.

Unfortunately if you have a single request that has to run for a long time it can cause this number to become skewed; essentially the average run-time of requests can end up being longer than it really is just because of this one request e.g. often a maintenance job run by the system admins, which is not so important when you are interested in real user experience.

Scenario 1 – Excluding a single long running request which is skewing performance metrics

Details

Let us assume you have a running web application, in this instance running on a tomcat server.  Now let’s assume that you have a request that is run via this application as some routine job.   This job typically runs over a minute and has a negative affect on the average run-time of your server.    We would like this request to be ignored by FusionReactor and not included in the metrics calculated, but every other request should continue to be tracked.

Goal

The goal is to eliminate this request from the metrics, and get a better picture of what the overall performance of the server is.

Using this example URL for the job: /JTA/performance/jdbc/jdbc30secondrating.jsp

Steps

FusionReactor has this feature right out of the box, FR has the ability to restrict requests from almost every feature that it offers.  There are a few different ways to go about adding this restriction, the simplest (but not always possible solution) is to simply click the ‘Stop Tracking’ button, next to the request you want to ignore, on the Request -> Activity screen.   This has the disadvantage of requiring the request to be running before it can be removed from the statistics. It also will not affect any statistics that have already been calculated from this request. This approach will only affect that single request, and as such is of limited usefulness when applying it to a routine job.   I mention it here as it is useful when running a job manually that you do not want to be tracked.

The better approach is to simply enter the request details prior to it entering the system.

  1. Go to FusionReactor -> Restrictions
  2. Enter the details of the request that you want to ignore from metrics. (help with settings)

We have some options here, if the request always comes from the same host, we can also add the host name check to the restrictions, this means FusionReactor will only ignore the request if it comes from the matching host name.

Another approach, which is quite a neat feature, is to filter the request based on the query parameters. So if this job is in fact the same end point as some other request, but contains specific query parameters, then we can filter on those, and we can actually add an extra query parameter to the request when it is the job.

For example, if we have the endpoint /JTA/performance/report.jsp, but this request by itself is part of the usual use model of the application. We can actually alter the request to be /JTA/performance/report.jsp?__fr_ignore=true, this should not have any effect on your request, unless you happen to use the query parameter __fr_ignore; which seems unlikely.   So now by changing the “Request” field of the restriction form to include this parameter, and set the “Parameter” field to “Check”, you can make FusionReactor ignore this request when the parameter __fr_ignore=true is sent, and continue to track it when it is not.

I should point out at this point that if you use the “Exact Match” strategy then you will also have to include any other parameters that are part of the request.   Another alternative is to use the “Regular Expression” strategy, covered later.

So now that the restriction is configured, clicking save will add this restriction, visible below the form, in real time, and any new request that match this pattern will be ignored from FusionReactor.

long_req_blog_1

Outcome – we’re keeping it real 🙂

At this point FusionReactor will now be ignoring the request that you have added to the restrictions, and will no longer be included it in the metrics for the server.    This will hopefully improve the rating of the server among your peers as it will now seem that by magic the server is performing better.

 

Scenario 2 – Using regex to exclude multiple tasks affecting your server performance rating

Similar to the previous scenario, but this time we have a whole sub section of the application that is only used by the system administrators to affect changes on the database, or perform clean up tasks.

Details

Lets us imagine that we have a number of administrative tasks, such as account merge, account removal etc.  These are not performed that often, but never the less do take some time.   These requests can then affect the overall statistics of the server, making it seem busier or less efficient than it actually is.

Goal

The goal here is to identify these administrative tasks and remove them from the request tracking.   We can identify these requests as they have the string /system/admin/ in the URL.   This being the root of all the system administrator tasks that we want to ignore.    Once approach would be to enter all the URLs one by one in the same way we did above.  The disadvantage is that if new jobs would be entered, we would need to remember to include the individual URL.  A much better approach is to use the “Regular Expression” strategy to ignore all the requests by using a single rule.

Steps

The way to add this rule is basically the same as the single rule, we went through above. The only real difference here is the use of the “Regular Expression” strategy and the Request actually being the regex and not the URL as it was above.

  1. Again we go to FusionReactor -> Restrictions
  2. Now we set the “Match Strategy” to “Regular Expression”
  3. Enter the regex .*/system/admin/.* into the “Request” field
  4. now simply save the form

You will immediately see the restriction enter the list below the form, and FusionReactor will immediately start ignoring any new request that contain the pattern /system/admin/.

Outcome

We have now, in these very simple steps, removed all system administrator request from being tracked into the FusionReactor statistics for your application.   You will now get a much clearer view of how your application is really performing.

long_req_blog_2

Additional

Regex, or Regular Expressions, are a very powerful tool for any language. However just like many, many things in programming the implementation of regex can vary from language to language.  FusionReactor uses the Java regex engine.    Plenty of documentation on the Java regex exists, here are a few links: FR quick list, Oracle Docs, online Java regex evaluator

How to keep your application / server responding when you’re running out of memory – FusionReactor Survival Strategy


FusionReactor has many great features one of the most overlooked and possibly one of the most powerful is EnGuard Crash Protection (CP).   This feature is able to alert you as well as prevent your servers from falling over by limiting the load based on a variety of criteria.

In this post I will walk you through how to setup the various settings for CP and the benefits of using these features.

Scenario – Application Server is running low on memory

Let us imagine the situation where, for whatever reason, the application server that you are running on is consistently running out of memory. By using FusionReactor’s Crash Protection features we can be alerted to the situation and take steps to keep the system / application operational.   Of course you will be investigating the cause of the memory issue, but in the mean time FusionReactor can buy you the time to ensure that service levels are maintained and you have minimized impact to your customers/business.   By using the FusionReactor’s “WebRequest Memory Protection” feature, you can limit the traffic on your server by either queuing or rejecting requests based on the current JVM memory usage.   FusionReactor can also invoke system garbage collections if we exceed the threshold values, to help reduce the over all memory usage of the application.

Goal

In this situation the goal is to reduce the concurrent requests running on the application when the memory usage exceeds a specific value. What we want to do is make FusionReactor queue requests when the memory usage exceeds 80% for more that 15 seconds.

Steps

Our first action here is to enable the Crash Protection features. This does not require a restart and will take effect immediately.

  • Go to Protection -> Settings
  • Click on “WebRequest Memory Protection”
    1. Change the “WebRequest Memory Protection Threshold” to 80%
    2. Change the “Minimum condition Duration” to 15
    3. Change the “Memory Protection Strategy” to “Queue and Email Notification” or “Queue”
    4. Enable “Automatic Garbage Collection Trigger”
  • Click “Save FusionReactor Settings”
  • CP Blog

If you are using the “Queue and Email Notifications” you will need to enable email notifications under Protection -> Settings -> Email Settings, you will also need valid Email settings in the FusionReactor -> Settings -> Email Settings page.

Results

When the system is setup correctly you will begin to see FusionReactor start queuing requests as they come in. These requests will be queued for 60 seconds, (configurable in the protection settings), before they timeout.    This request queue is nicely displayed in the Request -> Activity screen, clearly showing the time in the queue and the time until the request is rejected.    The request will be served as normal if the memory usage falls below 80% before the request times out.

The requests that are rejected based on the queue timeout, are tracked into a separate screen, Requests -> Rejections, and a summary is available on the WebMetrics page. Additionally the garbage collection metrics are tracked on the Resources -> Garbage Collection page (from FusionReactor 5 and later)

So hopefully at this stage you will have saved your system from collapsing from an out of memory error, kept the server running and bought yourself more time to diagnose the initial cause of the memory issues on the system.     FusionReactor saves the day (AGAIN !).

Advanced Option

In addition to the setting described above the following options are available to improve the effectiveness of FusionReactor Crash Protection.

Garbage Collection

When using the memory protection settings feature, you might have noticed the “Automatic Garbage Collection Trigger”. This feature is a very useful tool if you are experiencing memory issues on your application server. By using this setting you can configure FusionReactor to perform a garbage collection (GC) when the request starts.  As you may be aware performing a garbage collection can be an expensive operation, as such, FusionReactor comes with a rate limiting option. The “Minimum Garbage Collection Interval” setting allows you to set the minimum time that must elapse before FusionReactor will invoke another garbage collection.

EULA V3 – FusionReactor 6

INTERGRAL SOFTWARE END USER LICENSE AGREEMENT (“EULA”)

THE FOLLOWING EULA APPLIES TO FUSIONREACTOR VERSION 6 AND ITS MINOR/MICRO UPDATES ONLY

IMPORTANT: CAREFULLY READ THE FOLLOWING LICENSE AGREEMENT. THIS END USER LICENSE AGREEMENT (“EULA”) IS A LEGAL AGREEMENT BETWEEN YOU (EITHER AN INDIVIDUAL OR, IF PURCHASED OR OTHERWISE ACQUIRED BY OR FOR AN ENTITY, AN ENTITY) AND INTERGRAL. YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT BY SELECTING THE “ACCEPT” OPTION OR DOWNLOADING THE SOFTWARE OR BY INSTALLING, USING, OR COPYING THE SOFTWARE. IF YOU DO NOT AGREE TO BE BOUND BY THESE TERMS THEN DO NOT INSTALL, COPY, DOWNLOAD OR OTHERWISE USE THE SOFTWARE. THIS EULA SHALL APPLY ONLY TO THE SOFTWARE SUPPLIED BY INTERGRAL HEREWITH REGARDLESS OF WHETHER OTHER SOFTWARE IS REFERRED TO OR DESCRIBED HEREIN.

Definitions

“INTERGRAL” means INTERGRAL Information Solutions GmbH and its licensors, if any.

“Developer Version” means a version or edition of the Software to be used only for design, development and evaluation purposes.

“Free Version” means a version or edition of the Software that may have limited features, and may stop operating after a given amount of time.

“Trial Version” means a version or edition of the Software to be used only for review, demonstration and evaluation purposes. The Trial Version may have limited features, and may stop operating after a given amount of time.

“Full Version” means a version or edition of the Software that is not a Developer Version nor a Trial Version of the Software nor a Free Version of the Software.

“Accessible Code” means source code that is unprotected and accessible.

“Protected Code” means any source code that is protected against access by INTERGRAL or a third party and is not accessible under this EULA.

“Fees” mean all fees and expenses payable by the Licensee to INTERGRAL in acquiring the Software and as applicable any Subscription or User Licenses.

“Software” means only the INTERGRAL software and third party software programs, in each case, supplied by INTERGRAL together with this EULA, including its Accessible Code and Protected Code and any corresponding documentation, online or electronic documentation, printed materials, and associated media. Any updates to such Software that you are entitled to receive and that have been provided to you by INTERGRAL shall also mean Software for purposes of this Agreement.

License Grant
The Software is subject to the terms and conditions of this Agreement. INTERGRAL hereby grants, and you accept, the right and license to install and use the Software provided that you do not use, copy, or install the Software on more than the number of computers permitted by license, or permit the use, copying, or installation by more users on more computers than the number permitted by the license.

You may make one copy of the Software in machine-readable form solely for backup purposes. You must reproduce on any such copy all copyright notices and any other proprietary legends on the original copy of the Software.

The Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. INTERGRAL reserves all intellectual property rights, including copyrights and trademark rights. Your license rights under this EULA are non-exclusive.

License Restrictions

Restrictions on Use
Other than as expressly set forth above, you may not make or distribute copies of the Software, or electronically transfer the Software from one computer to another or over a network.

You may not decompile, “reverse-engineer”, disassemble, or otherwise attempt to derive the source code for the Software.

You may not use the database portion of the Software in connection with any software other than the Software.

You shall not (A) in the aggregate, install or use more than one copy of the Trial Version of the Software, (B) download the Trial Version of the Software under more than one username, (C) alter the contents of a hard drive or computer system to enable the use of the Trial Version of the Software for an aggregate period in excess of the trial period for one license to such Trial Version, (D) disclose the results of software performance benchmarks obtained using the Trial Version to any third party without INTERGRAL’s prior written consent, (E) use the Trial Version for any application deployment or ultimate production purpose, or (F) use the Trial Version of the Software for a purpose other than the sole purpose of determining whether to purchase a license to a Full Version or a Developer Version of the software; provided, however, notwithstanding the foregoing, you are strictly prohibited from installing or using the Trial Version of the Software for any commercial training purpose.

You shall not use the Developer Version for any application deployment in a live or stand-by production environment or staging environment, in each case, including, without limitation, in any environment accessed by application end- users, including, but not limited to, servers, workstations, kiosks, and mobile computers. You shall not use the Software to develop any application having the same primary function as the Software.

Subject to the terms and conditions of this Agreement you must at all times ensure that the Software is not used for rental, timesharing, subscription service, hosting, outsourcing, or as part of a service or consulting practice to a third-party, without first obtaining the express written consent of INTERGRAL.

Restrictions on Alteration
You may not alter, merge, adapt, translate or modify the Software or create any derivative work of the Software or its accompanying documentation. Derivative works include but are not limited to translations. You may not alter any files or libraries in any portion of the Software. You may not reproduce the database portion or create any tables or reports relating to the database portion.

Restrictions on Copying
You may not copy any part of the Software except to the extent that licensed use inherently demands the creation of a temporary copy stored in computer memory and not permanently affixed on storage medium. You may make one archival copy which must be stored on a medium other than a computer hard drive.

Restrictions on Transfer
Without first obtaining the express written consent of INTERGRAL, you may not assign your rights and obligations under this Agreement, or redistribute, encumber, sell, rent, lease, sublicense, or otherwise transfer your rights to the Software. You may not sell or transfer any Software purchased under a volume discount. You may not sell or transfer any Trial Version or Free Version of the Software.

Permitted Fixes
Notwithstanding anything else in this EULA but subject to the terms and conditions contained herein, the Licensee is permitted to modify the Accessible Code in the Software to develop bug fixes, customizations or additional features solely for their internal purposes of using the Software.

Upgrades
If this copy of the Software is an upgrade from an earlier version of the Software, it is provided to you on a license exchange basis. You agree by your installation and use of this copy of the Software to voluntarily terminate your EULA with respect to such prior license to the Software and that you will not continue to install or use such prior license of the Software or transfer it to another person or entity.

Ownership
The foregoing grants of rights give you limited license to use the Software. Except as expressly provided in this Agreement, INTERGRAL remain the owner of all right, title and interest in the Software. All rights not specifically granted in this EULA are reserved by INTERGRAL.

Fees
The Licensee must pay all Fees by their due date. Failure to pay Fees by the due date will result in the immediate termination of the licenses granted under this EULA.

You are responsible for reviewing the Software’s website for changes in the fees, including, but not limited to, subscription fees and payment terms.

TERMINATION
Without prejudice to any other rights and in addition to any other termination rights in this EULA, INTERGRAL may terminate this EULA if the Licensee fails to comply with the terms and conditions of this EULA. Immediately upon termination of a license granted under this EULA, the Licensee must at its own cost remove all copies of the Software including all Accessible Code from its computer systems and provide INTERGRAL with written certification that it has destroyed all copies of the Software including all Accessible Code in its possession, custody or control.

LIMITED WARRANTY AND DISCLAIMER
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN THE JURISDICTION IN WHICH THE SOFTWARE IS PROVIDED, INTERGRAL PROVIDES THE SOFTWARE AS IS AND WITH ALL FAULTS, AND EXCEPT OTHERWISE EXPRESSLY CONTAINED IN THE EULA, HEREBY DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY.

INTERGRAL MAKES NO WARRANTY THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR OPERATE UNDER YOUR SPECIFIC CONDITIONS OF USE. INTERGRAL MAKES NO WARRANTY THAT OPERATION OF THE SOFTWARE WILL BE SECURE, ERROR FREE, OR FREE FROM INTERRUPTION. YOU MUST DETERMINE WHETHER THE SOFTWARE SUFFICIENTLY MEETS YOUR REQUIREMENTS FOR SECURITY AND UNINTERRUPTABILITY. YOU BEAR SOLE RESPONSIBILITY AND ALL LIABILITY FOR ANY LOSS INCURRED DUE TO FAILURE OF THE SOFTWARE TO MEET YOUR REQUIREMENTS. INTERGRAL WILL NOT, UNDER ANY CIRCUMSTANCES, BE RESPONSIBLE OR LIABLE FOR THE LOSS OF DATA ON ANY COMPUTER OR INFORMATION STORAGE DEVICE. INTERGRAL DISCLAIM ALL OTHER WARRANTIES AND REPRESENTATIONS, WHETHER EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING THE WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE IS NOT DESIGNED, INTENDED OR LICENSED FOR USE IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL- SAFE CONTROLS, INCLUDING WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR WEAPONS SYSTEMS. INTERGRAL SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSES.

INTERGRAL PROVIDES NO REMEDIES OR WARRANTIES, WHETHER EXPRESS OR IMPLIED, FOR THE TRIAL VERSION AND THE FREE VERSION OF THE SOFTWARE. THE TRIAL VERSION AND THE FREE VERSION OF THE SOFTWARE ARE PROVIDED “AS IS” AND WITH ALL FAULTS AND HEREBY DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY.

UNLESS OTHERWISE EXPLICITLY AGREED TO IN WRITING BY INTERGRAL, INTERGRAL MAKES NO OTHER WARRANTIES, EXPRESS OR IMPLIED, IN FACT OR IN LAW, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OTHER THAN AS SET FORTH IN THIS AGREEMENT OR IN THE LIMITED WARRANTY DOCUMENTS PROVIDED WITH THE SOFTWARE.

IF APPLICABLE LAW REQUIRES ANY WARRANTIES WITH RESPECT TO THE SOFTWARE, ALL SUCH WARRANTIES ARE LIMITED IN DURATION TO THIRTY (30) DAYS FROM THE DATE OF DELIVERY.

NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY INTERGRAL, ITS DEALERS, DISTRIBUTORS, AGENTS OR EMPLOYEES SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF ANY WARRANTY PROVIDED HEREIN.

LIMITED REMEDY
YOUR REMEDY FOR A BREACH OF THIS AGREEMENT OR OF ANY WARRANTY INCLUDED IN THIS AGREEMENT IS THE CORRECTION OR REPLACEMENT OF THE SOFTWARE. SELECTION OF WHETHER TO CORRECT OR REPLACE SHALL BE SOLELY AT THE DISCRETION OF INTERGRAL. INTERGRAL RESERVES THE RIGHT TO SUBSTITUTE A FUNCTIONALLY EQUIVALENT COPY OF THE SOFTWARE AS A REPLACEMENT. IF INTERGRAL IS UNABLE TO PROVIDE A REPLACEMENT OR SUBSTITUTE SOFTWARE OR CORRECTIONS TO THE SOFTWARE, YOUR SOLE ALTERNATE REMEDY SHALL BE A REFUND OF THE PURCHASE PRICE FOR THE SOFTWARE EXCLUSIVE OF ANY COSTS FOR SHIPPING AND HANDLING.

ANY CLAIM MUST BE MADE WITHIN THE APPLICABLE WARRANTY PERIOD. ALL WARRANTIES COVER ONLY DEFECTS ARISING UNDER NORMAL USE AND DO NOT INCLUDE MALFUNCTIONS OR FAILURE RESULTING FROM MISUSE, ABUSE, NEGLECT, ALTERATION, MISAPPLICATION, PROBLEMS WITH DATA NETWORKS, PROBLEMS WITH ELECTRICAL POWER, ACTS OF NATURE, UNUSUAL TEMPERATURES OR HUMIDITY, IMPROPER INSTALLATION, DAMAGE TO MEDIA OR DAMAGE DETERMINED BY INTERGRAL TO HAVE BEEN CAUSED BY YOU. ALL LIMITED WARRANTIES ON THE SOFTWARE ARE GRANTED ONLY TO YOU AND ARE NON- TRANSFERABLE.

YOU AGREE TO INDEMNIFY AND HOLD INTERGRAL HARMLESS FROM ALL CLAIMS, JUDGMENTS, LIABILITIES, EXPENSES, OR COSTS ARISING FROM YOUR BREACH OF THIS AGREEMENT AND/OR ACTS OR OMISSIONS. THIS REMEDY IS THE SOLE AND EXCLUSIVE REMEDY AVAILABLE TO YOU FOR BREACH OF EXPRESS OR IMPLIED WARRANTIES WITH RESPECT TO THE SOFTWARE AND RELATED DOCUMENTATION.

LIMITATION OF LIABILITY
UNDER NO CIRCUMSTANCES SHALL INTERGRAL, ITS DIRECTORS, OFFICERS, EMPLOYEES AND AGENTS BE LIABLE TO YOU OR ANY OTHER PARTY FOR INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, PUNITIVE, OR EXEMPLARY DAMAGES OF ANY KIND (INCLUDING LOST REVENUES OR PROFITS OR LOSS OF BUSINESS) RESULTING FROM THIS AGREEMENT, OR FROM THE FURNISHING, PERFORMANCE, INSTALLATION, OR USE OF THE SOFTWARE, WHETHER DUE TO A BREACH OF CONTRACT, BREACH OF WARRANTY, OR THE NEGLIGENCE OF INTERGRAL OR ANY OTHER PARTY, EVEN IF INTERGRAL IS ADVISED BEFOREHAND OF THE POSSIBILITY OF SUCH DAMAGES. TO THE EXTENT THAT THE APPLICABLE JURISDICTION LIMITS INTERGRAL’S ABILITY TO DISCLAIM ANY IMPLIED WARRANTIES, THIS DISCLAIMER SHALL BE EFFECTIVE TO THE MAXIMUM EXTENT PERMITTED. INTERGRAL’S LIABILITY UNDER THIS AGREEMENT WILL NOT, IN ANY EVENT, EXCEED THE LICENSE FEES YOU PAID FOR THE SOFTWARE, IF ANY.

Indemnification
To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless INTERGRAL, its directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the Software, (b) any application you develop on the Software that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non- compliance by you with this License Agreement.

Confidentiality
The Software contains trade secrets and proprietary know-how that belong to INTERGRAL and it is being made available to you in strict confidence. ANY USE OR DISCLOSURE OF THE SOFTWARE, OR OF ITS ALGORITHMS, PROTOCOLS OR INTERFACES, OTHER THAN IN STRICT ACCORDANCE WITH THIS LICENSE AGREEMENT, MAY BE ACTIONABLE AS A VIOLATION OF OUR TRADE SECRET RIGHTS.

Publicity Rights
Licensee grants INTERGRAL the right to include Licensee as a customer in Software promotional material. Licensee can deny INTERGRAL this right at any time by submitting a written request via email to SALES@INTERGRAL.COM, requesting to be excluded from Software promotional material. Requests made after purchasing may take thirty (30) calendar days to process.

Use of Decompiler
The Software includes decompiling functionality (“Decompiler”) that enables reproducing source code from the original binary code. You hereby acknowledge that the binary code and source code may be protected by copyright, trademark and other other laws which may prohibit you from decompiling them and/or using Decompiler. Before using Decompiler, you should make sure that the decompilation is not prohibited by any applicable license agreement of the application and/or original binary code (except to the extent that you may be expressly permitted under applicable law) or that you have obtained permission to decompile the code from the copyright owner. Using Decompiler is entirely optional. INTERGRAL does neither encourage nor condone the use of the Decompiler and disclaims any liability for your use of Decompiler in violation of applicable laws.

Use of Debugger
The Software includes debugging functionality (“Debugger”) that enables debugging programs that may contain binary code, source code and intellectual property protected by copyright, trademark, patent and other other laws which may prohibit you from debugging them and/or using Debugger. Before using Debugger, you should make sure that debugging is not prohibited by any applicable license agreement of the program and/or original binary code (except to the extent that you may be expressly permitted under applicable law), or by other protecting laws, or that you have obtained permission to debug the program from all legal protection owner(s). Using Debugger is entirely optional. INTERGRAL does neither encourage nor condone the use of the Debugger and disclaims any liability for your use of Debugger in violation of applicable laws.

Third Party Software
Any software provided along with the Software that is associated with a separate license agreement is licensed to you under the terms of that license agreement. This license does not apply to those portions of the Software. Copies of these third party licenses are included in all copies of the Software. By accepting this EULA, you are also accepting the additional terms.

RESTRICTIONS
United States: If the Software is acquired by the Licensee in the United States, the Licensee acknowledges: (a) the Software is subject to U.S. export jurisdiction and agrees to comply with all applicable international and national laws that apply to the Software, including the U.S. Export Administration Regulations, as well as end-user, end- use, and destination restrictions issued by U.S. and other governments and notwithstanding the above; and (b) the provisions of the USA Uniform Computer Information Transaction Act do not apply to this EULA.

General: The export of the Software from the country of original purchase may be subject to control or restriction by applicable local law. Licensee is solely responsible for determining the existence and application of any such law to any proposed export and for obtaining any needed authorization. Licensee agrees not to export the Software from any country in violation of applicable legal restrictions on such export.

Governing Law, Jurisdiction and Costs
This EULA is governed by the laws of Baden-Wuerttemberg, Germany without regard to Baden-Wuerttemberg’s conflict or choice of law provisions. Exclusive jurisdiction and place of performance is Boeblingen, Germany, as long as permitted by applicable law. The United Nations Convention for the International Sale of Goods shall not apply.

Changes to the License Agreement
INTERGRAL may make changes to the License Agreement as it distributes new versions of the Software. When these changes are made, INTERGRAL will make a new version of the License Agreement available on the website where the Software is made available.

Entire Agreement and Severability
This EULA is the entire agreement between INTERGRAL and you, and supersedes all prior or contemporaneous agreements or understandings, whether oral or written any other communications or advertising with respect to the Software; this EULA may be modified only by written agreement signed by authorized representatives of both you and INTERGRAL. No INTERGRAL dealer or agent is authorized to make any amendment to this EULA.

If any provision of this EULA shall be held to be invalid or unenforceable, the remainder of this EULA shall remain in full force and effect. All rights not expressly granted in this agreement are retained by INTERGRAL. To the extent any express or implied restrictions are not permitted by applicable laws, these express or implied restrictions shall remain in force and effect to the maximum extent permitted by such applicable laws. The failure or delay of INTERGRAL to exercise any of its rights under this EULA or upon any breach of this EULA shall not be deemed a waiver of those rights or of the breach. You agree that any varying or additional terms contained in any purchase order or other written notification or document issued by you in relation to the Software licensed hereunder shall be of no effect.

INTERGRAL and other trademarks contained in the Software are trademarks or registered trademarks of INTERGRAL Information Solutions GmbH. Third party trademarks, trade names, product names and logos may be the trademarks or registered trademarks of their respective owners. You may not remove or alter any trademark, trade names, product names, logo, copyright or other proprietary notices, legends, symbols or labels in the Software. This EULA does not authorize you to use INTERGRAL’s or its licensors’ names or any of their respective trademarks.

[FR-2832] How to add a FusionReactor Plugin to your FusionReactor installation

Description

Description

This article provides a set of instructions for adding FusionReactor plugins to existing FusionReactor instances and to the FusionReactor installation so that instances created in the future contain the plugin. This article provides a use case scenario, that scenario is how to add the Notification Generator plugin.

Adding a plugin to a FusionReactor instance

As mentioned in the Description this article provides a use case scenario.

1) Obtain the plugin from the FusionReactor plugins download page, click here to be taken to the page. For this scenario we would download the FusionReactor Notification Generator plugin.
2) Stop the server that contains the instance of FusionReactor that you want to add the plugin to.
3) Copy the plugin that you downloaded in step 1 into the FusionReactor instance’s plugins directory. The plugins directory is located in <FusionReactor_Home>/instance/<Instance_Name>/plugins. For this scenario it is located at C:\FusionReactor\instance\cfusion.cfmx10.HP-Pdv6-Laptop\plugins.

4) If you are running FusionReactor on a UNIX based machine (Linux, Solaris, MAC or generic UNIX) then you need to follow this step, if you are running FusionReactor on a Windows machine you can skip to step 5. When you copy over the plugin to your plugins directory, the plugin may not be owned by the same user and group as the other plugins. For example all your plugins may be owned by nobody and the plugin you downloaded may be owned by root. If your server is run as nobody then it may run into some problems in the future, so it is important that you follow this step. If it is owned by the same user and group as your other plugins then you can skip this step.

To allow the plugin to work in your environment, change the user and group of the plugin to be that of the other plugins. For our scenario this is how it would look.

Check to see if the plugin is owned by a different user and group to the other plugins.


The plugin, fr-notification-generator-plugin-1.0.0.jar, is owned by user root and group root

Change the permissions of the plugin by using the chown command.


The plugin, fr-notification-generator-plugin-1.0.0.jar, is now owned by user vmuser and group bin





5) Start your server back up and your plugin will be loaded up.
6) See Checking that your plugin has been correctly loaded into your FusionReactor environment to check if your plugin has been correctly loaded.

Configuring your environment so that the plugin is added to future FusionReactor instances

As mentioned in the Description this article provides a use case scenario.

1) Obtain the plugin from the FusionReactor plugins download page, click here to be taken to the page. For this scenario we would download the FusionReactor Notification Generator plugin.
2) Copy the plugin that you downloaded in step 1 into the plugins-deploy directory in FusionReactor. The plugins-deploy directory is located in <FusionReactor_Home>/etc/plugins-deploy. For this scenario it is located at C:\FusionReactor\etc\plugins-deploy.
3) If you are running FusionReactor on a UNIX based machine (Linux, Solaris, MAC or Generic UNIX) then you need to follow this step, if you are running FusionReactor on a Windows machine you can skip to step 4. When you copy over the plugin to your plugins-deploy directory it may not be owned by the same user and group as the other plugins. For example all the plugins may be owned by nobody and the plugin you downloaded may be owned by root. When you use FRAM to create a FusionReactor instance it copies the plugins from the plugins-deploy directory to the plugins directory of the newly created instance. If FRAM is running as nobody and the newly added plugin is owned by root then it will not be able to copy over the plugin when an instance is added. Simply change the user and group of the plugin to be that of the other plugins. Step 4 in the Adding a plugin to a FusionReactor instance section explains in detail how to do this.
4) Whenever a FusonReactor instance is created, it will come bundled with the newly added plugin.
5) See Checking that your plugin has been correctly loaded into your FusionReactor environment to check if the plugin has been correctly loaded into your newly created FusionReactor instance.

Checking that your plugin has been correctly loaded into your FusionReactor environment

1) Access the FusionReactor instance that contains the newly added plugin.
2) Navigate to Plugins > All Bundles
3) The All Bundles page lists all the FusionReactor bundles. A plugin is a bundle so it will be listed on here. Locate your bundle in the list and check that the status is listed as Active. If this is true then the plugin has successfully been loaded.
4) If your plugin is not listed as Active or it isn’t listed at all check the OSGi Log (Plugins > OSGi Log) for clues as to what went wrong. Also review all the steps you performed. It is a common mistake to add the plugin to the wrong FusionReactor instance.


The Notification Generator plugin was successfully added


How to use the Notification Generator Plugin.

See the FusionReactor Notification Generator Plugin documentation.

Issue Details

Type: DevNet
Issue Number: FR-2832
Components: Documentation
Environment:
Resolution: Unresolved
Added: 28/06/2012 15:34:18
Affects Version:
Fixed Version: 5.0.doc
Server:
Platform:
Related Issues: None

[frs-233] FusionReactor Nagios Plugin

FusionReactor Nagios Plugin

What is Nagios?

"Nagios is an enterprise-class monitoring solution for hosts, services, and networks released under an Open Source license."

Source: http://www.nagios.org, March 12th 2009

Many companies use Nagios throughout the enterprise to alert them of operational abnormalities. This plugin allows you leverage the unique monitoring capabilities of FusionReactor from within your existing Nagios environment.

Nagios Exchange

Plugin Details

This is a Perl plugin for the Nagios monitoring system to allow monitoring of your J2EE application through the FusionReactor software.

You can monitor & track high level metrics (instance CPU, heap memory, JDBC calls, average request time, etc) from within Nagios. If/When an issue is alerted from Nagios, you can use FusionReactor to investigate further.

Monitoring ColdFusion with Nagios

FusionReactor can monitor any type of J2EE server. ColdFusion runs on a J2EE server meaning that you can monitor your ColdFusion application with Nagios using FusionReactor and this plugin.

You can also monitor your Railo server with Nagios or OpenBD (Open BlueDragon) using this Nagios plugin.

Requirements

System to be monitored (J2EE server)

  • FusionReactor Enterprise Edition

Monitoring Host (Nagios server)

The following modules can easily be installed via CPAN. Further instructions are available in the documentation:

  • Nagios::Plugin
  • File::Basename
  • LWP::UserAgent
  • Digest::MD5
  • MIME::Base64
  • XML::XPath
  • XML::XPath::XMLParse

Latest Version

Latest Stable: Nagios Plugin 1.0

Download
Documentation

Changelog

1.0 – Initial release

Issue Details

Type: DevNet
Issue Number: FRS-233
Components: Compression, Content Filters, CPU + Memory, Crash Protection, Enterprise Dashboard, FR Enterprise Dashboard Desktop Application, FusionReactor Settings, Installer, JDBC, License + Activation, Logging, Metrics, Request Managment, Thread Management
Environment:
Resolution: Fixed
Last Updated: 25/Aug/15 4:32 PM
Affects Version:
Fixed Version: 1.0, 2.0, 2.0.3, 2.0.4, 3.0, 3.0.1, 3.5, Pending
Server:
Platform: Windows XP, Windows 2000, Windows 2003, Linux, MacOS, Solaris, Windows Vista, Windows x64, AIX, Windows 7, Windows 2008
Related Issues:

EULA V2 – FusionReactor 5

INTERGRAL SOFTWARE END USER LICENSE AGREEMENT (“EULA”)

THE FOLLOWING EULA APPLIES TO FUSIONREACTOR VERSION 5 AND ITS MINOR/MICRO UPDATES ONLY

IMPORTANT: CAREFULLY READ THE FOLLOWING LICENSE AGREEMENT. THIS
END USER LICENSE AGREEMENT (“EULA”) IS A LEGAL AGREEMENT BETWEEN
YOU (EITHER AN INDIVIDUAL OR, IF PURCHASED OR OTHERWISE ACQUIRED
BY OR FOR AN ENTITY, AN ENTITY) AND INTERGRAL. YOU ACCEPT AND
AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT BY SELECTING THE
“ACCEPT” OPTION OR DOWNLOADING THE SOFTWARE OR BY INSTALLING,
USING, OR COPYING THE SOFTWARE. IF YOU DO NOT AGREE TO BE BOUND
BY THESE TERMS THEN DO NOT INSTALL, COPY, DOWNLOAD OR OTHERWISE
USE THE SOFTWARE. THIS EULA SHALL APPLY ONLY TO THE SOFTWARE
SUPPLIED BY INTERGRAL HEREWITH REGARDLESS OF WHETHER OTHER
SOFTWARE IS REFERRED TO OR DESCRIBED HEREIN.

Definitions

“INTERGRAL” means INTERGRAL Information Solutions GmbH and its
licensors, if any.

“Developer Version” means a version or edition of the Software to
be used only for design, development and evaluation purposes.

“Free Version” means a version or edition of the Software that
may have limited features, and may stop operating after a given
amount of time.

“Trial Version” means a version or edition of the Software to be
used only for review, demonstration and evaluation purposes. The
Trial Version may have limited features, and may stop operating
after a given amount of time.

“Full Version” means a version or edition of the Software that is
not a Developer Version nor a Trial Version of the Software nor a
Free Version of the Software.

“Accessible Code” means source code that is unprotected and
accessible.

“Protected Code” means any source code that is protected against
access by INTERGRAL or a third party and is not accessible under
this EULA.

“Fees” mean all fees and expenses payable by the Licensee to
INTERGRAL in acquiring the Software and as applicable any
Subscription or User Licenses.

“Software” means only the INTERGRAL software and third party
software programs, in each case, supplied by INTERGRAL together
with this EULA, including its Accessible Code and Protected Code
and any corresponding documentation, online or electronic
documentation, printed materials, and associated media. Any
updates to such Software that you are entitled to receive and
that have been provided to you by INTERGRAL shall also mean
Software for purposes of this Agreement.

License Grant
The Software is subject to the terms and conditions of this
Agreement. INTERGRAL hereby grants, and you accept, the right and
license to install and use the Software provided that you do not
use, copy, or install the Software on more than the number of
computers permitted by license, or permit the use, copying, or
installation by more users on more computers than the number
permitted by the license.

You may make one copy of the Software in machine-readable form
solely for backup purposes. You must reproduce on any such copy
all copyright notices and any other proprietary legends on the
original copy of the Software.

The Software is protected by copyright laws and international
copyright treaties, as well as other intellectual property laws
and treaties. INTERGRAL reserves all intellectual property
rights, including copyrights and trademark rights. Your license
rights under this EULA are non-exclusive.

License Restrictions

Restrictions on Use
Other than as expressly set forth above, you may not make or
distribute copies of the Software, or electronically transfer the
Software from one computer to another or over a network.

You may not decompile, “reverse-engineer”, disassemble, or
otherwise attempt to derive the source code for the Software.

You may not use the database portion of the Software in
connection with any software other than the Software.

You shall not (A) in the aggregate, install or use more than one
copy of the Trial Version of the Software, (B) download the Trial
Version of the Software under more than one username, (C) alter
the contents of a hard drive or computer system to enable the use
of the Trial Version of the Software for an aggregate period in
excess of the trial period for one license to such Trial Version,
(D) disclose the results of software performance benchmarks
obtained using the Trial Version to any third party without
INTERGRAL’s prior written consent, (E) use the Trial Version for
any application deployment or ultimate production purpose, or (F)
use the Trial Version of the Software for a purpose other than
the sole purpose of determining whether to purchase a license to
a Full Version or a Developer Version of the software; provided,
however, notwithstanding the foregoing, you are strictly
prohibited from installing or using the Trial Version of the
Software for any commercial training purpose.

You shall not use the Developer Version for any application
deployment in a live or stand-by production environment or
staging environment, in each case, including, without limitation,
in any environment accessed by application end- users, including,
but not limited to, servers, workstations, kiosks, and mobile
computers. You shall not use the Software to develop any
application having the same primary function as the Software.

Subject to the terms and conditions of this Agreement you must at
all times ensure that the Software is not used for rental,
timesharing, subscription service, hosting, outsourcing, or as
part of a service or consulting practice to a third-party,
without first obtaining the express written consent of INTERGRAL.

Restrictions on Alteration
You may not alter, merge, adapt, translate or modify the Software
or create any derivative work of the Software or its accompanying
documentation. Derivative works include but are not limited to
translations. You may not alter any files or libraries in any
portion of the Software. You may not reproduce the database
portion or create any tables or reports relating to the database
portion.

Restrictions on Copying
You may not copy any part of the Software except to the extent
that licensed use inherently demands the creation of a temporary
copy stored in computer memory and not permanently affixed on
storage medium. You may make one archival copy which must be
stored on a medium other than a computer hard drive.

Restrictions on Transfer
Without first obtaining the express written consent of INTERGRAL,
you may not assign your rights and obligations under this
Agreement, or redistribute, encumber, sell, rent, lease,
sublicense, or otherwise transfer your rights to the Software.
You may not sell or transfer any Software purchased under a
volume discount. You may not sell or transfer any Trial Version
or Free Version of the Software.

Permitted Fixes
Notwithstanding anything else in this EULA but subject to the
terms and conditions contained herein, the Licensee is permitted
to modify the Accessible Code in the Software to develop bug
fixes, customizations or additional features solely for their
internal purposes of using the Software.

Upgrades
If this copy of the Software is an upgrade from an earlier
version of the Software, it is provided to you on a license
exchange basis. You agree by your installation and use of this
copy of the Software to voluntarily terminate your EULA with
respect to such prior license to the Software and that you will
not continue to install or use such prior license of the Software
or transfer it to another person or entity.

Ownership
The foregoing grants of rights give you limited license to use
the Software. Except as expressly provided in this Agreement,
INTERGRAL remain the owner of all right, title and interest in
the Software. All rights not specifically granted in this EULA
are reserved by INTERGRAL.

Fees
The Licensee must pay all Fees by their due date. Failure to pay
Fees by the due date will result in the immediate termination of
the licenses granted under this EULA.

You are responsible for reviewing the Software’s website for
changes in the fees, including, but not limited to, subscription
fees and payment terms.

TERMINATION
Without prejudice to any other rights and in addition to any
other termination rights in this EULA, INTERGRAL may terminate
this EULA if the Licensee fails to comply with the terms and
conditions of this EULA. Immediately upon termination of a
license granted under this EULA, the Licensee must at its own
cost remove all copies of the Software including all Accessible
Code from its computer systems and provide INTERGRAL with written
certification that it has destroyed all copies of the Software
including all Accessible Code in its possession, custody or
control.

LIMITED WARRANTY AND DISCLAIMER
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN THE
JURISDICTION IN WHICH THE SOFTWARE IS PROVIDED, INTERGRAL
PROVIDES THE SOFTWARE AS IS AND WITH ALL FAULTS, AND EXCEPT
OTHERWISE EXPRESSLY CONTAINED IN THE EULA, HEREBY DISCLAIM ALL
OTHER WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR
STATUTORY.

INTERGRAL MAKES NO WARRANTY THAT THE SOFTWARE WILL MEET YOUR
REQUIREMENTS OR OPERATE UNDER YOUR SPECIFIC CONDITIONS OF USE.
INTERGRAL MAKES NO WARRANTY THAT OPERATION OF THE SOFTWARE WILL
BE SECURE, ERROR FREE, OR FREE FROM INTERRUPTION. YOU MUST
DETERMINE WHETHER THE SOFTWARE SUFFICIENTLY MEETS YOUR
REQUIREMENTS FOR SECURITY AND UNINTERRUPTABILITY. YOU BEAR SOLE
RESPONSIBILITY AND ALL LIABILITY FOR ANY LOSS INCURRED DUE TO
FAILURE OF THE SOFTWARE TO MEET YOUR REQUIREMENTS. INTERGRAL WILL
NOT, UNDER ANY CIRCUMSTANCES, BE RESPONSIBLE OR LIABLE FOR THE
LOSS OF DATA ON ANY COMPUTER OR INFORMATION STORAGE DEVICE.
INTERGRAL DISCLAIM ALL OTHER WARRANTIES AND REPRESENTATIONS,
WHETHER EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING THE WARRANTIES
OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE
SOFTWARE IS NOT DESIGNED, INTENDED OR LICENSED FOR USE IN
HAZARDOUS ENVIRONMENTS REQUIRING FAIL- SAFE CONTROLS, INCLUDING
WITHOUT LIMITATION, THE DESIGN, CONSTRUCTION, MAINTENANCE OR
OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR
COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, AND LIFE SUPPORT OR
WEAPONS SYSTEMS. INTERGRAL SPECIFICALLY DISCLAIMS ANY EXPRESS OR
IMPLIED WARRANTY OF FITNESS FOR SUCH PURPOSES.

INTERGRAL PROVIDES NO REMEDIES OR WARRANTIES, WHETHER EXPRESS OR
IMPLIED, FOR THE TRIAL VERSION AND THE FREE VERSION OF THE
SOFTWARE. THE TRIAL VERSION AND THE FREE VERSION OF THE SOFTWARE
ARE PROVIDED “AS IS” AND WITH ALL FAULTS AND HEREBY DISCLAIM ALL
OTHER WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR
STATUTORY.

UNLESS OTHERWISE EXPLICITLY AGREED TO IN WRITING BY INTERGRAL,
INTERGRAL MAKES NO OTHER WARRANTIES, EXPRESS OR IMPLIED, IN FACT
OR IN LAW, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES
OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OTHER THAN
AS SET FORTH IN THIS AGREEMENT OR IN THE LIMITED WARRANTY
DOCUMENTS PROVIDED WITH THE SOFTWARE.

IF APPLICABLE LAW REQUIRES ANY WARRANTIES WITH RESPECT TO THE
SOFTWARE, ALL SUCH WARRANTIES ARE LIMITED IN DURATION TO THIRTY
(30) DAYS FROM THE DATE OF DELIVERY.

NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY INTERGRAL, ITS
DEALERS, DISTRIBUTORS, AGENTS OR EMPLOYEES SHALL CREATE A
WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF ANY WARRANTY
PROVIDED HEREIN.

LIMITED REMEDY
YOUR REMEDY FOR A BREACH OF THIS AGREEMENT OR OF ANY WARRANTY
INCLUDED IN THIS AGREEMENT IS THE CORRECTION OR REPLACEMENT OF
THE SOFTWARE. SELECTION OF WHETHER TO CORRECT OR REPLACE SHALL BE
SOLELY AT THE DISCRETION OF INTERGRAL. INTERGRAL RESERVES THE
RIGHT TO SUBSTITUTE A FUNCTIONALLY EQUIVALENT COPY OF THE
SOFTWARE AS A REPLACEMENT. IF INTERGRAL IS UNABLE TO PROVIDE A
REPLACEMENT OR SUBSTITUTE SOFTWARE OR CORRECTIONS TO THE
SOFTWARE, YOUR SOLE ALTERNATE REMEDY SHALL BE A REFUND OF THE
PURCHASE PRICE FOR THE SOFTWARE EXCLUSIVE OF ANY COSTS FOR
SHIPPING AND HANDLING.

ANY CLAIM MUST BE MADE WITHIN THE APPLICABLE WARRANTY PERIOD. ALL
WARRANTIES COVER ONLY DEFECTS ARISING UNDER NORMAL USE AND DO NOT
INCLUDE MALFUNCTIONS OR FAILURE RESULTING FROM MISUSE, ABUSE,
NEGLECT, ALTERATION, MISAPPLICATION, PROBLEMS WITH DATA NETWORKS,
PROBLEMS WITH ELECTRICAL POWER, ACTS OF NATURE, UNUSUAL
TEMPERATURES OR HUMIDITY, IMPROPER INSTALLATION, DAMAGE TO MEDIA
OR DAMAGE DETERMINED BY INTERGRAL TO HAVE BEEN CAUSED BY YOU. ALL
LIMITED WARRANTIES ON THE SOFTWARE ARE GRANTED ONLY TO YOU AND
ARE NON- TRANSFERABLE.

YOU AGREE TO INDEMNIFY AND HOLD INTERGRAL HARMLESS FROM ALL
CLAIMS, JUDGMENTS, LIABILITIES, EXPENSES, OR COSTS ARISING FROM
YOUR BREACH OF THIS AGREEMENT AND/OR ACTS OR OMISSIONS. THIS
REMEDY IS THE SOLE AND EXCLUSIVE REMEDY AVAILABLE TO YOU FOR
BREACH OF EXPRESS OR IMPLIED WARRANTIES WITH RESPECT TO THE
SOFTWARE AND RELATED DOCUMENTATION.

LIMITATION OF LIABILITY
UNDER NO CIRCUMSTANCES SHALL INTERGRAL, ITS DIRECTORS, OFFICERS,
EMPLOYEES AND AGENTS BE LIABLE TO YOU OR ANY OTHER PARTY FOR
INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, PUNITIVE, OR
EXEMPLARY DAMAGES OF ANY KIND (INCLUDING LOST REVENUES OR PROFITS
OR LOSS OF BUSINESS) RESULTING FROM THIS AGREEMENT, OR FROM THE
FURNISHING, PERFORMANCE, INSTALLATION, OR USE OF THE SOFTWARE,
WHETHER DUE TO A BREACH OF CONTRACT, BREACH OF WARRANTY, OR THE
NEGLIGENCE OF INTERGRAL OR ANY OTHER PARTY, EVEN IF INTERGRAL IS
ADVISED BEFOREHAND OF THE POSSIBILITY OF SUCH DAMAGES. TO THE
EXTENT THAT THE APPLICABLE JURISDICTION LIMITS INTERGRAL’S
ABILITY TO DISCLAIM ANY IMPLIED WARRANTIES, THIS DISCLAIMER SHALL
BE EFFECTIVE TO THE MAXIMUM EXTENT PERMITTED. INTERGRAL’S
LIABILITY UNDER THIS AGREEMENT WILL NOT, IN ANY EVENT, EXCEED THE
LICENSE FEES YOU PAID FOR THE SOFTWARE, IF ANY.

Indemnification
To the maximum extent permitted by law, you agree to defend,
indemnify and hold harmless INTERGRAL, its directors, officers,
employees and agents from and against any and all claims,
actions, suits or proceedings, as well as any and all losses,
liabilities, damages, costs and expenses (including reasonable
attorneys fees) arising out of or accruing from (a) your use of
the Software, (b) any application you develop on the Software
that infringes any copyright, trademark, trade secret, trade
dress, patent or other intellectual property right of any person
or defames any person or violates their rights of publicity or
privacy, and (c) any non- compliance by you with this License
Agreement.

Confidentiality
The Software contains trade secrets and proprietary know-how that
belong to INTERGRAL and it is being made available to you in
strict confidence. ANY USE OR DISCLOSURE OF THE SOFTWARE, OR OF
ITS ALGORITHMS, PROTOCOLS OR INTERFACES, OTHER THAN IN STRICT
ACCORDANCE WITH THIS LICENSE AGREEMENT, MAY BE ACTIONABLE AS A
VIOLATION OF OUR TRADE SECRET RIGHTS.

Publicity Rights
Licensee grants INTERGRAL the right to include Licensee as a
customer in Software promotional material. Licensee can deny
INTERGRAL this right at any time by submitting a written request
via email to SALES@INTERGRAL.COM, requesting to be excluded from
Software promotional material. Requests made after purchasing may
take thirty (30) calendar days to process.

Third Party Software
Any software provided along with the Software that is associated
with a separate license agreement is licensed to you under the
terms of that license agreement. This license does not apply to
those portions of the Software. Copies of these third party
licenses are included in all copies of the Software. By accepting
this EULA, you are also accepting the additional terms.

RESTRICTIONS
United States: If the Software is acquired by the Licensee in the
United States, the Licensee acknowledges: (a) the Software is
subject to U.S. export jurisdiction and agrees to comply with all
applicable international and national laws that apply to the
Software, including the U.S. Export Administration Regulations,
as well as end-user, end- use, and destination restrictions
issued by U.S. and other governments and notwithstanding the
above; and (b) the provisions of the USA Uniform Computer
Information Transaction Act do not apply to this EULA.

General: The export of the Software from the country of original
purchase may be subject to control or restriction by applicable
local law. Licensee is solely responsible for determining the
existence and application of any such law to any proposed export
and for obtaining any needed authorization. Licensee agrees not
to export the Software from any country in violation of
applicable legal restrictions on such export.

Governing Law, Jurisdiction and Costs
This EULA is governed by the laws of Baden-Wuerttemberg, Germany
without regard to Baden-Wuerttemberg’s conflict or choice of law
provisions. Exclusive jurisdiction and place of performance is
Boeblingen, Germany, as long as permitted by applicable law. The
United Nations Convention for the International Sale of Goods
shall not apply.

Changes to the License Agreement
INTERGRAL may make changes to the License Agreement as it
distributes new versions of the Software. When these changes are
made, INTERGRAL will make a new version of the License Agreement
available on the website where the Software is made available.

Entire Agreement and Severability
This EULA is the entire agreement between INTERGRAL and you, and
supersedes all prior or contemporaneous agreements or
understandings, whether oral or written any other communications
or advertising with respect to the Software; this EULA may be
modified only by written agreement signed by authorized
representatives of both you and INTERGRAL. No INTERGRAL dealer or
agent is authorized to make any amendment to this EULA.

If any provision of this EULA shall be held to be invalid or
unenforceable, the remainder of this EULA shall remain in full
force and effect. All rights not expressly granted in this
agreement are retained by INTERGRAL. To the extent any express or
implied restrictions are not permitted by applicable laws, these
express or implied restrictions shall remain in force and effect
to the maximum extent permitted by such applicable laws. The
failure or delay of INTERGRAL to exercise any of its rights under
this EULA or upon any breach of this EULA shall not be deemed a
waiver of those rights or of the breach. You agree that any
varying or additional terms contained in any purchase order or
other written notification or document issued by you in relation
to the Software licensed hereunder shall be of no effect.

INTERGRAL and other trademarks contained in the Software are
trademarks or registered trademarks of INTERGRAL Information
Solutions GmbH. Third party trademarks, trade names, product
names and logos may be the trademarks or registered trademarks of
their respective owners. You may not remove or alter any
trademark, trade names, product names, logo, copyright or other
proprietary notices, legends, symbols or labels in the Software.
This EULA does not authorize you to use INTERGRAL’s or its
licensors’ names or any of their respective trademarks.

[frs-334] Railo Extension for FusionReactor v5

About

This is a Railo Extension store plugin to simplify deployment of the FusionReactor server monitor.

What does the extension do?

  • Email a trial license to the installer
  • Deploy latest version of FusionReactor (or fall-back to the bundled version for servers with no direct internet access)
  • Automatically update container JVM arguments
  • Offer an uninstall option

Supported Platforms / System Requirements

For the FusionReactor software system requirements, please see https://www.fusion-reactor.com/system-requirements/.

The extension should function in all recent Railo releases but has been most thoroughly tested with Railo 4.1.2.005 final (Endal) using both the Tomcat and Jetty (aka Railo Express) deployments on Windows Server 2012 and CentOS 6.5 64-bit.

Help Videos

http://www.youtube.com/playlist?list=PLDIpVdHiiEMdxsppX-EpS9dFpZdGM3_hn

Issue Details

Type: DevNet
Issue Number: FRS-334
Components: Installer, Instance Manager
Environment:
Resolution: Fixed
Last Updated: 13/Mar/14 3:35 PM
Affects Version:
Fixed Version: 5.0.0
Server:
Platform:
Related Issues:

FusionReactor v5 Java Server Monitor – A feature tour

A 20 minute feature tour of FusionReactor v5 visiting:

  • Enterprise Dashboard
  • Web Metrics
  • Real-Time Running Request List
  • Request History
  • Request Details
  • CPU Thread Time
  • TCP/IP Stream Metrics
  • HTTP Headers
  • JDBC Transactions
  • HTTPClient/WebService Transactions
  • Longest Requests (since server started)
  • Slowest Requests (recent pages longer than threshold)
  • HTTP 500 Server Error Details
  • User Experience Monitoring (UEM) (e.g. client network & browser rendering time)
  • Custom Transactions (e.g. tracking custom API calls)
  • Custom Metrics (tracking custom business metrics – e.g. revenue)
  • Custom Dashboard (e.g. revenue vs page execution time chart)
  • Metric History (e.g. CPU last hour/day/week; pan/zoom; etc)
  • Both Heap & Non-Heap Memory Spaces (e.g. PermGen)
  • Garbage Collection Timing
  • Thread State Charts (e.g. identifying locking contention)
  • EnGuard Crash Protection (e.g. alerts before failure or prevents server from failing)
  • Daily Report Email (e.g. managers don’t need to login for overview metrics)
  • Log rotation & archiving (including JVM logs)
  • Info/Warn/Error Notification system
  • Desktop, iOS, Android dashboard application
  • Stack trace running request (e.g. see what line of code is currently being executed / where a slow page is stuck)