Configuration

Session Container

Configures the operation of the server as a whole.

Session Container Configuration Options
Directory (String)
DescriptionThe working directory for the web-socket server. Monitoring files will be created in this directory
Default$TMP/babl-server
Propertybabl.server.directory
APISessionContainerConfig.serverDirectory
Bind Address (String)
DescriptionThe hostname or IP address that the server will listen on for inbound TCP connections
Default0.0.0.0
Propertybabl.server.bind.address
APISessionContainerConfig.bindAddress
Listen Port (String)
DescriptionThe port that the server will listen on for inbound TCP connections
Default8080
Propertybabl.server.listen.port
APISessionContainerConfig.listenPort
Connection Backlog (int)
DescriptionThe maximum number of pending connections
Default20
Propertybabl.server.connection.backlog
APISessionContainerConfig.connectionBacklog
Poll Mode Enabled (boolean)
DescriptionEnables poll-mode when the number of active sessions is below a configurable limit
Defaultfalse
Propertybabl.server.poll.mode.enabled
APISessionContainerConfig.pollModeEnabled
Poll Mode Session Limit (int)
DescriptionReceive sockets will be polled as part of the event-loop (rather than using select()) if the active session count is below or at this value
Default5
Propertybabl.server.poll.mode.session.limit
APISessionContainerConfig.pollModeSessionLimit
Session Monitoring File Entry Count (int)
DescriptionSets the maximum number of sessions per monitoring file (monitoring files will be created as needed)
Default4096
Propertybabl.server.session.monitoring.entry.count
APISessionContainerConfig.sessionMonitoringFileEntryCount
Session Poll Limit (int)
DescriptionSets the maximum number of sessions that will be ready for reading per invocation of the server event-loop
Default200
Propertybabl.server.session.poll.limit
APISessionContainerConfig.sessionPollLimit
Connection Validator (String)
DescriptionFully-qualified classname of an implementation of ConnectionValidator
DefaultAlwaysValidConnectionValidator
Propertybabl.server.validation.validator
APISessionContainerConfig.connectionValidator
Validation Timeout Nanos (long)
DescriptionSets the timeout for connections to be validated
Default10s
Propertybabl.server.validation.timeout
APISessionContainerConfig.validationTimeoutNanos
Server Idle Strategy (String)
DescriptionSets the idling strategy used in the Server event-loop. One of BUSY_SPIN,YIELDING,BACK_OFF,SLEEPING.
DefaultSLEEPING
Propertybabl.server.idle.strategy
APISessionContainerConfig.serverIdleStrategy

Session

Configure per-session settings.

Session Configuration Options
Maximum Buffer Size (int)
DescriptionThe maximum size, in bytes that the session's send or receive buffer can grow to
Default32MB
Propertybabl.session.buffer.max.size
APISessionConfig.maxBufferSize
Receive Buffer Size (int)
DescriptionThe initial size, in bytes of the session's receive buffer (used for encoded web socket frames read from the network)
Default1KB
Propertybabl.session.buffer.receive.size
APISessionConfig.receiveBufferSize
Send Buffer Size (int)
DescriptionThe initial size, in bytes of the session's send buffer (used for web socket frames queued for writing to the network)
Default1KB
Propertybabl.session.buffer.send.size
APISessionConfig.sendBufferSize
Decode Buffer Size (int)
DescriptionThe initial size, in bytes of the session's decode buffer (used for assembling decoded web socket frames before delivery to the application)
Default1KB
Propertybabl.session.buffer.decode.size
APISessionConfig.sessionDecodeBufferSize
Decode Maximum Buffer Size (int)
DescriptionThe maximum size, in bytes of the session's decode buffer (used for assembling decoded web socket frames before delivery to the application)
Default128KB
Propertybabl.session.buffer.decode.max.size
APISessionConfig.sessionDecodeBufferMaxSize
Maximum Web Socket Frame Length (int)
DescriptionThe maximum length, in bytes of the largest acceptable web socket frame
Default64KB
Propertybabl.session.frame.max.size
APISessionConfig.maxWebSocketFrameLength
Ping Send Interval (long)
DescriptionThe time, in nanoseconds that an idle session will wait before sending a PING frame to its peer
Default5s
Propertybabl.session.ping.interval
APISessionConfig.pingIntervalNanos
Pong Response Timeout (long)
DescriptionThe time, in nanoseconds that a session will wait before a PONG response before closing
Default30s
Propertybabl.session.pong.response.timeout
APISessionConfig.pongResponseTimeoutNanos

Socket

Configures network socket settings.

Socket Configuration Options
Send Buffer Size (int)
DescriptionThe size, in bytes of the session's socket send buffer (SO_SND_BUF)
Default64KB
Propertybabl.socket.send.buffer.size
APISocketConfig.sendBufferSize
Receive Buffer Size (int)
DescriptionThe size, in bytes of the session's socket receive buffer (SO_RCV_BUF)
Default64KB
Propertybabl.socket.receive.buffer.size
APISocketConfig.receiveBufferSize
TCP No Delay Enabled (boolean)
DescriptionIndicates whether Nagle's Algorithm should be disabled (SO_TCP_NODELAY)
Defaultfalse
Propertybabl.socket.tcpNoDelay.enabled
APISocketConfig.tcpNoDelay

Proxy

Configures the operation of the IPC transport between the session host and the application.

Only used when server deployment mode is DETACHED.

Proxy Configuration Options
Server Adapter Poll Fragment Limit (int)
DescriptionThe maximum number of fragments processed by the server adapter for a single poll call
Default50
Propertybabl.proxy.server.adapter.poll.limit
APIProxyConfig.serverAdapterPollFragmentLimit
Application Adapter Poll Fragment Limit (int)
DescriptionThe maximum number of fragments processed by the application adapter for a single poll call
Default40
Propertybabl.proxy.application.adapter.poll.limit
APIProxyConfig.applicationAdapterPollFragmentLimit
Server Stream Base ID (int)
DescriptionThe starting stream ID for server instances
Default6000
Propertybabl.proxy.server.stream.base.id
APIProxyConfig.serverStreamBaseId
Application Stream Base ID (int)
DescriptionThe starting stream ID for application instances
Default5000
Propertybabl.proxy.application.stream.base.id
APIProxyConfig.applicationStreamBaseId
Launch Media Driver (boolean)
DescriptionIndicates whether an Aeron MediaDriver should be launched for use by proxies
Defaultfalse
Propertybabl.proxy.driver.launch
APIProxyConfig.launchMediaDriver
Media Driver Directory (String)
DescriptionIndicates where the MediaDriver should be launched
Default${java.io.tmpdir}/proxy-driver
Propertybabl.proxy.driver.dir
APIProxyConfig.mediaDriverDir
Performance Mode (String)
DescriptionConfigures the performance level of the launched MediaDriver
DefaultPerformanceMode.LOW
Propertybabl.proxy.performance.mode
APIProxyConfig.performanceMode

JVM Settings

For best performance, set the following system properties:

  • -Djava.lang.Integer.IntegerCache.high=65536
  • -Djava.net.preferIPv4Stack=true
  • -XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields
  • -XX:BiasedLockingStartupDelay=0