名词解释
基础组件
- Application 一个Apama应用程序有一个或多个monitor、一个或多个query组成
- Package 类似java中的package
- Context 可以将EPL应用加载到多个线程中执行。
- 创建context时,是启动了一个线程池,还是启动一个线程
- 如何销毁context
4. Monitor
既可以有数据也可以有逻辑,可以接受和发送事件,定义在.mon文件中
在monitor中可以创建多个context
monitor中不能包括query
5.Query 查询是程序执行的基本单元,他可以根据pattern对传入的事件进行分区,独立处理每个分区中的事件。
定义在.qry文件中,在query中不能创建context,apama自动使用多个context来处理查询
查询不能包括monitor
6.Channel
monitor和reciver可以通过Channel订阅事件,适配器客户端配置可以指定要交付的通道事件。在EPL中,可以将事件发送到指定的通道。查询不订阅频道
7.Event
事件是一个数据对象。所有事件都有一个事件类型和事件字段的有序集合。事件类型也可以是否有零个或多个定义的事件操作操作事件字段。
数据类型
基本类型:boolean, decimal, float
引用类型:action,Channel, chunk, context, dictionary, event,Exception, listener, location, optional, sequence,StackTraceElement, stream, string. Also, monitor is a very limited pseudo-type.
listener:定义一个event Listener或streamListener 并赋值给listener定义的变量,通过调用quit来从容器中移除listener事件
action:
context:一个context的引用,可以使容器并发执行
stream:一个流对象的引用,可以存储任何apama对象,只能存储同一种对象。流是monitor的内部流。
Channel:An EPL type that contains a string or a context. A contained string is the name of a channel. A contained
context lets you send an event to that context. Defined inthe com.apama namespace.
Exception:程序的运行时异常 com.apama
StackTraceElement:程序的堆栈信息
monitor:
Monitor name :每个monitor都有一个名字,可以用来从容器中删除monitor
monitor instance:实例.当容器加载monitor时会创建实例,之后的monitor实例通过spawns创建,并称为sub_monitor
sub_monitor:子实例,monitor实例称为子monitor
Query
Query Name:每个Query都有一个名字,可以用来从容器中删除Query
Query instance:
当容器加载非参数化的查询时,会创建一个查询实例。
当容器加载参数化的查询时,不会创建查询实例,知道提供参数时,才会创建实例
一个有参数的query可以多次通过参数实例化
Query key
一个key识别一个或多个event中的字段,that查询指定为输入事件类型
每个查询输入事件类型必须指定相同的key
Query partition:一个分区包含一组事件,所有的事件的key必须相同,一个或多个窗口包含添加到每个分区的事件。
Event:pass
Listeners:
Event listener: In monitors, 用户定义监听器. In queries, 容器自己定义监听器 on statement定义event Listener
Stream listener:
from statement :定义streamListener
Listener action :监听器的action可以是语句或者块
Listener handler:监听器句柄:可以用来删除(quit)监听器
Event template:事件模板,指定监听的事件类型或事件的字段值
Event operator:事件操作,关系运算符、逻辑运算符或时态运算符 事件模板,并在事件表达式中指定
Event expression:事件表达式,标识一个事件或匹配事件。
Stream query :在monitor中定义,一个流查询应用于1个或两个streams,一个流查询输出为一个连续stream,
流查询和Apama查询是一个完全不同的结构
Stream source template 流源模板,
Stream network 网络流源模板,流,流查询和流侦听器。上游元素流入下游元素产生派生、增值物品。
Activation:由于时间的推移或物品的到达而引起的流网络 处理流中的元素
注意事项
- 不可以在com.apama包中定义结构体,这个包为apama系统包。
容器接收事件的几种方式:
- 使用Software AG Designer从文件中发送事件
- 从适配器接收来自外部源的事件。Apama适配器将事件从非Apama格式转换为Apama格式。
- 运行Apama engine_send实用程序手动将事件发送到相关器
- monitor或query在容器中生成事件。
- 您可以使用C、c++、Java或.NET编写使用Apama客户机API的应用程序将事件发送到相关器。
事件发送的注意事项:
- 当event中包含context字段时,不能将事件发送到容器外,但是可以在monitor间发送
- 当event中包含chunk , listener and stream 字段时,只能在创建它的monitor中使用,此事件不能send。
- 如果事件包含chunk , listener and stream ,则无法侦听该事件。
- wildcard 当字段不会在匹配事件的时候使用时,使用wildcard修饰,可以提高性能,减少内存
- 一个event对多包含32个索引字段,一个location占用两个索引字段
- constant的类型为is boolean,decimal, float, integer, or string,必须赋初始值
事件定义初始化
event StockTick {
string name;
float price;
}
StockTick("ACME", 55.20)
事件的通用函数
canParse(string),判读是否可以通过字符串转化为事件,return boolean
parse(string)
isExternal() 判断事件是否为外部事件;True为外部事件
clone() 事件的克隆,深克隆,引用对象也会克隆,如果有field指向自己则不会克隆。
getFieldNames() 获取事件的成员变量名 return sequence <string>
getFieldValues() 获取事件对象的成员变量值 return sequence <string>
getName() 获取事件的名称
getTime() 19700101的之后的秒数
toString()
event可以定义在monitor文件中,但是这个event只能被当前monitor使用。并且不能从外部发送到容器。
事件必须定义在monitor之前,
可以使用此类型事件的monitor:
a.evnet事件所在文件中定义的monitor
b.在此文件之后注入容器的monitor
2 .可以在一个mon文件中定义多个事件
Apama服务监控
- DataView Service 向仪表板公开只读数据。这些数据来自EPL和Java应用程序
- Password Service 支持从特定于实现的提供者检索密码
- Scenario Service 为所有基于场景的应用程序提供支持
- ADBC Adapter 在Software AG Designer中与Apama的数据播放器一起提供事件捕获和回放。
还监视Java数据库连接(JDBC)和开放数据库连接(ODBC) - IAF Status Manager 监视与适配器的连接
预定义注释 annotations
标签使用的位置
- Monitor declarations
- Event declarations
- Fields of events
- Actions in monitors or event definitions
名称 | 参数 | 描述 |
SideEffectFree | NONE | com.apama.epl package |
OutOfOrder | None | com.apama.queries package |
TimeFrom | string | com.apama.queries package |
Heartbeat | string | com.apama.queries package It tells the query runtime the default |
DefaultWait | string | com.apama.queries package |
1.ApamaDesigner
1.designer JDK版本
1 . 打开本地的 Designer 安装路径,并找到eclipse.ini文件:
Software AG_directory\Designer\eclipse\eclipse.ini
2.用文本编辑器打开
3. 修改-vm参数的配置项
4. 保存文件并重启Designer
2.内存监视器的开启和关闭
Window > Preferences,
selecting the General entry, and selecting the Show heap status option.
3.调整Designer内存设置
1. Locate the following file in your Designer installation:
Software AG_directory\Designer\eclipse\eclipse.ini
2. Open the file in a text editor.
3. Locate the -Xmx parameter and modify it as required:
For systems with 1 GB or less of memory, set -Xmx=512m
For systems with more than 1 GB of memory, set -Xmx=1024m
4. Ensure that the value for -Xms is less than the value for -Xmx.
5. Save the file and restart Designer.