XmlBlaster is a MOM (Message oriented Middleware) with a lot of features.
XmlBlaster is a publish/subscribe and point to point 100% Java based MOM server (message-oriented middleware) which exchanges messages between publishers and subscribers. The message is described with XML-encoded meta information. Messages may contain everything, GIF images, Java objects, Python scripts, XML data, a word document, plain text - just anything.
Communication with the server is based on CORBA (using JacORB) or RMI or XmlRpc, clients are free to choose their preferred protocol. Other protocols like email, socket or SOAP may be plugged in.
Subscribers can use XPath expressions to filter the messages they wish to receive.
XmlBlaster uses the Sun XML parser for XML parsing, and XT from James Clark for XSL parsing.
This is the publish/subscribe middleware server you have needed many times before, now available for free to glue together your distributed client/server application.
The xmlBlaster server is pure Java and under LGPL.
PHP, Perl, Python, C, C++, C#, Visual Basic.net and Java (applications, servlets, applets) client samples are delivered in the xmlBlaster distribution.
You should be ready to go with your preferred development language.
XmlBlaster provides a browser callback framework, allowing browsers (Mozilla, MSIE, Netscape) to receive instant callbacks over a persistent http connection.
Here are some key features of "xmlBlaster":
· Free for private,commercial,education use (LGPL - License)
· Message Orientated Middleware (MOM) with Publish/Subscribe and PointToPoint (PtP) support
· Multi platform support (server is pure Java)
· Multi protocol support (CORBA, RMI, XmlRpc, raw socket, EMAIL, native access)
· Language neutral (clients for C++/C, Java, Python, PHP, Javascript, Perl, C#, Visual Basic.net ...)
· Client side persistent queuing with C/C++/Java/ActiveX/Javascript
· Extensible (XML based QoS)
· Queryable Topics (Topic access with XPath)
· Mime based full text search (currently plugins for regular expressions and XPath)
· JMS conforming SQL key/value query support (SQL92)
· Security system independend (currently plugins for LDAP and crypt-passwd), supports authentication, authorization and message interceptors
· Persistence plugin architecture (currently plugins for Oracle, MS-SQLServer, Postgres, Firebird and others)
What's New in This Release:
o #16639 Implemented I_PostSendListener for java clients and server
to get notification on *asynchronous* send messages from queue:
1. postSend() delivers the ReturnQos
2. sendingFailed() delivers the Exception
Fixed java client: Now toDead() is called for all erroCodes despite communication
The previous code called toDead() only for user exceptions.
o #16630 C++ client now compiles with xerces 2.8 (64bit or 32bit)
o #16621 The FileWatcher and FileWriter can be managed by the HTML based replication monitor
(similar to the database replication)
o #16621 FileWatcher plugin for Java (supporting streaming mode for huge files)
http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.filewatcher.html
o #16614 FileWriter plugin for Java and C++ (supporting streaming mode)
http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.filewriter.html
Note: Incompatible rename from Reveiver to FileWriter (attrib names changed as well)
o #16601 Added Scheduler Plugin: it is now possible to define operations to be
scheduled. see
http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.scheduler.html
o #16586 Added ServerScope (if any) object to Global when cloning Global
o #16582 Added streaming publisher (which chunks big messages into smaller chunks)
o #16561 Memory leak fix for EventPlugin, it was introduced about #16357 (EventPlugin notification when queue threshold is reached)
o #16532 Logging with XbFormatter: Changed to use ISO 8601 date and time for logging
o #16531 Added Checkpoint plugin to support tracing the message flow with customized log files
See http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.checkpoint.html
for usage details (and xmlBlasterPlugins.xml to activate it and logging.properties to configure amount of details logged).
See javadoc of xmlBlaster/src/java/org/xmlBlaster/util/checkpoint/Checkpoint.java
o #16528 Adjustable SmtpClient mail timeout (see xmlBlasterPlugins.xml example)
3600000
600000
o #16518 C++ Fixed putToQueue(): Now always if POLLING or other messages in queue
o #16510-#16514 C++ I_PostSendListener introduced
You can now be notified after a message from client side tail back queue has
been send to xmlBlaster (e.g. to access the real PublishReturnQos)
See PublishDemo.cpp postSend() as an example
o #16506 C++ Timestamp: Fix for time going backwards
o #16500 C++ RamQueuePlugin: Fixed typo which prevented sending limited maxNumOfEntries
#16501 C++ ConnectionsHandler: Each tailback msg send from client queue is now instantly removed from queue (no bulk acks)
o #16493 Dead lock fix between callback ping and reconnect thread (reported by Xavier)
Now all threads enter the syncs hierarchical over the DispatchManager
o #16471 contrib: incompatible interface change in I_ResultCb: needed to make alter table recreate the
trigger on the master side of a replication
o #16469 removed double spanning of poll timer when going from ALIVE to POLLING
o #16467 Replication: fixed in trigger timestamp is always using '.': was using locale punctuator
resulting in an exception on the writing side. Also made writer more tollerant (would
handle a comma now)
o #16457 Continue loading sessions from persistence even if one fails (e.g. because of changed authentication)
TODO: Implement generic approach to handle such sessions (security plugin should grant access if coming
from persistent store).
o #16449 JMX control
- Added SessionInfo getCbQueueBytes() and getCbQueueBytesCache()
These are the bytes of the refence objects only (not containing the message itself)
- Fixed allowedToReconfigureTopicAndFixWrongLimits() typo at: if (currentMaxEntries > historyProps.getMaxEntries())
- Added reportMemoryOverview() and reportMemoryOverviewToFile(String file) on node level
- Added I_Map: getNumOfCachedEntries and getNumOfCachedBytes
Configuration of
persistence/msgUnitStore/maxEntriesCache
persistence/msgUnitStore/maxEntries
persistence/msgUnitStore/maxBytesCache
persistence/msgUnitStore/maxBytes
and the history queue equivalents
is now enforced on restart of xmlBlaster during persistent topic recovery
Bugfix of checkConsistency(I_Map, fixIt, reportFileName) which reported
leaks which probably weren't.
o #16444 removed synchronized in CacheQueueInterceptorPlugin.clear since it caused a deadlock
when clearing a callback queue and publishing messages at the same time
o #16442 Fixed to avoid remote DNS hostname lookup if hostname given is raw IP
Added to avoid DNS localHostname lookup if localHostname given is raw IP
o #16430 EventPlugin: Added missing support for wildcards in event type callbackState
client/*/session/*/event/callbackState
o #16416 Bugfix XmlScript over SOCKET: Fixed to use configured parser on callback ping
o #16411 Bugfix: Fixed XmlScript over SOCKET handling for incoming EOF
See http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.socket.html#script