Developing Apama Applications > Developing Apama Applications in EPL > Defining Queries > Restrictions in queries
Restrictions in queries
There are some EPL elements that are appropriate for monitors but not queries, for example spawn and die. This is because queries scale automatically, with multiple threads of execution processing the events for different partitions as and when they arrive. Hence, within query code, the spawn and die operations are meaningless. Queries operate on the events in their windows and do not need to set up event listeners, stream queries, or stream listeners. Also, queries cannot subscribe to receive events sent to particular channels.
The following EPL features cannot be used in queries:
*Event listeners, that is, on statements
*Stream queries and stream listeners
*spawn and spawn...to statements
*die statements
*monitor.subscribe() and monitor.unsubscribe()
*route statements
*An identifier cannot start with two consecutive underscore characters. For example, __MyEvent is an invalid event type name in a query (it is valid in a monitor). A single underscore at the beginning of an identifier is valid.
*Predefined self variable
Of course, you cannot call an action on an event when that action uses a restricted feature listed here.
The recommended means to send events from queries to monitors is by sending to a channel. See Generating events with the send command.
The debugger does not support debugging query execution - it is not possible to set breakpoints in a query file. Use of the debugger can also affect how quickly queries are ready to respond to events, and should not be used in a production system (where it would cause significant pauses of the correlator).
Copyright © 2013-2015 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors.
Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Software AG.