Applicable with Version 2.5 Oct 2010
Help Version 2.5.123

Contents   Introduction   Concepts   User Help   Modeler Help   Browser Help
Administrator Help   Developer Help    Utility Help   Visio   Graphical Modeler

 

InspiredBg

Audit Logging

EVA Netmodeler supports audit logging on both the meta and the instance level.

Meta Audit Logging

This feature logs all additions, changes and deletions of meta model elements made in the Type Browser. It is useful to have this feature turned on if you are changing the meta model, or if there is more than one user authorised to make changes to the meta model. This log is for information and diagnostic purposes only - no rollback function is provided. The log contains the following information for each meta data change that occurs:

  • Type of change made - including Create, Edit, Delete for types and the properties and relationships on the type.
  • Time stamp of the change
  • The identity of the type that was changed
  • The before and after images of the type that was changed, encoded in XML format

The following system settings control the meta audit feature

  • MetaAuditNodeTypeSwitch
    Switches the meta auditing feature on or off. The default value is 'NO'
  • MetaAuditType
    Determines the NodeType to use to log meta changes. The default value is "MetaAudit". It should not be necessary to change this setting. If it is changed, the new type that it refers to must have exactly the same properties and relationships as "MetaAudit"

Note that having meta auditing switched on when you are doing a large Meta Import can result in the import being very slow.

up 

Instance Audit Logging

EVA Netmodeler can be configured to audit all changes to items in the repository. The feature is an option which administrators can enable by specifying appropriate system settings (detailed below). When enabled, EVA Netmodeler will monitor all creation, updating of properties, linking and deletion of items in the repository. These actions will cause output to be written to an audit trail file on the server. The items are written out as after images (post update) and in the same format as a normal XML export, but with the addition of a "header" to describe what operation was performed, when and by who. This provides a concise log of all activities that is capable of (i) explaining how any item came to be in its current state (ii) with an appropriate extract strategy, recreating any item in the repository at a previous state by importing its saved XML image. Currently, such extraction would be a manual process or performed with third party tools.

Since server performance would degrade if the log were to increase in size indefinitely, the administrator can use a provided setting to control the maximum size of an individual log file. Should the file become full, the server will begin logging to a new file, while the full file will be renamed to include the date and time and be closed.

Logging takes place in a separate thread to transaction execution and should have little impact on normal response times experienced by users of browsers and the graphical modeler.

Required Settings

  • InstanceLogEnabled
    YES - log will be written to the file named in the InstanceLogFileName setting
    NO - no logging takes place
  • InstanceLogFileName
    Name of the file to which the log will be written. This will be created in the Audit directory under the Archi path within the Application path
  • InstanceLogFileSize (specified in bytes)
    Maximum size of the file before a new file is started and the old (full) one is renamed by appending the current time stamp to the end of the name

Output File Format

The fundamental format is given below:

<INSTANCELOGEVENT>
            <EVENTTYPE></EVENTTYPE>
            <USERID></USERID>
            <TIMESTAMP></TIMESTAMP>
            <OBJECTDATA>
                        <NODE>
                                    <NODENAME></NODENAME>
                                    <TYPE></TYPE>
                                    <NODEID></NODEID>
                                    <ATTRIBUTE>
                                                <ATTRIBUTENAME></ATTRIBUTENAME>
                                                <ATTRIBUTETYPE></ATTRIBUTETYPE>
                                                <VALUE></VALUE>
                                    </ATTRIBUTE>
                        </NODE>
                        <RELATIONSHIP>
                                    <SOURCENODETYPE></SOURCENODETYPE>
                                    <SOURCE></SOURCE>
                                    <SOURCEID></SOURCEID>
                                    <RELNAME></RELNAME>
                                    <RELID></RELID>
                                    <INVRELNAME></INVRELNAME>
                                    <INVRELID></INVRELID>
                                    <TARGETNODETYPE></TARGETNODETYPE>
                                    <TARGET></TARGET>
                                    <TARGETID></TARGETID>
                        </RELATIONSHIP>
            </OBJECTDATA>
</INSTANCELOGEVENT>

Note the following:

  • Each event is written to the log between the INSTANCELOGEVENT and corresponding end tag
  • The event type, user id and time stamp are recorded
  • The node name, type and internal node ID are recorded
  • The node properties (attributes, their types and their values) are logged
  • If appropriate, the relationships are logged

Below is an example file where an item is created, linked, updated and finally, deleted.

<INSTANCELOGEVENT>
            <EVENTTYPE>CREATE</EVENTTYPE>
            <USERID>GrahamNew</USERID>
            <TIMESTAMP>2006-11-29-03.43.58.000000</TIMESTAMP>
            <OBJECTDATA>
                        <NODE>
                                    <NODENAME>New+Test4+Item</NODENAME>
                                    <TYPE>Test4</TYPE>
                                    <NODEID>45654</NODEID>
                                    <ATTRIBUTE>
                                                <ATTRIBUTENAME>Description+(HTML)</ATTRIBUTENAME>
                                                <ATTRIBUTETYPE>Archie2DiscussionHTML</ATTRIBUTETYPE>
                                                <VALUE></VALUE>
                                    </ATTRIBUTE>
                                    <ATTRIBUTE>
                                                <ATTRIBUTENAME>Telephone+No+(cell)</ATTRIBUTENAME>
                                                <ATTRIBUTETYPE>String</ATTRIBUTETYPE>
                                                <VALUE></VALUE>
                                    </ATTRIBUTE>
                                    <ATTRIBUTE>
                                                <ATTRIBUTENAME>Updated+on</ATTRIBUTENAME>
                                                <ATTRIBUTETYPE>Archie2LastUpdated</ATTRIBUTETYPE>
                                                <VALUE>2006-11-29-03.43.58.000000</VALUE>
                                    </ATTRIBUTE>
                                    <ATTRIBUTE>
                                                <ATTRIBUTENAME>Updated+by</ATTRIBUTENAME>
                                                <ATTRIBUTETYPE>Archie2TouchedBy</ATTRIBUTETYPE>
                                                <VALUE>GrahamNew</VALUE>
                                    </ATTRIBUTE>
                        </NODE>
            </OBJECTDATA>
</INSTANCELOGEVENT>
<INSTANCELOGEVENT>
            <EVENTTYPE>LINK</EVENTTYPE>
            <USERID>GrahamNew</USERID>
            <TIMESTAMP>2006-11-29-03.44.53.000000</TIMESTAMP>
            <OBJECTDATA>
                        <RELATIONSHIP>
                                    <SOURCENODETYPE>Test4</SOURCENODETYPE>
                                    <SOURCE>New+Test4+Item</SOURCE>
                                    <SOURCEID>45654</SOURCEID>
                                    <RELNAME>is+part+of</RELNAME>
                                    <RELID>3008</RELID>
                                    <INVRELNAME>includes+parts</INVRELNAME>
                                    <INVRELID>3007</INVRELID>
                                    <TARGETNODETYPE>Test4</TARGETNODETYPE>
                                    <TARGET>Test4+-+1</TARGET>
                                    <TARGETID>45654</TARGETID>
                        </RELATIONSHIP>
            </OBJECTDATA>
</INSTANCELOGEVENT>
<INSTANCELOGEVENT>
            <EVENTTYPE>EDIT</EVENTTYPE>
            <USERID>GrahamNew</USERID>
            <TIMESTAMP>2006-11-29-03.45.40.000000</TIMESTAMP>
            <OBJECTDATA>
                        <NODE>
                                    <NODENAME>New+Test4+Item</NODENAME>
                                    <VALUE>A+new+item+of+Test4+type+</VALUE>
                                    <ATTRIBUTE>
                                                            <ATTRIBUTENAME>Telephone+No+(cell)</ATTRIBUTENAME>
                                                            <ATTRIBUTETYPE>String</ATTRIBUTETYPE>
                                                            <VALUE>088+555+6666</VALUE>
                                    </ATTRIBUTE>
                                    <ATTRIBUTE>
                                                <ATTRIBUTENAME>Updated+on</ATTRIBUTENAME>
                                                <ATTRIBUTETYPE>Archie2LastUpdated</ATTRIBUTETYPE>
                                                <VALUE>2006-11-29+03%3A43%3A58</VALUE>
                                    </ATTRIBUTE>
                                    <ATTRIBUTE>
                                                <ATTRIBUTENAME>Updated+by</ATTRIBUTENAME>
                                                <ATTRIBUTETYPE>Archie2TouchedBy</ATTRIBUTETYPE>
                                                <VALUE>GrahamNew</VALUE>
                                    </ATTRIBUTE>
                                    <RELATIONSHIP>
                                                <RELNAME>is+part+of</RELNAME>
                                                <INVRELNAME>includes+parts</INVRELNAME>
                                                <TARGETNODETYPE>Test4</TARGETNODETYPE>
                                                <TARGET>Test4+-+1</TARGET>
                                    </RELATIONSHIP>
                        </NODE>
            </OBJECTDATA>
</INSTANCELOGEVENT>
<INSTANCELOGEVENT>
            <EVENTTYPE>DELETE</EVENTTYPE>
            <USERID>GrahamNew</USERID>
            <TIMESTAMP>2006-11-29-03.45.49.000000</TIMESTAMP>
            <OBJECTDATA>
                        <NODE>
                        <NODENAME>New+Test4+Item</NODENAME>
                        <TYPE>Test4</TYPE>
                        <NODEID>45654</NODEID>
                        </NODE>
            </OBJECTDATA>
</INSTANCELOGEVENT>

 

up