@-0 |
2004-Aug |
-
Changed comments in V41, but due to the long time, I've not
worked in this project, I generated V42, so far I know,
without any changes.
-
The viewers are more needed than ever, but all is alpha-code and
has nearly no organization. So I build a small framework based
on frames, treeview and aspx/html pages. There is a screenshot
which shows what I think.
-
ECS.Collector:In Init(), an eventhandler was only established
for the case, that autoStart ist set to true for a collector.
This is a bug, because Start() does not correct this for a collector.
Now, the handler is always established, if used or - in this moment - not.
If the collector is later started, the handler is already present.
|
@-0 |
2004-Apr |
|
@-0 |
2004-Mar |
-
The CollectorService got a new
method:CollectorService.LoadEventCollector.
This is just to load ONE entry from the
configuration-file and replace the existing
Collector instance wit it for the case,
that this isntance was misconfigured.
-
The EventCollector has a new
method:EventCollector.RemoveEventSource.
This is to simplify the
management a bit. Via the remoting interface,
an administrator can delete the remotely existing
EventSource, for example, because the box
will no longer be monitored.
-
The EventCollector has two new events:
- FirstEventlogMessage
- NoConnection
and the existing event Message was
renamed to EventlogMessage.
- FirstEventlogMessage
This event is raised for each eventlogmessage
received after each [also the first] start of
an instance. This allows the CollectorService
to determine the first and latest messages received
and advice a [TBD] EventlogReader class
to pull all events between these two timestamps
and store them into the DB, if the
flag allowReadingStoredMessagesAtStartup
[from ServerService.Config.StaticConfig class]
is set.
- NoConnection
This allows the ServerService to directly
notify an administrator, if a connection to a box
was lost.
-
The EventCollector now starts using System.DirectoryServices
to establish a secure channel to the remote machine. Within this
context, the EventSource can be created. This was verified
with a small separate exe-tool.
-
V0.23 is a first version with basic re-animation working, but offers
security problems for non-trusted connections. This version is now
frozen and V0.24 continues.
-
Because of the growth of the EventCollector class, methods
which are bigger are now build as static class members
to shrink runtime-requirements. The methods are:
- PrepareWQLQuery
- SendKeepAliveMessage
- ManagementBaseObjectToEventlogMessageRecord
-
The EventCollector's state is now only maintained
in this class itself. The cost is, that each instance now has it's
own timer.
-
In V0.22, the main changes to the CollectorService was
to run the CollectorService.BuildEventCollector method
on a separate therad, because instantiating the EventCollector
was too expensive, because in it's constructor, the connection to
the remote machine was created, which could fail and block the
constructor.
-
The EventCollector.IsEventSourceRegistered fails with
Access denied error, if the remote box is not on the
same domain and credential have to be specified. There is
currently a lack......
-
The EventCollector.EventCollector connects directly to
the remote machine, which is very time expensive, if this
machine is currently not reachable.
The EventCollector.EventCollector uses
the IsEventSourceRegistered method to determine, if a connection
to the remote box is available.
-
The CollectorService has now only two timers, one for
updating the statistics, one for writing current Collector
stati into the local eventlog.
-
The CollectorService does no longer expose methods to
manage individual Collector's;The Collector is
already available as the class's indexer. Also
all ALLxxx-methods have been removed.
-
Version 0.21 invalidated by chaotical changes ;-)
|
@-1 |
2004-Feb |
-
UserInteractive, from System.Environment added to
the startup-info.
-
New:Writing the StartupSummary to the local eventlog
and introducing an additional timer for this.
-
CollectorService:The timers are now initialized
in method Init() then in the constructor.
-
Collector:In OnEventArrived, there was
a wrong catch-block. The catch is now to handle errors
in ManagementBaseObjectToEventlogMessageRecord(mbo).
-
CollectorService:Locking the whole class is
not necessary in OnMessage;removed.
-
The property instanceIdentifier added to the
ECS.ServiceApplication.Config.xml [class
ECS.ServiceApplication.Config.StaticConfig].
This is used to define the keepAliveMessage as
a string, unique for the running instance to allow
tests with another instance on the same machine and
to allow detection of each's keepAliveMessage.
-
Collector:The method Reset() removed.
-
CollectorService:The method ResetAllEventCollectors(),
ResetEventCollector(), StartAllEventCollectors()
and StopAllEventCollectors() have been removed.
-
Collector:There was a code-part to decode
the WMI Type, which is a string, as an integer to allow
to store an integer into the DB instead of the string.
All Windows NT versions before
Windows 2000 SP3 have a wmi-design-bug:The Type is
a localized string. Since Windows 2000 SP3, the EventType
from WMI is available and is an integer. The code-part mentioned
was to map between the strings and the integer value and allows
to store the integer into the DB instead of the string-value.
This code-part is removed and all configuration-files are changed
as follows:
-
The service-configuration now reads an array named
eventTypeNames which allows to configure,
from which language the names are translated.
Regard:Only one language can be translated
and this is global.
-
This array is passed into the Collector
dynamic configuration and the code-part mentioned
has changed to lookup in this array, where the
index of the array is the EventType.
-
CollectorService:BuildQuery removed from the class and
inserted as FilterHelper.BuildQuery in the Structures
assembly. This is more clear and simplifies the CollectorService.
-
Collector.Config.Dynamic and Collector.Config.Static
are now melted together to Collector.Config[.cs/.dll].
-
In CollectorService:BuildEventCollector(), each
collector was added to the list of collectors, after
the collector was created/started. This could fail,
because there is no other check of uniqueness of
collector-names. So adding the collector to the list
is now done in CollectorService:Init(), but
only adding it's name, with
a following update at CollectorService:BuildEventCollector() to
insert the collector-instance itself.
-
The ApplicationService now logs more information in the
startup-phase:The running users identity, the process ID
and the thread ID.
-
The EventlogFilter and all derived classes implement
IComparable because later, in combining local
filters [specific to an individual collector] and global filters
[to apply to all collectors] they must be comparable to be able
to remove filters which are declared both, on the collector and
and global.
-
Applied global filters.
-
Prevent a collector to use credentials, if the name localhost
was used in the config-file.
|
@-2 |
2003-Dec |
-
Split the service-application, the server-service and the collectors
in separate classes and modules.
|
@-3 |
2003-11-12 |
-
Implement a rudimentary basic version, which shows just some ideas.
|