Enhydra Director Integration


Table of Contents

Enhydra Director Connector
Configuring EnhydraEnterprise 6.2.x/6.3.x/6.5.x (Jetty ver.) to use with Enhydra Director.

Enhydra Director Connector

Jetty connectors provide the external interface (over HTTP or HTTPS) to Jetty clients. There are two kinds of connectors - that that implement an HTTP stack of their owner (called HTTP connectors) and those (called web server connectors) that tie Jetty to an external web server like Apache (or IIS) or, in this case, to Enhydra Director.

In Enhydra5.1.xx and prior version, every Enhydra Multiserver application (configured to handle request from Enhydra Director) have separate connection (on different port) to Enhydra Director.

Unlike Enhydra5.1.xx, Jetty Connector, for Enhydra Director use only one connection (port) for all applications hosted on that instance of server.

Configuring EnhydraEnterprise 6.2.x/6.3.x/6.5.x (Jetty ver.) to use with Enhydra Director.

To use EnhydraEnterprise with Enhydra Director put "jetty-director.jar" to:

{Enhydra-Enterprise-Install-Dir}/multiserver/lib/jetty/lib

Since EnhydraEnterprise v6.2.2 distributions (Jetty ver.) uses Jetty5.1.x as servlet container, all details related to connector configurations is in jetty5.xml:

{Enhydra-Enterprise-Install-Dir}/multiserver/conf/jetty5.xml

in <Configure> section:

<Call name="addListener">
    <Arg>
      <New class="org.enhydra.servlet.connectionMethods.EnhydraDirector.EnhydraListener">
      <Set name="Port">9003</Set>
      <Set name="MinThreads">10</Set>
      <Set name="MaxThreads">100</Set>
      <Set name="SessionAffinity">true</Set>
      <Set name="ClientTimeout">300</Set>
      <Set name="BindAddress">(All Interfaces)</Set>
      <Set name="AuthKey">(Unauthenticated)</Set>
      <Set name="acceptCount">50</Set>
      <Set name="tcpNoDelay">true</Set>
      <Set name="enableLookups">true</Set>
      <Set name="threadTimeout">30</Set>
      <Set name="ConfidentialPort">SSLPORT</Set>
      <Set name="URIEncoding">ISO-8859-1</Set>
      <Set name="useBodyEncodingForURI">true</Set>
      </New>
    </Arg>
  </Call>

Configuration parameters are:

1.Class that implements Enhydra Director Connector.

class="org.enhydra.servlet.connectionMethods.EnhydraDirector.EnhydraListener"

2.This instructs the Enhydra Director Connector to directly listen for requests on the specified port.

port = <port>

3. Minimum threads in threadpool for listener.

MinThreads = <MinThreads>

4. Maximum threads in threadpool for listener.

MaxThreads = <MaxThreads>

5.The idle timeout period for a client connection, in seconds. This is the amount of time to block without activity.

clientTimeout = <num>   (optional)

6.IP address of Enhydra Director host that is alowed to bind to this server instance.

bindAddress = <ipAdress> | "(All Interfaces)"  (optional)

7.The authKey .

authKey = <authKey> | "(Unauthenticated)"   (optional)

8.The maximum queue length for incoming connection requests when all possible request processing threads are in use.

acceptCount  = <num> (optional)

9.If set to true, the tcpNoDelay option will be set on the server socket, which improves performance under most circumstances.

tcpNoDelay  = <true> (optional)

10.Set to true if you want calls to request.getRemoteHost() to perform DNS lookups in order to return the actual host name of the remote client. Set to false to skip the DNS lookup and return the IP address in String form instead (thereby improving performance). By default, DNS lookups are disabled.

enableLookups  = <false> (optional)

11.The idle timeout period for a handler thread, in seconds. Shorter timeouts minimize the number of threads (memory) while slowing response time for bursts of activity.

threadTimeout = <num>   (optional)

12.If this Connector is supporting non-SSL requests, and a request is received for which a matching <security-constraint> requires SSL transport, Jetty will automatically redirect the request to the port number specified here.

ConfidentialPort  = <num> (optional)

13.This specifies the character encoding used to decode the URI bytes.If not specified, ISO-8859-1 will be used.

URIEncoding  = <URIEncoding> (optional)

14.This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding.

useBodyEncodingForURI  = <false> (optional)