Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In MQTT Transmission and MQTT Engine support was added to transmit alarm events from the Edge (MQTT Transmission) to the Central Gateway (MQTT Engine) . They also now support acknowledgements from the Central Gateway (MQTT Engine) back to the Edge (MQTT Transmission).

Note

The Alarm Event Propagation implementation is limited as detailed below:

  • The only alarm properties that are currently propagated are: Name, Priority and Notes.
  • Alarms over the GAN from an Engine gateway where alarms were forwarded over MQTT from Transmission is not currently supported
  • Alarm pipelines and notifications exposed across MQTT along with alarm data is currently not supported
  • Alarm Status Table filtering to a Sparkplug Group/Edge and/or Device ID is not fully supported
    • In release 4.0.28 Sparkplug IDs were added to the source and display path of alarms at MQTT Engine to allow for Alarm Status Table filtering to Sparkplug IDs
    • From release 4.0.28 onward, MQTT Engine supports explicitly inserting alarm events into the Alarm Journal on arrival


To configure alarm event propagation from Transmission to Engine, follow these steps:

...

Double check that the wrapper.java.additional.XX=--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED syntax has been added to the ignition.conf file wrapper.java.additional statements and indexed correctly on both the MQTT Transmission and MQTT Engine Ignition instances.

Code Block
Example from Ignition version 8.1.44
#********************************************************************
# Wrapper Java Properties
#********************************************************************
# Java Application
#  Locate the java binary on the system PATH:
#  Specify a specific java binary:
set.JAVA_HOME=lib/runtime/jre-win
wrapper.java.command=%JAVA_HOME%/bin/java

# Tell the Wrapper to log the full generated Java command line.
#wrapper.java.command.loglevel=INFO

# Java Main class.  This class must implement the WrapperListener interface
#  or guarantee that the WrapperManager class is initialized.  Helper
#  classes are provided to do this for you.  See the Integration section
#  of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
...
# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1
wrapper.java.classpath.1=lib/wrapper.jar
wrapper.java.classpath.2=lib/core/common/*
wrapper.java.classpath.3=lib/core/gateway/*

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=lib
wrapper.java.library.path.2=lib/core/gateway

# Java Bits.  On applicable platforms, tells the JVM to run in 32 or 64-bit mode.
#wrapper.java.additional.auto_bits=TRUE
wrapper.java.additional.auto_bits.macosx=FALSE

# Java Additional Parameters
wrapper.java.additional.1=-Ddata.dir=data
wrapper.java.additional.2=--add-opens=java.base/java.lang=ALL-UNNAMED
wrapper.java.additional.3=--add-opens=java.base/java.io=ALL-UNNAMED
wrapper.java.additional.4=--add-opens=java.base/java.security.cert=ALL-UNNAMED
wrapper.java.additional.5=--add-opens=java.base/java.util=ALL-UNNAMED
wrapper.java.additional.6=--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
#wrapper.java.additional.6=-Xdebug
#wrapper.java.additional.7=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:8000
wrapper.java.additional.7=--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED

# Initial Java Heap Size (in MB)
wrapper.java.initmemory=1024

...