Case study:
EMG at Mblox (PDF)
Download EMG 7.2.4 Print
Thursday, 22 August 2019

Overview

Changes

These are the changes in EMG 7.2.4 as compared to EMG 7.2.3. It also contains all updates from the 7.1 branch up to version 7.1.13.

  • The command "emgd -verify" did not work if emgd was already running.
  • Allow addresses with embedded whitespaces in the whitelist and blacklist files.
  • Multiple improvements related to plugins:
    • The PLUGIN section can now use an URL instead of a LIBRARY. All plugin calls are made to that URL, plus the plugin name (e.g. http://127.0.0.1:8000/my_plugin_1/before_send). This enables the implementation of plugins in any language that can respond to HTTP traffic, multiple plugins sharing code, and more. An example server in node.js is provided on BitBucket. The SSL binaries are required for this feature. The URL can be changed at runtime.
    • The PLUGIN section also has a new option CONNECTORS, where the value is a list of connectors to send to the plugin hooks. The current state and queue size of potential connectors can be used by plugins to do more intelligent routing decisions, but collecting this information can be time consuming if the number of connectors is large.
    • The value for INSTANCES can now be changed in runtime, for both Perl and URL plugins.
  • Support for SOAP is removed, as this is better handled by a custom DLL driver or URLHANDER. This means the HTTP dialect HTTP-WS for outgoing traffic, and the path /bin/soap for incoming traffic.

EMG 7 is backward compatible with configurations for earlier versions of EMG, with the current exception being the SOAP drivers. It is possible to download the binaries-only distribution and replace the binaries for an earlier version. However, some configuration options have become obsolete, so please examine the log/general file carefully. If you need the other files, such as SQL schema files etc, please download the full distribution.

Quality Assurance

EMG 7.2 is tested using the combinatorial testing technique, with test cases created automatically by Tcases. This is a way of testing as many different combinations of configuration options, communication protocols, types of message data etc as possible, within a reasonable time frame.

According to the Valgrind tool "helgrind", there are no known situations where thread locks are used inconsistently or with the risk of a deadlock.

Downloads

Important notice 1! When upgrading from an earlier EMG release and using a database a schema change will need to be applied ("emgd --upgradedb"). This schema upgrade may take a long time to complete. We recommend testing on a copy of the database first.
Important notice 2! EMG 7 includes functionality that depends on embedded perl. EMG 5.2.6 and later includes Perl 5.12.2 statically linked into the emgd binary. This means that for Perl plugins that do not depend on external modules (such as CPAN modules) there are no external dependencies. Read more »

Downloads are password-protected. To obtain the username and password required for download, please use our license request form.

The binaries are built on CentOS 5.4 (64-bit) with glibc 2.5, so they should work fine on any recent Linux distribution.

EMG 7 requires a new license key when upgrading from EMG 6 or earlier.

Installing EMG 7.1 and EMG Portal 3 on CentOS 7 »

Binaries only

With SSL/encryption support: EMG 7.2.4, 17 MB

Without SSL/encryption support: EMG 7.2.4, 12 MB

Full distribution

With SSL/encryption support: EMG 7.2.4, 17 MB

Without SSL/encryption support: EMG 7.2.4, 12 MB