Database Reference
In-Depth Information
From this point, we can pass events data to the processor <processor> as demon-
strated in the previous CQL code snippet with MATCH_RECOGNIZE . That's all good, but
as we know, the problem with JMS in the default configuration is that if we took out the
message for processing and fail for some reason, we will not have any possibilities to re-
cover this event. What's even worse is that, by doing this, we most probably would have
already sent the acknowledgment message to a JMS events provider. So, with this ap-
proach, the third "-ility" is now in question: reliability. It is true that in some scenarios,
you really can tolerate event losses, but if you don't, it will be better to use an intermedi-
ary storage for such events.
On second thoughts, not everything is exactly well with JMS in terms of scalability either.
Yes, it is multiconsumer alright, thanks to the concurrent-consumers property;
however, by handling large and extra-large event streams through JMS, we will (most
probably) employ the MapMessage interface ( http://docs.oracle.com/javaee/7/api/javax/
jms/MapMessage.html ) . This is the standard way for name-value pairs, but we have to re-
member that the allocation of JVM memory heap by this class is rather aggressive, that is,
the total allocated memory could be almost twice as big as the actual message size.
So, we have to keep that in mind while planning the EPN horizontal scaling and contem-
plate garbage collector activities when JVM memory is depleted or too fragmented; this
will consume almost all of the processor time. Just have an additional 30 percent of pro-
cessor time available and keep them symmetrical. Here, the Oracle EPN clustered deploy-
ment model will be really handy ( http://docs.oracle.com/cd/E14571_01/doc.1111/e14301/
scalconfig.htm ) .
Establishing it will require you to copy your default server directory and rename the new
subfolders into something more meaningful in the CEP domain root. You can create sev-
eral copies ( epnserver1 , epnserver2 , epnserver3 ,… epnserverN ) and modi-
fy the config file ( <DOMAIN_HOME>/ epnserver1/config/config.xml ),
setting correct values for <netio> and <sslnetio> (usually 9001 and 9011 for re-
lated tags) and edit the content of the <cluster> section according to the Oracle docu-
mentation (not much, just four elements). These modifications in config.xml must be
done for all servers (ports on the same physical box must be different, of course), and the
domain must be restarted.
One certain advantage of the JMS approach (compared to DB storage) is that it's relatively
easy in terms of new application deployment and infrastructure support, but some changes
should be made to the CEP application itself in order to make them truly scalable and
Search WWH ::




Custom Search