Configuring and Preparing HTTP Connector for Jetty 9

Jetty 9.2.25 has a single selector-based non-blocking I/O connector. Implementations of ConnectionFactory namely HttpConnectionFactory, SslConnectionFactory, ProxyHttpConnectionFactory, and so on can be used to configure the protocol on an HTTP connector.

HTTP Connector resource templates support Jetty version 9.2.25. The Servlet version (javax.servlet) supported is 3.1.

This section describes how to configure and prepare HTTP Connectors to accept requests for Jetty 9. It also describes the modifications made to the HTTP Connector resource template properties for Jetty.

DAA Created with javax.servlet Package Dependency

When uploading a Deployment Archive Artifact (DAA), the .requirements file and META-INF/MANIFEST.MF files of the plugin implementation of the Java Implementation Type (Java IT) in DAA are updated to expand the javax.servlet package dependency range to include 3.1.0 (higher range is updated to 4.0.0) so that it works with Jetty 9.2.25. As a result, a DAA created prior to the current release of ActiveMatrix using the javax.servlet package dependency is compatible with the current release of ActiveMatrix without any user intervention.

You can disable this feature by setting the com.tibco.amx.admin.daa.upload.disable.requirements.update to true. When this property is set to true, the DAA with the javax.servlet package dependency needs to be re-created using TIBCO Business Studio of the current release.

Internal HTTP Connectors and their Properties

During ActiveMatrix Administrator bootstrapping, two internal HTTP Connectors are created: amxAdminDefaultHttpConnector and TIBCO ActiveMatrix Internal HTTP Connector Resource. These Resource Instances are located in CONFIG_HOME/tibcohost/Admin-enterpriseName-serverName/data_3.2.x/host/plugins/.

The following figure shows the jetty_resources.xml file extracted from the amxAdminDefaultHttpConnector Resource Instance.

amxAdminDefaultHttpConnector
Note: The CONNECTOR_CLASS property is updated from org.mortbay.jetty.bio.SocketConnector to org.eclipse.jetty.server.NetworkTrafficServerConnector.

The following figure shows the jetty_resources.xml file extracted from the ActiveMatrix Internal HTTP Connector Resource Instance.

ActiveMatrix Internal HTTP Connector Resource Instance
Note: The previous HTTP Connector Resource properties (maxIdleTime, headerBufferSize, requestBufferSize and responseBufferSize) are replaced with idleTimeOut, requestHeaderSize, responseHeaderSize, and outputBufferSize. Refer to HTTP Connector for more information on all the properties of an HTTP Connector.

Usage of the new Properties

  • If a new HTTP Connector resource template is created from the ActiveMatrix Administrator UI, the corresponding resource instance has the new properties introduced in Jetty 9.2.25.
  • If a new HTTP Connector resource template is created using the ActiveMatrix Administrator CLI script where old properties (pre-Jetty 9.2.25) were specified, the HTTP Connector resource instance is created but with the new properties introduced in Jetty 9.2.25.
  • If an HTTP Connector resource template was created in an older release and needs to be to upgraded to the current release of ActiveMatrix, the resource instances already present prior to the upgrade are not updated with new properties. However, if you reinstall the resource instance or create a new resource instance, the properties introduced in Jetty 9.2.25 are used.
  • If an HTTP Connector is created in the current release and you downgrade to an older release, the HTTP Connector properties introduced in the current release are not applied to the downgraded version of the HTTP Connector resource instance. The HTTP Connector resource instance goes to the Installed (Start Failed) state and the application referring to the HTTP Connector resource instance goes to the Start Failed state. Uninstalling the HTTP connector resource instance is not enough in this case. You must recreate the HTTP Connector resource template and map the application to the newly created the HTTP Connector resource instance corresponding to the HTTP Connector resource template.

Finding out the Version of Jetty in Use

To find out the version of Jetty in use:

  1. Invoke a SOAP or REST Binding using third-party software, such as SoapUI.
  2. Refer to the Raw section of a SOAP/HTTP or REST/HTTP response.

    The Server attribute mentions the Jetty version in use.

Logging

For each HTTP Connector, in the respective runtime node, the following logs can be seen:

24 Jul 2017 09:38:07,644 [Start Level Event Dispatcher] 
[INFO ] [] com.tibco.amx.hpa.web.JettyManager - TIBCO-AMX-HPA-014323: Creating Jetty server TIBCO ActiveMatrix Internal HTTP Connector Resource of type org.eclipse.jetty.server.NetworkTrafficServerConnector
24 Jul 2017 09:38:08,018 [Start Level Event Dispatcher] 
[INFO ] [] com.tibco.amx.hpa.web.JettyManager - TIBCO-AMX-HPA-014323: Creating Jetty server amxAdminDefaultHttpConnector of type org.eclipse.jetty.server.NetworkTrafficServerConnector
24 Jul 2017 09:38:05,709 [Start Level Event Dispatcher] 
[INFO ] [] com.tibco.amx.hpa.web.JettyManager - TIBCO-AMX-HPA-014323: Creating Jetty server hello1Connector of type org.eclipse.jetty.server.NetworkTrafficServerConnector

The new connector class name, org.eclipse.jetty.server.NetworkTrafficServerConnector, is displayed against each HTTP Connector.