• EnglishEspañol日本語한국어Português
  • Log inStart now

Java agent release notesRSS

April 20, 2016
Java agent v3.28.0

Download this agent version

Improvements

  • Cassandra

    This release adds slow query tracking to Cassandra queries made via the Datastax driver. You’ll now see slow CQL queries on the Databases page and within Transaction Traces. You must add the following to your newrelic.yml configuration to enable this feature in High-security mode:

    transaction_tracer:
    slow_query_whitelist:
    'com.newrelic.instrumentation.cassandra-datastax-2.1.2'
  • MongoDB

    The Java agent now reports synchronous calls made via MongoDB Java driver 2.14. You will see MongoDB represented on the Overview page, on the Databases page, and in Transaction traces. Note: The asynchronous driver is not yet supported.

  • Apache Tomcat

    This release adds support for Tomcat 8.5

  • Akka

    • This release adds support for Akka forwarding and Akka broadcasting. The agent will now trace messages broadcast or forwarded to actors.
    • When the system sends a message to an Actor, the agent now reports the name of the actor system that sent the message. Previously, the agent reported “deadletters” under these circumstances.
  • Async performance

    This release adds performance enhancements for asynchronous frameworks, especially Hystrix. Performance in Hystrix will noticeably improve for most applications, and will be up to 3x faster when tracing low-latency requests (response time <3ms). Performance for low-latency Play applications will be up to 30% faster.

  • JDBC

    This release adds support for the following JDBC drivers:

    • MySQL 6.0.2 and higher
    • i-Net Oranxo 3.06
    • i-Net MERLIA 8.04.03 and 8.06

Fixes

  • Fixed a bug that could cause Akka Http instrumentation to throw a NullPointerException into customer code.
  • Fixed a bug in the Spymemcached instrumentation that would report operations with the name “None” instead of the correct operation name.
  • Fixed a bug that could cause highly asynchronous applications to experience a memory leak in the NewRelic TransactionService.

March 30, 2016
Java agent v3.27.0

Improvements

  • Spymemcached

    The Java agent now provides visibility into your applications’ usage of Memcached when using the Spymemcached client versions 2.11 to 2.12. You will see the calls in the application breakdown, in trace details, on the Databases page, in Transaction maps, and in Service maps.

  • JDBC Drivers

    This release adds support for the following JDBC drivers:

    • INet Oracle Driver (Oranxo) 3.14
    • Sybase (jConnect) JDBC 3 driver

Fixes

  • Fixed an issue where the agent treated HTTP headers as being case sensitive, causing CAT to miss under certain conditions.
  • Fixed an issue where error data could be dropped, causing 413 status code errors to be reported in the agent log.
  • Fixed a bug in spray-http and akka-http routing libraries where response times and/or route names could be reported incorrectly when using Futures within the route.
  • Fixed various issues related to the proper handling of multibyte character encoding.
  • Fixed a bug in Java agent version 3.26.x that could cause the Thread Profiler to time out.
  • Fixed a bug where an error could get printed to the agent log when making SQL queries from an asynchronous framework.

Notes

In support of an upcoming feature, the Java agent is now capable of reporting class metadata including class method signatures, method annotations, class annotations, field annotations, field types, and field names.

This reporting is on by default and can be explicitly disabled in the agent by setting the property in your newrelic.yml configuration file:

command_parser:
blacklist: send_module_metadata

February 25, 2016
Java agent v3.26.1

Improvements

  • PostgreSQL

    This release adds improved support for PostgreSQL 8.0+ with jdbc3+. All of these versions now include support for explain plans.

February 23, 2016
Java agent v3.26.0

Improvements

  • Spray Client

    The agent now identifies external calls when Spray Client is used. You will see your Spray Client calls with the hostname and port of the destination. The calls also have support for Cross Application Tracing, and are shown in Service Maps and Transaction Maps.

  • The agent now tracks Futures started in Spray routes.

  • The agent now identifies transactions when spray-can is used without spray-routing.

  • Slick

    The agent now tracks async activity created by Typesafe/Lightbend's functional-relational-mapper, Slick. If the underlying database driver is supported by the agent the database activity will be traced.

  • Improvements for JDBC

    The Java agent’s JDBC instrumentation now provides more consistent and complete data for supported JDBC drivers. The Java agent supports the following drivers:

    • MySQL 5.1.4 - 5.1.x
    • PostgreSQL 8.2-504 - 9.4-1206 (jdbc4 and jdbc41 drivers only)
    • Oracle ojdbc14, ojdbc5, ojdbc6, ojdbc7
    • Microsoft SQLServer 2.0 - 4.2
    • jTDS 1.2 - 1.3.x
    • DB2 9.1 - 10.x
    • Derby 10.6.1.0 - 10.x
    • H2 1.0.x - 1.4.x
    • HSQL 1.7.2.2 - 2.x
    • MariaDB 1.1.7 - 1.3.x

    Note Previous versions of the Java Agent had partial “generic” support for other JDBC drivers. The new, improved JDBC instrumentation replaces the “generic” JDBC instrumentation.

Fixes

  • Fixed a bug where CXF would name transactions based on auto-generated proxy classes. The agent now normalizes CXF transaction names.
  • Fixed a bug in EJB instrumentation that could cause a NullPointerException in application code.
  • Fixed a bug where the EJB instrumentation erroneously set transaction names. In this version, the agent records a metric.
  • Fixed a bug in the Cross Application Tracing API that caused Application Response time to be attributed to other transaction time, and prevented linking of transaction traces when doing CAT.
  • Fixed a bug in request queueing calculations where queueing time could show up as a steadily increasing value instead of the correct time.
  • Fixed a bug that prevented HttpURLConnection External metrics from reporting on the IBM J9 JVM.
  • With Spray routing, fixed a bug that incorrectly set the transaction name of similar route names or set them to "Unknown Route".
  • Fixed a bug where some transaction traces would report external segments for non I/O calls in Apache HttpClient.
  • The Java Agent will now read Cross Application Tracing HTTP header names regardless of case.
  • Fixed a bug that could cause cross application tracing between the New Relic Java Agent and non-Java New Relic Agents to fail.

Known Issues

  • Postgres JDBC

    This release does not contain support for some versions of the PostgreSQL jdbc3 drivers supported in previous releases. We recommend that you use 3.26.1.

January 18, 2016
Java agent v3.25.0

Improvements

  • Performance improvements

    The Java agent now starts up to 50% faster. Your applications will be available that much sooner.

Fixes

  • In some cases JAX-RS annotations on interfaces were not being observed, causing transactions using JAX-RS services to be named on the servlet rather than the web servicepath and method.
  • Fixed an issue that prevents Spray and Akka-HTTP instrumentation from applying when using Scala 2.10.
  • Fixed an issue that caused Play 2.x requests to produce empty responses when the circuit breaker is tripped.
  • Fixed an issue where setting enable_custom_tracing to false could inadvertently disable Netty instrumentation.

Known Issues

  • Fixed in 3.29.0

    • Applications that use Play and Ning AsyncHttpClient may miss transactions.
    • The thread profiler may not report data while profiling certain Scala classes.
  • Fixed in 3.28.0

    • Fixed a bug that could cause Akka Http instrumentation to throw a NullPointerException into customer code.
  • Fixed in 3.27.0

    • Fixed an issue where the agent treated HTTP headers as being case sensitive, causing CAT to miss under certain conditions.
    • Fixed various issues related to the proper handling of multibyte character encoding.
  • Fixed in 3.26.x

    • CXF instrumentation can name transactions based on auto-generated proxy classes. Later agents now normalizes CXF transaction names.
    • EJB instrumentation may cause a NullPointerException in application code, and erroneously set transaction names. In later versions, the agent records a metric.
    • The Cross Application Tracing API caused Application Response time to be attributed to other transaction time, and prevented linking of transaction traces when doing CAT.
    • Request queuing calculations could show queuing time as a steadily increasing value instead of the correct time.
    • HttpURLConnection External metrics may not report on the IBM J9 JVM.
    • Transaction traces may report external segments for non I/O calls in Apache HttpClient.
    • The Java agent will now read Cross Application Tracing HTTP header names regardless of case.
    • Fixed a bug that could cause cross application tracing between the New Relic Java agent and non-Java New Relic agents to fail.

December 21, 2015
Java agent v3.24.1

Fixes

  • Fixed an issue that caused Play 2.x requests to produce empty responses when the circuit breaker is tripped.

December 15, 2015
Java agent v3.24.0

Improvements:

  • MongoDB

    The Java agent now reports synchronous calls to the Mongo Java Driver 2.12 through 3.1. You will see the Mongo operations in breakdowns in the Applications Overview chart, entries in the Databases tab, and segments in transaction traces. Note: The asynchronous driver is not supported.

  • Akka HTTP and Spray

    The Java agent now reports and names transactions received through Akka HTTP 1.0, Akka HTTP 2.0 and Spray. Transactions are named intuitively based on route DSLs. This instrumentation also supports Cross Application Tracing from calling systems. With our previously released support for Akka, your Akka HTTP and Spray applications will now include activity of those transactions all the way through your actor systems.

Fixes:

  • In rare cases the Java agent's EJB instrumentation could cause a StackOverflowException to appear in application logs.
  • In some cases the Java agent's Netty instrumentation could throw a NullPointerException to application code.
  • Improve performance when using Cross Application Tracing and a large number of threads.
  • In some cases the transaction would not be reported when using Akka with mutable messages.

Known Issues:

  • Play 2.x requests will produce empty responses when the circuit breaker is tripped. We recommend Play 2.x users disable the circuit breaker when using Java agent versions 3.22 or higher.

December 1, 2015
Java agent v3.23.0

Improvements

  • Hystrix instrumentation

    This release contains support for versions 1.0.2 through 1.4 of the Hystrix framework. You will now see timing information related to each Hystrix Command's run and getFallback methods. Chained Hystrix commands will be linked into one transaction.

Fixes

  • This release fixes a bug in New Relic's Cross Application Tracing (CAT) that could cause incorrect service and transaction maps.

    The problem would happen when non-identical applications, with identical transaction names, would appear to be communicating (in the Transaction / Service maps), when in fact, they were not.

    Note: Using a combination of pre-3.23.0 and 3.23.0+ can result in external calls between the old and new agents to not show up in the map. To fix this, upgrade all of your agents to 3.23.0+ at the same time

  • Resolved an issue where an application running on Tomcat and containing a large number of static JSPs (5000+) could cause a memory leak within the agent.

November 16, 2015
Java agent v3.22.1

Fixes

  • Fixed an issue that caused Ning's AsyncHttpClient WebSockets requests to fail, or the application not to start.
  • Fixed an issue that could cause an extra transaction to be created, a background transaction named NettyDispatcher.
  • Removed the deprecated bootstrap.classpath configuration, as it could result in the Java agent's instrumentation failing to load.

November 6, 2015
Java agent v3.22.0

Improvements

  • Play Framework 2.4 Instrumentation, and Play Framework 2 Improvements

    Previous Java Agent releases supported the Play Framework up to version 2.3. This release includes instrumentation for Play 2.4.x. This release provides more insight than ever before for all versions of Play 2, including improved segment names, and better signal-to-noise ratio in transaction details.

    This instrumentation also takes advantage of the new response time line in the New Relic UI. Because Play is a reactive framework that encourages concurrent activity, your total time for transaction components will often be greater than the response time. If the total time is less than response time, it may indicate resource exhaustion. By separating the total time from the response time, you get a clear picture of when you are getting the benefit of concurrency.

    If you have used the Java Agent to monitor Play before this release, you may see a decrease in response time. The new response time metric more accurately reflects the time from initial request to response.

    We support Play applications written in Java or Scala 2.9.3 - 2.11.x.

    Note: The deprecated -Dnewrelic.bootstrap_classpath system property can result in missing instrumentation and should not be used.

  • Netty 3.4 - 4.x Instrumentation

    This release updates our Netty support to include versions from 3.4 to 4.x. Previous release supported up to Netty 3.9. The agent will start transactions for server inbound I/O. The agent will instrument Netty HTTP methods to enable cross application tracing (CAT) in Netty transactions.

  • AsyncHttpClient Instrumentation 1.0.2 - 1.9.x

    In this release, you will see the time spent in external service calls made using AsyncHttpClient (also known as Ning Http Client). If the external service is also running New Relic, you will see cross application tracing (CAT) details as well. This includes external calls made from Play WSAPI, which uses AsyncHttpClient.

    Note: As in previous releases, Play 1 applications will not report AsyncHttpClient activity.

  • Akka Instrumentation 2.0 - 2.4

    This release enhances our Akka instrumentation by linking an actor message sender to an actor message receiver in the same transaction. In order to avoid over-instrumentation, our Akka instrumentation does not actually start transactions. If you would like a given actor call to mark the beginning of a transaction, you will need to use the @Trace(dispatcher=true) annotation, or some other form of custom instrumentation.

Notes:

This release supports core Akka, not all Akka extensions. In particular, it does not identify transactions that have been routed by Spray, Akka HTTP, or Akka Streams. We have heard from customers that these frameworks are important, and we expect to support them soon! Stay tuned to the Java agent incubator, since we may provide an early access instrumentation module for these frameworks before we release them in the agent.

Known Issues:

  • If your application uses AsyncHttpClient's WebSockets, do not use this version. AsyncHttpClient WebSockets requests will fail, or the application will not start.
  • In some cases, calls to NewRelic's getBrowserTimingHeader and getBrowserTimingFooter are ignored.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.