[
https://issues.apache.org/jira/browse/FELIX-3321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Ziegeler resolved FELIX-3321.
-------------------------------------
Resolution: Fixed
Committed a complete new implementation for handling the event handlers in
revision 1236655
Instead of going to the service registry for each event, we now use a service
tracker which keeps track of registered event handlers. For each available
handler, a proxy is created which caches information about the handler like the
topics, optional filter, timeout handling etc.
Once the first event is send to a handler the proxy gets the service from the
registry and keeps it until the service goes away or is modified.
This reduces the load of the service registry to a minimum
At the same time, the proxy allows us to optimize event handling and get rid of
the special filter caches for topics.
In addition I've improved the permission handling. If security is disabled, no
permission objects are created anymore
The whole thread handling has not changed at all - its the same as before
The new implementation passes the TCK (as before)
> Improve implementation and reduce load on the service registry
> --------------------------------------------------------------
>
> Key: FELIX-3321
> URL: https://issues.apache.org/jira/browse/FELIX-3321
> Project: Felix
> Issue Type: Improvement
> Components: Event Admin
> Affects Versions: eventadmin-1.2.14
> Reporter: Carsten Ziegeler
> Assignee: Carsten Ziegeler
> Fix For: eventadmin-1.3.0
>
>
> The current implementation queries the service registry for each occuring
> event, gets the services and then releases them. Especially with a high event
> volume this creates a very high load on the service registry.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira