High Quality JMS Messaging.
SwiftMQ High Availability Router
-
High Availability JMS Router with ACTIVE/STANDBY deployment and active replication.
-
Continuous Availability through versioned protocols - uprade SwiftMQ during operation without interruption.
-
Transparent JMS and JNDI failover, no extra reconnect code required.
-
Automatic and transparent resolve of all open transactions in transit, including XA transactions, as well as any non-transacted acknowledge mode.
-
Full inbound and outbound duplicate message detection. Messages are never delivered twice.
-
No persistent messages lost during failover. Message sequence is guaranteed.
-
Choice of 3 different store types: Replicated File Store, Shared File Store, Shared JDBC Store.
-
Transparent reconnect from SwiftMQ Explorer, CLI, CLI Admin API.
-
Easy conversion to High Availability by HA Wizard. Turns any existing configuration into High Availability.
-
High Availability test suite included. Test your JMS applications under a continuous failover scenario.
-
Includes all Swiftlets of SwiftMQ Router Standard.
-
Additional Swiftlets included at no extra cost: JMS XA/ASF Swiftlet, Routing/Unlimted Swiftlet, Standard File Store Swiftlet, JDBC Store Swiftlet.
SwiftMQ Router Standard Swiftlets
Authentication Swiftlet
-
Authentication groups.
-
Fine grained queue/topic grants per group.
-
User/Group assignment.
-
Host access list on a per-user base.
-
Enable/disable authentication as a whole.
-
Resource limit groups to avoid resource exhaustion.
-
Specify max connections per user.
-
Specify max session/producer/consumer/temp queues per connection.
-
User/Resource Limit Group assignment.
Deploy Swiftlet
-
Provides hot deployment of SwiftMQ components (bundles) during runtime.
-
Uses a dedicated class loader per bundle.
-
Copy a new deployment bundle into deploy directory - deployed.
-
Remove it - undeployed.
-
Copy a new version into deploy directory - undeploy/deploy.
JMS Swiftlet
-
Fully implements JMS 1.1, point-to-point and publish/subscribe.
-
Unlimited number of JMS listeners, each with different ports, socket factories.
-
Unlimited number of JMS connection factories per JMS listener.
-
Transparent JMS client reconnect and failover (HA) with automatic recovery of all transactions in transit, incl. XA transactions.
-
Support of intra-VM connections.
-
Automatic registration of connection factories in JNDI.
-
Host access list per JMS listener.
-
Configurable challenge/response factories for password exchange.
-
Configurable network buffers.
-
SSL support through JSSE socket factory.
-
HTTP tunneling for JMS clients.
-
Bind and connect IP address for multiple network cards and NAT.
-
Keep-alive messages to detect half-open sockets.
JMS Application Container Swiftlet
-
Run any JMS application inside a SwiftMQ Router JVM.
-
Use the intra-VM JMS client to connect via high-speed virtual in-memory connections, with up to 30% more throughput.
-
Static JMS application containers to launch JMS applications at startup or on demand.
-
Hot deploy JMS application containers to hot deploy JMS applications incl. version upgrades router network wide.
-
Run any JMS application as a schedulable job via the Scheduler Swiftlet. Jobs can be hot deployed.
-
No proprietary code required, no vendor lock-in.
-
Central thread management of JMS clients via the router's thread pools.
-
Central administration and monitoring via SwiftMQ Explorer/CLI, forget dedicated start scripts per JMS application.
-
Only a single process for hundreds of container-managed JMS applications.
-
Forget reconnection logic and exception listeners, the JMS server is always up.
JNDI Swiftlet
-
Implements JNDI 1.2.1.
-
Federated JNDI in router networks, lookup any object on any router.
-
JNDI aliases for location independence.
-
Static remote queues for lookup of disconnected remote destinations.
-
Protected by SwiftMQ's JMS access control.
-
Unlimited definitions of JNDI replications into foreign JNDI servers.
-
Automatic and transparent client-side reconnect.
Log Swiftlet
-
Logging of information/warning/error messages from Swiftlets.
-
Different or single file destination.
-
Logfile rotation.
Management Swiftlet
-
Provides remote management capabilities for a whole router network.
-
Additional password protection of management access.
-
View of connected admin tools with the ability to disconnect them administratively.
-
Powerful graphical administration tool - SwiftMQ Explorer.
-
Powerful command line interface with scripting - CLI.
-
Administer a router network out of any Java program - CLI Admin API.
-
Full JMX support.
Monitor Swiftlet
-
Monitors number connections.
-
Monitors queues sizes.
-
Monitors memory usage.
-
Send eMail alerts with the complete router status to an administrator when a configured threshold is reached.
Network Swiftlet
-
Network interface for all Swiftlets of a router.
-
Uses socket factories to create TCP connections.
-
Efficient buffer management with configurable protocol handlers.
-
Automatic reconnect for connectors, based on reconnect intervals.
-
Re-uses server sockets to avoid "address in use" exceptions on software reboots.
-
Provides reliable IP multicast connections.
-
Throughput collection.
Queue Manager Swiftlet
-
Manages transacted queues.
-
Can handle thousands of queues on a single router.
-
Configurable cache size, persistence mode, max. messages, and flow control behavior per queue.
-
Exact flow control per queue which respects transaction, queue size and consumer speed.
-
Automatic registration of queues in JNDI.
-
Provides schedulable jobs (Queue Cleanup, Queue Mover, Queue Purger) to run from the Scheduler Swiftlet.
-
Support of clustered queues with message redispatch and consumer load balancing.
Routing Swiftlet
-
Provides transparent connections to other SwiftMQ routers.
-
Federated router network. Address any queue/topic network wide.
-
Dynamic routing architecture with failover, any destination is reachable, even when not directly connected.
-
Static routes to address disconnected destinations.
-
Round-robin scheduling to spread traffic over multiple routes.
-
Route filters to reduce route exchange.
-
XA-based message exchange (2-phase-commit) with fully automatic recovery of in-doubt-transactions.
-
Configurable transaction (number messages/transaction for bulk transfer) and window size (max. number of transactions in transit) to maximize throughput.
-
Define listeners and connectors.
-
Host access list for listeners.
-
Automatic reconnect for connectors.
-
Configurable socket factories, e.g. for SSL routing connections.
-
Keep-alive messages to detect half-open sockets.
-
Use HTTP tunneling to connect router over HTTP proxies.
-
Schedulable connector job to run from the Scheduler Swiftlet.
Scheduler Swiftlet
-
Enterprise job scheduler to run jobs on base of a schedule.
-
"at" and "repeat" schedules.
-
Configurable stackable calendars.
-
Many predefined jobs, like backup, routing connector, queue mover.
-
Can schedule any Java application as a job. No need to implement proprietary interfaces. No vendor lock-in!
-
Schedules can be programmically created and removed by any JMS client (e.g. schedule a message for later delivery).
-
Powerful job monitoring.
Store Swiftlet
-
Super-fast, transactional, page-oriented, file-based message store implementation.
-
Transactional store with read/write cache, checkpoint-based write-ahead-log, and group commit.
-
Minimum disk access to guarantee superior performance.
-
XA store for prepared XA transactions.
-
Automatic and consistent recovery after system crash.
-
Fast swap files with roll-over for non-persistent messages.
-
Durable subscriber store definitions in separate files for faster access.
-
Online backup incl. maintenance of save set generations.
-
Online shrink of the data store.
-
Schedulable backup job to run from the Scheduler Swiftlet.
-
Schedulable shrink job to run from the Scheduler Swiftlet.
Threadpool Swiftlet
-
Provides very efficient thread pools for a SwiftMQ router.
-
Each thread pool has a fast ring-buffer input queue for task dispatch (SwiftMQ is completely asynchronous).
-
Pool adjustment takes place automatically during task dispatch dependent on the pool parameters, queue size, and idling/running threads.
-
Configurable assignments thread (task) to pool.
-
Pool parameters min/max threads, priority, and idle timeout.
-
Automatic handling of peak loads dependent on queue length threshold and additional thread parameter.
Timer Swiftlet
-
Provides exactly running instant and interval timers for a SwiftMQ router.
-
Consists of a fast ordered input queue and a dispatcher which dispatches timer tasks into an assigned thread pool.
-
Detects system time changes automatically (e.g. summer/winter time) and rebuilds its dispatch queue.
Topic Manager Swiftlet
-
Manages topics for a SwiftMQ router.
-
Provides topic hierarchies where each node of a hierarchy could be a SQL-Like predicate.
-
Automatic topic registration in JNDI.
-
Works federated with topic managers of other routers in a router network.
-
Dynamic exchange of subscriptions between topic managers on a some/none base to reduce message traffic.
-
Distribution of pub/sub messages to remote subscriptions and thus enables pub/sub network wide. Publish/subscribe from everywhere in a router network!
-
Provides static remote subscriptions to ensure message forwarding to remote routers during times of disconnects.
-
Provides pub/sub flow control.
-
Slow subscriber handling with the possibility to disconnect subscribers and to delete durable subscriptions.
-
Schedulable job to delete durable subscribers to run from the Scheduler Swiftlet.
Trace Swiftlet
-
Central trace facility of a SwiftMQ router.
-
Configurable trace spaces.
-
SQL-Like predicates to filter the trace stream and to direct the output to files or the console.
-
Provides very detailed information about internal processing of Swiftlets and traces protocols such as SMQP as well.
-
Intended for maintenance and SwiftMQ Technical Support.
XA Resource Manager Swiftlet
-
Central XA resource for a SwiftMQ router.
-
Handles in-doubt XA transactions (prepared but not committed).
-
Recovers in-doubt XA transactions during start up of the router and rebuilds all locks.
-
Provides administrative functions to manually (heuristically) recover in-doubt XA transactions by an administrator.
-
Replies on XAResource.recover() calls from JTA transaction managers.
Java Connector Architectur 1.5 JMS Resource Adapter
-
Inbound communication (message inflow; receive messages via MDBs).
-
Outbound communication (send messages from EJBs).
-
Synchronous receive from EJBs.
-
Combined inbound / outbound communication, e.g. MDB sends messages.
-
Support of distributed (XA) and local transactions.
-
Auto-commit mode outside of transactions.
-
Automatic recovery of indoubt Xids via XAResource.recover().
-
Deployment as a Resource Adapter to an external SwiftMQ router.
-
Alternatively: Intra-VM deployment; a SwiftMQ router is started and stopped during RA start/stop.
Kernel Swiftlets
JMS XA/ASF Swiftlet
-
Support of XA transactions.
-
Support of application server facilities (ASF) such as connection consumers.
-
Integrates with J2EE 1.3 compliant application servers.
-
Integrates with J2EE 1.4 compliant application servers via SwiftMQ's JCA 1.5 Resource Adapter.
-
Provides all functionality of the standard JMS Swiftlet too.
JDBC Store Swiftlet
-
Access via JDBC 2.0 API.
-
XA support without the need of an XA-JDBC driver.
-
JDBC-Connection pooling.
-
JDBC-Connection keep-alive and automatic reconnect.
-
Prepared statement cache.
-
Configurable SQL statements and table schema prefixes.
JDBC Authentication Swiftlet
-
Authentication groups.
-
Fine grained queue/topic grants per group.
-
User/Group assignment.
-
Host access list on a per-user base.
-
Enable/disable authentication as a whole.
-
Resource limit groups to avoid resource exhaustion.
-
Specify max connections per user.
-
Specify max session/producer/consumer/temp queues per connection.
-
User/Resource Limit Group assignment.
-
Can use any JDBC database.
-
Automatic reconnect to the database server after connection lost.
-
Caching of authentication entities.
-
Generic SQL schema mapping.
LDAP Authentication Swiftlet
-
Authentication groups.
-
Fine grained queue/topic grants per group.
-
User/Group assignment.
-
Host access list on a per-user base.
-
Enable/disable authentication as a whole.
-
Resource limit groups to avoid resource exhaustion.
-
Specify max connections per user.
-
Specify max session/producer/consumer/temp queues per connection.
-
User/Resource Limit Group assignment.
-
Can use any LDAP server.
-
Automatic reconnect to LDAP server after connection lost.
-
Caching of authentication entities.
-
Generic LDAP schema mapping.
Network NIO Swiftlet
-
Implements the java.nio API of JDK 1.4 for nonblocking I/O.
-
Uses only a few threads to handle large numbers of concurrent connections.
-
Uses TRUE nonblocking I/O.
-
Provides SSL over NIO.
-
Provides scalability with no limits!
Routing Swiftlet (unlimited connections)
-
Provides transparent connections to other SwiftMQ routers.
-
Federated router network. Address any queue/topic network wide.
-
Dynamic routing architecture with failover, any destination is reachable, even when not directly connected.
-
Static routes to address disconnected destinations.
-
Round-robin scheduling to spread traffic over multiple routes.
-
Route filters to reduce route exchange.
-
XA-based message exchange (2-phase-commit) with fully automatic recovery of in-doubt-transactions.
-
Configurable transaction (number messages/transaction for bulk transfer) and window size (max. number of transactions in transit) to maximize throughput.
-
Define listeners and connectors.
-
Host access list for listeners.
-
Automatic reconnect for connectors.
-
Configurable socket factories, e.g. for SSL routing connections.
-
Keep-alive messages to detect half-open sockets.
-
Use HTTP tunneling to connect router over HTTP proxies.
-
Schedulable connector job to run from the Scheduler Swiftlet.
Extension Swiftlets
JMS Bridge Extension Swiftlet
-
Unlimited definitions of foreign JMS server bridges.
-
Unlimited definitions of bridgings per server.
-
Queue/Queue, Topic/Topic, Queue/Topic, Topic/Queue bridgings.
-
Support of remote durable subscribers.
-
Possible to change the message persistence during message transfer.
-
Automatic reconnect with redelivery if the foreign JMS server shuts down.
-
Server bridges can be activated by jobs via the Scheduler Swiftlet (bridge activation on base of a schedule).
JavaMail Bridge Extension Swiftlet
-
Unlimited number of outbound bridges to send eMails including attachments from any JMS client with plain JMS.
-
Unlimited number of inbound bridges to receive eMails including attachments from any JMS client with plain JMS.
-
Automatic header translation from JMS message properties into JavaMail message headers and vice versa.
-
Pluggable transformers to transform JMS messages into JavaMail messages and vice versa.
-
Pre-built transformers for simple text messages and complex multipart messages with unlimited attachments of any type.
-
Bridges can send/receive on queues or topics.
-
Automatic reconnect for outbound bridges.
-
Configurable retrieve-intervals for inbound bridges.
-
Configurable max. messages per retrieve-interval, max. messages size to protect against denial-of-service attacks.
-
Provides schedulable jobs to avticate in/outbound bridges via the Scheduler Swiftlet.
-
Configurable error policies for in- and outbound bridges, e.g. send invalid messages to error queue, delete it, retry etc.
Multicast Extension Swiftlet
-
Supports unlimited multicast connections concurrently, each can be configured with different multicast address/port/interface.
-
Assigments of arbitrary topics (SQL-Like predicates) to particular connections, so every connection can serve a distinct set of topics.
-
Selectable send/receive on a per topic base.
-
Bridging between multicast connections.
-
Transparent support of JMSReplyTo for temporary topics, even if the routers have the same name!
-
Statistics of neighboor clients and automatic death detection.
Replicator Extension Swiftlet
-
Unlimited definitions of sources and sinks.
-
One-to-One and One-To-Many replications.
-
Unlimited file size due to chunking.
-
Configurable chunk size.
-
Automatic re-synchronization between source/sink. Define and forget.
-
Change of CR/LF mode for text-based files on the fly. Replicate between Windows/Unix and always have the right format.
-
Propagate events such as file/directory created/modified/deleted as XML text messages from replication sinks to arbitrary definable queues and/or topics, e.g. to pick up a new file by a JMS client.
Portmapper Extension Swiftlet
-
Unlimited definitions of port mappings between 2 Portmapper Swiftlets.
-
Support of concurrent connections through a single mapping (e.g. multiple Telnet sessions).
-
Transparent bridging of arbitrary TCP connections such as Telnet, JDBC, HTTP.
SNMP Management Extension Swiftlet
-
Enables SNMP monitoring and management of a SwiftMQ Router.
-
Includes all SNMP MIBs for all SwiftMQ Router and Swiftlets back to release 4.0.2.
-
Automatically discovers and loads Swiftlet MIBs during startup and during hot deployment of an Extension Swiftlet.
-
Contains a "getoid" utility to determine a SNMP OID from a CLI context.
-
Utilizes SNMP4J and SNMP4J-Agent internally which supports SNMPv1, SNMPv2, SNMPv3, including MD5 and SHA authentication.