Swiftlet Name
The Swiftlet name of the JMSSwiftlet is sys$jms.
Maximum Connections
Optional property that specifies the maximum concurrent JMS connections. This also includes JNDI connections as they are realized via JMS.
The default value for this property is -1, which means unlimited connections.
Property definition:
swiftlet.sys$jms.maxconnections=<integer>
|
Example:
swiftlet.sys$jms.maxconnections=250
|
Default Socketfactory Class
Optional property that specifies the default socket factory that should be used if no other property is defined.
SwiftMQ includes a socket factory for plain sockets named com.swiftmq.net.PlainSocketFactory, and one for SSLv3 sockets named com.swiftmq.net.JSSESocketFactory.
The default value for this property is com.swiftmq.net.PlainSocketFactory.
Property definition:
swiftlet.sys$jms.socketfactory.class=<class name>
|
Example:
swiftlet.sys$jms.socketfactory.class=com.swiftmq.net.JSSESocketFactory
|
Listener
A JMSSwiftlet can serve multiple listeners on different ports, each configured with different socket factories and/or line compressions.
JMS listeners are defined as a list of names. For every defined listener, sub-properties can be defined as described in the following sections.
Every defined listener is registered as an administrative object at the JNDISwiftlet. The registered object can serve both as QueueConnectionFactory and TopicConnectionFactory. The lookup name is:
<listenername>@<routername>
|
Example:
sslsocket@gate.swiftmq.com
|
Lookup this listener via JNDI as a TopicConnectionFactory:
TopicConnectionFactory tcf = (TopicConnectionFactory)ctx.lookup("sslsocket@gate.swiftmq.com");
|
Property definition:
swiftlet.sys$jms.listeners.names=<name 1>,<name 2>,..,<name n>
|
Example:
swiftlet.sys$jms.listeners.names=plainsocket,sslsocket
|
Keep-Alive Interval
Specifies the interval in which keepalive messages are sent by this listener. These messages make sure that SwiftMQ detects half-open socket connections and closes them accordingly. Keepalive messages are necessary in addition to connections, tunneled by HTTP, as, in general, HTTP proxies close socket connections by which no data is transported (idle connections).
The keepalive interval is transferred transparent to JMS clients via the connection factory. So, both JMS clients and the SwiftMQ router, send keepalive messages.
If keepalive should be deactivated, e. g. to avoid permanent re-dial on dial-up connections, the value 0 is to be defined.
The default value to this property is 60000 (1 minute).
Property definition:
swiftlet.sys$jms.listeners.<name>.keepalive.interval=<long>
|
Example:
swiftlet.sys$jms.listeners.plainsocket.keepalive.interval=30000
|
Listener Port
Specifies the listener's port number.
Property definition:
swiftlet.sys$jms.listeners.<name>.port=<integer>
|
Example:
swiftlet.sys$jms.listeners.plainsocket.port=4000
|
Line Compression
Optional property that specifies if messages (including headers) should be compressed before sending them to the line and decompressed after receiving them from the line. This is an ingenious mode for low-speed connections (i.e. via modem) transferring mostly uncompressed message bodies. Due to default messagebody compression, this case is rare.
The default value for this property is false.
Property definition:
swiftlet.sys$jms.listeners.<name>.compression.enabled=<boolean>
|
Example:
swiftlet.sys$jms.listeners.plainsocket.compression.enabled=true
|
Listener Socketfactory Class
Optional property that specifies the socket factory this inbound listener should use. See Section Default Socket Factory for further details.
The default value for this property is the default socket factory.
Property definition:
swiftlet.sys$jms.listeners.<name>.socketfactory.class=<classname>
|
Example:
swiftlet.sys$jms.listeners.sslsocket.socketfactory.class=com.swiftmq.net.JSSESocketFactory
|
Host Access List
Optional property that specifies a list of host DNS hostnames to which the access to this inbound listener is restricted. Connections from hosts not included in this access list will be rejected.
The hostnames are SQL-Like predicates. Wildcards as %.swiftmq.com or secure.%.com can be specified.
The default value for this property is empty, so every host can be connected.
Property definition:
swiftlet.sys$jms.listeners.<name>.hostaccesslist.names=<host 1>,<host 2>,..,<host n>
|
Example:
swiftlet.sys$jms.listeners.sslsocket.hostaccesslist.names=secure.swiftmq.com,%.iit.de
|
Thread Names for Threadpool dispatch
The JMSSwiftlet starts the following Threads. The thread names can be used to dispatch them to specific thread pools. See ThreadpoolSwiftlet configuration for details.
Thread Name | Started When | Does What |
|
sys$jms:connmgr | On Swiftlet startup | Connection manager; asynchronously cleans up connections |
|
sys$jms:connsrv | On Swiftlet startup for every inbound listener | Connection server; accepts inbound connections |
|
sys$jms:connsvc | On incoming and accepted connection | Connection service; performs connections requests |
|
sys$jms:conninbound | On incoming and accepted connection | Connection inbound reader |
|
sys$jms:connoutbound | On incoming and accepted connection | Connection outbound writer |
|
sys$jms:sessionsvc | On session creation | Session service; performs session requests |
|
sys$jms:sessioncons | On every asynchronous consumer creation | Session consumer; delivers asynchronous messages to a message listener |
|