Common mistakes in EPL

Although we’ve tried our hardest to make the Apama Event Processing Language (EPL) familiar and easy to get into, there will always be some room for error. In this blog, we will explore some of the common ‘gotchas’ that often vex EPL newcomers, hopefully making the introductory experience as pleasant as possible.

Listener Capture and Scope

With the following code, one might expect output of the form ‘1, 2, 3, 4, 5…’

EPLmonitor test { action onload() { integer i := 0; on all wait(1.0) { i := i + 1; log i.toString(); } } } 1234567891011  monitor test {    action onload() {        integer i := 0;        on all wait(1.0) {            i := i + 1;            log i.toString();        }    }} 

Compared to the actual output which looks more like ‘1, 1, 1, 1, 1…’.… Read More

Chain Managers – Dynamic Connectivity

Connectivity plug-ins can be written in Java or C++, and run inside the correlator process to allow messages to be sent and received to/from external systems

Individual plug-ins are combined together to form chains that define the path of a message, with the correlator host process at one end and an external system or library at the other, and with an optional sequence of message mapping transformations between them.

Refer TECHniques Blog post on Apama connectivity plug-ins.… Read More

Apama Community Expansion

Today, we are very pleased to announce two new major features for the Apama Community to enjoy! We hope that these extensions will enable community members to more easily find and share community made resources.

Dedicated Stack Overflow tag

Apama now has it’s own tag on the popular programming forum Stack Overflow. Stack Overflow is a community moderated, public forum for discussing various problems and solutions regarding software projects. This tag will enable community members to post Apama related questions, which subscribers of the tag will be alerted to.… Read More

Passing Secrets to the Correlator With Docker and Kubernetes

Docker and Kubernetes both provide a means for passing encrypted data into your application through secrets.

To demonstrate this, a new sample has been added to our GitHub repository.

This sample demonstrates how to set the variable CORRELATOR_NAME using a secret, which is then read by a configuration file which is loaded into the correlator.

These secrets could be used for securely passing credentials to HTTP/REST clients. An example of doing this to access the openweathermap.org API is shown below (all commands are for Linux).… Read More

Advanced usage of the Any type

In our previous Introduction to the Any Type blog, we learned about the new EPL any type introduced in 10.1. In 10.2, we expanded the set of reflection capabilities on the any type. These new additions increase our ability to write even more generic and dynamic Apama applications, so let’s explore them now!

Reflection Capabilities Of the Any Type:

Reflection allows EPL to act on values of an any type object in a generic way, including altering the behavior to adapt to what fields or actions a type has.… Read More

Using Apama with Docker and Kubernetes

In Apama 10.2 we have upgraded the versions of Docker that we use. We have moved to Docker v17.09.0-ce, Docker Compose v1.16.1 and Compose API 3.3. In addition we have also introduced support for using Kubernetes. Our Docker samples now include Kubernetes orchestration files that are the equivalent of the the YAML files supplied for Docker Compose.

Assumed KnowledgeHow to start a correlator, including using a YAML configuration. Using Docker containers.… Read More