ChangeLog of MyARM
Here is a brief description of changes from one release to another of MyARM:
- Release 1.4.x.2 (November 2011)
-
- New
-
-
Agents
(Build 3029): Added support for writing log messages of a defined (
agent.log.datasink.level) log level (error) to the configured datasink (database). - Agents (Build 2770): The myarmtcpd and the TCP datasink now supports flow control of transmitted ARM data buffers. Only one ARM data buffer can be transmitted by a TCP datasink at one time. The myarmtcpd acknowledges the reception of an ARM data buffer by sending a flow control ack.
-
C Agent
(Build 3063): Added
agent.binding.c.api.return_okconfiguration property to disable returning of error codes. - C# Agent (Build 2926): Now C# Agent uses also the concepts of a serialize- and sinkthread to optimize the processing of measured ARM data.
- C# Agent (Build 2926): Added C# thread id for log messages.
- C# Agent (Build 2909): Implemented resource watchdog.
- Daemon (Build 3018): myarmtcpd now derives number of client threads form number of cpu cores. Removed myarmtcpd client thread configuration property.
- Daemon (Build 3011): myarmtcpd now checks under Linux if the configured maximal number of clients are less than the number of open files for the process. It tries to increase the maximal number of open files if necessary. If the maximal number of open files could not be increased the myarmtcpd exists with an error message.
- Daemon (Build 3005): myarmtcpd now detects dead clients by checking the keepalive messages. If more than two keepalive messages are missing the from a client myarmtcpd assumes this client is dead and closes the connection.
- Datasink (Build 3098): Added support for collecting filesink ARM data files of applications which did not terminate correctly.
- Datasink (Build 2860): Added support for MySQL commit interval configuration. Default interval is now 100ms.
- Datasink (Build 2754): Added support for splitting ARM data buffers if the ARM data buffer send by the TCP datasink is greater than configured within the myarmtcpd.
- Datasink (Build 2754): Added initial connection request from TCP datasink to myarmtcpd which reports its capabilities to the myarmtcpd.
- Examples (Build 2941): Added some C# examples within directory $MYARM_ROOT/samples/csharp.
- Installation (Build 3105): Windows 7 is now officially supported.
- Tools (Build 2857): Added support for MySQL transaction isolation level for myarmquery tool.
-
Agents
(Build 3029): Added support for writing log messages of a defined (
- Changes
-
- Agents (Build 3019): Now dropped data log messages are classified as an error message instead of an informal message.
- Agents (Build 2910): Improved queue handling and thread signalling within C# and C agents.
- Agents (Build 2767): The queue size of the sinkthread is now initialized with the maximal number of ARM data buffers instead of a configured value.
- Agents (Build 2750): Added support for entry length within an ARM data buffer which allows easy migration to new versions of MyARM.
- C Agent (Build 3038): Removed Windows specific response time configuration. Now response times under Windows are also in microsecond granularity.
- Contribution (Build 3041): mod_arm4 contribution is now includes as source code instead of a precompiled module binary. Use apxs of your apache installation to install the mod_arm4 module.
- Daemon (Build 2762): The number of ARM data buffers within the myarmtcpd is no derived from the maximal number of TCP clients instead of a configured value.
- Datasink (Build 2803): Changed reconnect behaviour of TCP datasink. Now it connects only to the myarmtcpd if ARM data is available. Also after a configured idle time (no ARM data available) the connection is closed again.
- Datasink (Build 2750): The C# and C file datasink now only moves an file if it contains some ARM data. Therefore no empty files are moved and processed by the myarmfiled..
- Fixes
-
- Agents (Build 2995): Now all log messages are filtered through the log level configuration. Even such log messages which are issued before the configuration was read in.
- Agents (Build 2925): Second part of day output of response times were wrong.
- C Agent (Build 3021): Removed some helgrind threading hits within logging component.
- C Agent (Build 3000): tcpsink now reconnects correctly if a connection attempt timed out.
- C Agent (Build 2953): arm_destroy_application() did stop all application instances and not only for the passed application id.
- C Agent (Build 2883): Possible memory leak within C Agent queue handling fixed.
- C Agent (Build 2776): Sometimes a log message could be omitted if two threads issue a log message nearly at the same time.
- C Agent (Build 2750): Fixed a possible crash if an ARM API call was made after an arm_destroy_application() call.
- C Agent (Build 2750): Fixed length calculation of various ARM data entities for serialization into an ARM data buffer.
- C# Agent (Build 3027): OUT_OF_RANGE error messages within C# Agent configuration reading used an incomplete property name.
- C# Agent (Build 3026): In some circumstances ARM definition data was not directly written to the datasink.
- C# Agent (Build 2926): C# ARM application instance handle could be overwritten by a second C# ARM application instance.
- C# Agent (Build 2926): Removed disabled registry key under Windows. This did not worked properly and was not used at all.
- C# Agent (Build 2875): C# log messages were not correctly synchronized between threads.
- C# Agent (Build 2824): Corrected min/max checking of C# properties.
- Contribution (Build 3052): Fixed wrong calling convention for libarm4sdk under Linux x86 32-bit architecture.
- Daemon (Build 2825): Sometimes the myarmtcpd crashed if started twice with the same configuration.
- Database (Build 3010): Removed 'DROP TRIGGER IF EXISTS' SQL statement for creating the MySQL database tables. This prevents a hanging myarmtcpd if all tables are already created and some other processes uses some MyARM tables.
- Database (Build 2865): MySQL 5.5 is now supported by MyARM.
- Datasink (Build 3025): Removed possible deadlock within tcpsink if sending an ARM data buffer failed.
- Installation (Build 3092): Added MyARM manual page path to MANPATH under AIX.
- Release 1.4.x.1 (April 2011)
-
- New
-
- Documentation (Build 2738): Added apache license to the distribution.
- Changes
-
- Java Agent (Build 2736): Optimized context property handling in JNI code, which saved about 8% of runtime.
- Fixes
-
- Database (Build 2727): Full correlation of transactions did not work properly. Sometimes this could caused a crash if used with SQLite database.
- Documentation (Build 2737): Removed some obsolete configuration properties from the documentation of the myarmfiled.
- Installation (Build 2726): Community Edition installer script for unix systems asked for a license key.
- Installation (Build 2725): In the Community Edition the default configuration properties for some command line tools were missing.
-
Tools
(Build 2728):
myarminitdb --dropdid not work with SQLite.
- Release 1.4.x.0 (February 2011)
-
- New
-
- Database (Build 2710): Added Oracle (version 10) database support.
-
Database
(Build 2606): Added
days_per_monthandmonth_per_yearMySQL partitioning scheme. - Datasource (Build 2540): Now all ARM definitions are loaded initially from the database and managed internally within the current process. This improves navigation performance in the MyARM manager alot.
- QArm (Build 2661): Added QArmReportTran class to QArm framework.
- Changes
-
- Agent (Build 2583): Removed special evaluation edition.
- C Agent (Build 2633): Added support for skipping unknown entities in an ARM data buffer supporting future enhancements.
-
Configuration
(Build 2585): Restructured configuration files and directories. Now an
includeand atemplatedirectory exists which separates include config files and template config files. - Daemon (Build 2531): Change reconnect mechanism of TCP datasink. Now only one reconnect interval in seconds is used instead of a changing interval with factor 2 (tcp.connection.reconnect).
- Daemon (Build 2525): Removed complete myarmdraind (shared memory) daemon and corresponding thin datasink. With the consistent usage of multi-threading and todays efficient I/O subsystems there is no need for supporting a shared memory transport layer.
- Database (Build 2665): Updated SQLite database to version 3.7.4.
- Database (Build 2606): Changed transaction database table layout to support better partitioning in MySQL.
-
Database
(Build 2581): Removed environment
${USER}reference from MySQL database configuration. Now uses a generic myarm MySQL user. - Datasink (Build 2705): Now the start time instead of the stop time of a transaction is used for the MySQL transaction database pattern feature.
-
Datasink
(Build 2688): SQLite datasink now uses a SQL transaction to store ARM data which increases the
INSERTperformance alot. - Datasource (Build 2537): ARM application and transaction definitions are now retrieved in its name order.
- Documentation (Build 2610): Now the documentation for each edition contains only the included features.
-
QArm
(Build 2699): QArm now works under AIX (
libarm4.a(shr.o)). - QArm (Build 2673): Changed the way how to dynamically load the ARM 4.0 library within the QArm framework. Now QArm works under windows.
-
Tools
(Build 2673): Added
tools.query.appformatconfig property. - Tools (Build 2656): If an error occured under Windows in the MySQL datasource the tools aborted with an unhandled exception.
- Fixes
-
-
C Agent
(Build 2663): The C agent crashed if
arm_report_transaction()was called after a call toarm_destroy_application()which is illegal but it must not crash. - C Agent (Build 2632): The serialization of an application instance was wrong due to a two byte miscalculation of the required length. This could caused an buffer overflow.
- Datasink (Build 2621): The C# file datasink also copied an empty working file to the destination when the rolling time occured and no data was collected in the last period.
- Datasink (Build 2620): The C file datasink copied an empty working file to the destination when the rolling time occured and no data was collected in the last period.
- Datasink (Build 2620): Sometimes the C# file datasink rolled the current working file to late. Thus sometimes the rolled files were bigger than configured.
- Java Agent (Build 2692): Java agent crashed if the configured maximum of ARM data buffers was reached and more buffers were requested.
- Tools (Build 2631): myarmquery can now filter application instance according to their application group or instance.
- Tools (Build 2589): Under some circumstances myarmquery reported same values for different application instances.
- Tools (Build 2588): If connection to the MySQL database could not be established the error messages were not correctly reported.
-
Tools
(Build 2570): Change documentation for constraint options
--app-instanceand--app-group. Now it supports operators like equal ('=', etc). - Tools (Build 2570): myarmtcpd now reports a protocol error as an error log message.
-
Tools
(Build 2549): myarmquery with
-aoption the printed start and stop date of an application was wrong. Splitted date and time formatting specifier.
-
C Agent
(Build 2663): The C agent crashed if
- Release 1.3.x.6 (October 2010)
-
- New
-
-
Datasink
(Build 2474): The sinkthread module now writes a temporary ARM data file if the connection to the configured datasink is disconnected (tcp datasink). When the connection is established again it reads the temporary ARM data file again and sends all data to the datasink. Now the myarmfiled can be terminated even if the connection to a configured tcp datasink is disconnected. Read the documentation of the new
basic.sink.thread.tmpfile.nameandbasic.sink.thread.tmpfile.sizeproperties.
-
Datasink
(Build 2474): The sinkthread module now writes a temporary ARM data file if the connection to the configured datasink is disconnected (tcp datasink). When the connection is established again it reads the temporary ARM data file again and sends all data to the datasink. Now the myarmfiled can be terminated even if the connection to a configured tcp datasink is disconnected. Read the documentation of the new
- Changes
-
- C Agent (Build 2468): If initialization of the MyARM C agent failed the timestamp, module and init level is now printed out.
-
C Agent
(Build 2467): Under AIX MyARM uses now a
myarm_prefix for all APR functions thus it does not interfere with an APR implementation used by the instrumented application (Apache HTTP Server, for example). -
C Agent
(Build 2450): SQLite implementation uses now a
myarm_prefix thus it does not interfere with a SQLite implementation used by the instrumented application. - C# Agent (Build 2470): If initialization of the MyARM C# agent failed the timestamp is now printed out.
- Fixes
-
- C Agent (Build 2471): Sometimes the initialization of MyARM failed when using the file datasink, because the operating system used a previously used process id and the file datasink created a temporary file with the same process id which caused MyARM to fail. Now temporary files are created with the process id and a time stamp.
-
C Agent
(Build 2463): Calling convention of functions within
libarm4.sounderLinux/i386was wrong due to an error within the ARM4SDKarm4os.h. Recompilation of instrumented applications are needed if the GNU compiler was invoked with some options specifying a language standard (-std,-ansi) -
C Agent
(Build 2460): Fixed some valgrind hits within
libarm4.so. - Daemon (Build 2501): During shutdown of the myarmtcpd it waits for incoming termination messages from the clients. This fixes possible data loss during shutdown of the myarmtcpd.
- Daemon (Build 2489): The myarmfiled now locks the files it reads in.
- Daemon (Build 2465): Resource watchdog now provides also metrics and armdata pool information with daemons.
- Datasink (Build 2482): Under some circumstances writing the sinkthread tmpfile resulted in a "Bad file descriptor" message due to a too early close of the tmpfile.
- Datasink (Build 2480): The mysql datasink did not reconnect to the MySQL server if it lost the connection.
- Datasink (Build 2476): Fixed busy loop within tcp datasink if the sending of data was only paritially done or the myarmtcpd closed connection due to a protocol error.
- Datasink (Build 2467): Fixed memory leak within SQLite datasink.
-
Datasink
(Build 2464): SQLite datasink could issue a "disk I/O error" under AIX due to a
fsync()of a directory which is not supported by AIX. -
Miscellaneous
(Build 2461): Windows eventlog now created with properties so that entries are overwritten on demand. Also the
<component>.log.file.sizeproperty can be used to specify the size of the eventlog file. -
Tools
(Build 2452): Date and time values passed to the options like
--start-fromand similar had a daylight saving time one hour offset in months with active daylight saving time.
- Release 1.3.x.5 (August 2010)
-
- New
-
-
C Agent
(Build 2398): Added resource watch dog counters of various ARM 4.0 C calls like
arm_start_transaction()andarm_stop_transaction(). This enables to check if the instrumented application calls MyARM or not. - Documentation (Build 2423): Added the technical guides describing the overhead of a transaction measurement and a guide which explains how to optimize the MySQL backend.
-
C Agent
(Build 2398): Added resource watch dog counters of various ARM 4.0 C calls like
- Changes
-
- Daemon (Build 2417): The protocol between daemons and the myarmservcmd tool is improved.
- Datasink (Build 2425): Improved peformance of storing metrics into MySQL database.
- Miscellaneous (Build 2427): Now using version 1.2 of the ARM 4.0 SDK.
- Fixes
-
- C Agent (Build 2425): The C agent metric processing was not standard compliant. If a metric slot was used twice the last metric was used instead of the first as stated in the standard.
- C Agent (Build 2395): myarmexport can export into a MySQL database again. The database tables were not correctly generated.
-
C Agent
(Build 2392): Consolidated the component log support (
%C). - C# Agent (Build 2444): Writing and reading of XML ARM data using the XML datasink did not write and read floating point metrics with the C# agent correctly due to different locale settings.
- Daemon (Build 2443): If a pid file of a daemon like myarmtcpd was found during startup of the daemon, the daemon crashed afterwards.
- Daemon (Build 2415): Sometimes the myarmtcpd did not accept a connection from a client due to an error. But the error was not logged.
- Datasink (Build 2414): The C# TCP datasink did not read the keepalive configuration corretly and used its default.
- Datasink (Build 2410): If a datasink has no connection to its destination (myarmtcpd, MySQL database) it dropped any measured ARM data. Now any datasink notifies the agent if the connection is down and will not process any data until the connection becomes available again.
- Datasink (Build 2401): The file data sink copied the working file to often to the destination directory.
- Datasink (Build 2386): The file datasink calculated the free disk space wrong due to a 32bit integer overflow.
-
Tools
(Build 2390): The
--contextof the myarmquery program was not documented.
- Release 1.3.x.4 (May 2010)
-
- New
-
- Agents (Build 2322): C, Java and C# agents now supports a warning log level.
-
C Agent
(Build 2308): Added
agent.transaction.pool.max,agent.metric.pool.maxandbasic.armdata.buffer.pool.maxconfiguration properties. These configuration properties are hard limits for the appropriate resource. - C Agent (Build 2308): Added resource watch dog which periodically logs used resources.
-
C Agent
(Build 2289): Added
agent.api.log.errorandagent.api.log.warningconfiguration properties which controls logging of ARM API errors and warnings. - Datasink (Build 2346): MySQL datasink now support MySQL 5.1 partitioning feature.
- Datasink (Build 2320): MySQL datasink now support on the fly transaction database generation according to transaction attributes (timestamp).
- Datasink (Build 2309): Turned MySQL autocommit off and commits explicitly every second. This improved transaction writing alot.
- Manager (Build 2354): Selection of different transaction databases is now supported.
- Manager (Build 2353): Transaction definitions can now be filtered by wildcard patterns.
- Changes
-
- Agents (Build 2291): Consolidated C, Java and C# ARM API return codes. Added documentation of ARM API return codes.
- C Agent (Build 2311): If invalid data is passed via a sub-buffer an error return code is passed back.
- Java Agent (Build 2291): Java-JNI ARM agent now uses C logging environment.
- Manager (Build 2319): Manager MySQL database information now reflects new MyARM 1.3 MySQL database configuration.
- Fixes
-
- C Agent (Build 2299): Memory leak fixed when ARM metrics are used.
-
C# Agent
(Build 2330): The file datasink of the C# agent could not read the
<name>.rolling.sizeconfiguration property correctly. It used its default value of128KB. -
Configuration
(Build 2288): Removed old MySQL database configuration property
<name>.database. - Daemon (Build 2278): MyARM daemon started as a Windows service reacted on a normal quit signal. Now any signals are ignored if a daemon is started as a Windows service.
- Datasource (Build 2329): MySQL datasource now escapes all definition names as MySQL requires it.
- Manager (Build 2347): Improved loading of large ARM definition databases alot.
-
Manager
(Build 2318): Manager uses now the
basic.time.use_utcconfiguration property to determine if timestamps should be presented in local or UTC time. -
Miscellaneous
(Build 2277): Small change to the setup.sh script which avoids an error if
$HOMEis not set. - Tools (Build 2324): Command line tools now supports escaping a colon (':'). This is needed because a colon is the delimiter to separate application and transaction definition names.
- Release 1.3.x.3 (April 2010)
-
- New
-
- Analysis (Build 2244): Added configuration property to switch between UTC and local time output of time stamps. Local time is the default now.
- C# Agent (Build 2251): C# agent now has a TCP data sink purely written in C#.
- Documentation (Build 2242): Added C agent error code documentation.
- Documentation (Build 2241): Added Java factory class documentation.
- Manager (Build 2222): Added Full screen mode.
- Manager (Build 2212): Context property context menus are now merged for same context properties.
- Manager (Build 2208): Loading of long transaction trees shows now a busy mouse pointer.
- Fixes
-
- C Agent (Build 2240): ARM 2.0 wrapper did not measure transactions.
- C# Agent (Build 2253): Removed lock contention which influenced transaction measurement with C# agent if a slow data sink backends was used (database).
- C# Agent (Build 2235): System address within C# agent was not correctly build.
- C# Agent (Build 2232): File-Datasink of C# agent used the wrong configuration property for the directory to copy ARM data files to.
- C# Agent (Build 2229): Exception within File-Datasink of C# agent was not catched.
- Datasink (Build 2263): Removed memory leak within TCP datasink during a (re-)connection.
- Datasink (Build 2258): Removed memory leak within file datasink when an ARM data file should be copied to the destination directory.
- Manager (Build 2206): Loading of a large transaction trees with the Manager tooks too long.
- Miscellaneous (Build 2266): Small change to the setup.sh script which avoids an error message under AIX.
- Release 1.3.x.2 (January 2010)
-
- New
-
- Configuration (Build 2159): User defined configuration support added. The MyARM configuration can now be easily changed by using the user.conf file which contains any uses specific configuration property.
-
Datasink
(Build 2183): filesink now uses configuration properties directly from the myarmfiled
filed.directoryandfiled.basenameconfiguration section. - Manager (Build 2141): Added highlighting of net duration of transactions within a tree if it is greater than a pre-configured percentage value. Color and percentage can be changed and saved in the preferences.
- Manager (Build 2133): A reload sometimes crashed the manager.
- Manager (Build 2130): Now graph and histogram attributes are saved within a defined filter.
- Manager (Build 2125): Now sorting criteria are saved within a defined filter.
- Manager (Build 2089): Added filter for application instance and application group within manager
- Manager (Build 2075): Within tree view it is now possible to filter all transaction regarding their correlation characteristics (e.g is root, has children).
- Manager (Build 2072): Table and tree view now supports Shift-Select of rows.
- Manager (Build 2030): Added status tips for all manager menu items.
- Miscellaneous (Build 2169): Correlation of transactions improved alot. Now uses a correlation generation count which does not need to update transaction rows within the database anymore.
- Miscellaneous (Build 1982): Added VC++ import libraries for libmyarm.dll
- Platform (Build 2171): AIX (32bit) is now fully supported.
- Tools (Build 2048): Added application instance and group filter support for command line constraint options.
- Changes
-
- Datasink (Build 2186): SQLite updated to version 3.6.22.
- Manager (Build 2127): Database is open directly after start of manager.
- Manager (Build 2119): Transaction attribute column visibility and width settings format changed.
- Manager (Build 2118): Application attribute now in own sub menu within attribute column context menu.
- Manager (Build 2072): Table and tree view now differentiate between item in focus and edit context menu.
- Manager (Build 2071): Context menu items for context properties and metrics are have now the "C:" or "M:" prefix.
- Manager (Build 2051): Under Unix/X11 the manager now uses fontconfig, xrender and freetype libraries which enhances font rendering a lot.
-
Miscellaneous
(Build 2188): Under Windows MyARM in now registered with the edition name. For example the community edition is registered as
MyARM Community Edition - Miscellaneous (Build 2093): Least recently used cache for application, transaction and metric definitions as well as for system addresses and users implemented.
- Platform (Build 2137): Under Unix like systems setup.sh now checks for /var/myarm correctly.
- Tools (Build 2142): Removed PAGER environment variable support within command line tools.
- Fixes
-
- Datasink (Build 2166): Thread datasink inserted duplicate transaction instances due to some synchronisation problems.
- Manager (Build 2171): The correlation process within the manager now disables all user input for the main window which caused a deadlock if database queries were generated from the user input.
- Manager (Build 2164): If a tree or table view is opened and some transaction definitions are selected they will be loaded immediately.
- Manager (Build 2114): For transaction definitions which have no default filter saved all currently visible filter widgets are hidden now.
- Manager (Build 2113): Filter did not apply to graph, histogram and statistics view.
- Manager (Build 2108): Graph view duration over start time with a time span more than a day was incorrectly rendered.
- Manager (Build 2106): Graph view was not correctly redrawn if same attributes changed.
- Manager (Build 2106): Legend of graph view was not drawn.
- Manager (Build 2097): MySQL database preferences were sometimes to loaded correctly.
- Manager (Build 2077): Focused item context menu was not every time correctly opened within tree view.
- Manager (Build 2078): Within tree view the mouse adjusted column width were reset if a tree was expanded.
- Manager (Build 2072): Opening the table view context menu was very slow if many transactions were displayed in the view.
- Manager (Build 2042): If no filter was activ and a graph, histogram or statistics view was opened the manager crashed.
- Tools (Build 2033): myarmdelete now only deletes definitions and instances according the given application and/or transaction name.
- Tools (Build 2031): myarmexport now only exports all data for a given application name.
- Release 1.3.x.1 (October 2009)
-
- Fixes
-
- C Agent (Build 1941): Diagnostic detail string was not copied and if the user provided string was free'd before it was serialized to the ARM data buffer garbage was collected. The diagnostic detail string is now copied before leaving the stop call.
- Datasink (Build 1930): TCP datasink may loss ARM data if connections to myarmtcpd were opened and closed very fast. Added protocol acknowledgement of connecting and disconnecting to myarmtcpd.
- Datasink (Build 1910): Added missing libmyarmpi.so for using C datasinks from C# with mono.
- Datasource (Build 1893): Filtering of context properties with SQLite works now correctly. Not in all circumstances the temporary view was created.
- Java Agent (Build 1945): Metric floats were not correctly calculated to pass via JNI to the C Agent using 32-bit integer counter and divisor.
- Manager (Build 1937): Sometimes the selection views did not open due to a synchronisation failure between thread offloaded jobs and the main thread.
- Release 1.3.x.0 (August 2009)
-
- New
-
- C Agent (Build 1814): Added support for logging the component which produced a log message.
- C Agent (Build 1736): Actual version of MyARM is logged during startup.
- C Agent (Build 1714): Introduced metric instance pooling.
- C# Agent (Build 1738): Added configuration property to disable pinvoke based datasink.
- C# Agent (Build 1738): Actual version of MyARM is logged during startup.
- C# Agent (Build 1723): Added C# support for Linux using mono.
- C# Agent (Build 1688): C# agent now support log message numbers.
- Datasink (Build 1816): tcpsink supports now to defer a connection to the myarmtcpd only if needed.
- Datasink (Build 1816): tcpsink supports to close the connection to the myarmtcpd if no data were sent within a configured time interval.
-
Datasink
(Build 1761): filesink supports filesystem limit checks:
- diskusage.max_used: defines the maximal used disk space by the filesink.
- diskusaga.min_free: defines the minimal available disk space which will be considered by the filesink.
- Datasink (Build 1702): Added new threadsink which can create configured number of threads operating on a destination datasink.
- Examples (Build 1719): Added C++ example demonstrating detailed diagnostic ARM 4.0 feature.
- Manager (Build 1873): URI attribute filtering allows to select an operation mode.
- Manager (Build 1824): Added snapshot of main window dimension.
- Manager (Build 1823): Added predefined (named and default) filters. All filter properties and display settings are saved.
-
Manager
(Build 1800): Added new filtering concept. Now various filters are integrated within the selections:
- transaction status
- duration
- context properties ad defined by the transaction definition.
- URI property
- system address and user
- start and stop time (UTC)
- Manager (Build 1799): Added support for querying multiple context properties with logical AND operation.
- Manager (Build 1795): Added toolip support of transaction definitions showing transaction identity properties.
- Manager (Build 1794): Added support for sorting and filtering of application and transaction definitions.
- Manager (Build 1791): Added progress bar of definition loading within main manager window.
- Manager (Build 1786): Added support to save the order and shown columns within tree and table view.
- Manager (Build 1785): Added support to change the order of columns within tree and table view.
- Manager (Build 1777): Added support for calculating the net duration (own duration) of a transaction witnin a tree.
- Manager (Build 1777): Added support for highlighting the most time consuming transactions within a tree. (highlight max duration)
-
Manager
(Build 1776): Added loading and saving of preferences. Following preferences can be set;
- Response time unit
- Date and time display format
- Number of highlighted maximum durations within a tree.
- Maximum number of transaction instances shown in the tree and table view.
- Export directory, separator and header row preferences for CSV export.
- Printing directory for file printing.
- Various flags manipulating printing.
- Manager (Build 1774): Added printing of selected transaction measurements within tree- and table view.
- Manager (Build 1763): Added clipboard support of selected transaction measurements within tree- and table view.
- Manager (Build 1731): Details of transaction metrics adds now metric unix.
- Manager (Build 1731): Supports now context menu for selecting attribute columns for table and tree views of transaction measurements.
- Tools (Build 1808): myarminfo now prints the used database configuration.
- Tools (Build 1807): myarmexport supports now the --engine option.
- python (Build 1690): ARM 4.0 python module is now integrated.
- Changes
-
- C Agent (Build 1715): Streamlined internal thread handling for C and Java agent.
- C Agent (Build 1714): Streamlined transaction instance pooling.
-
Database
(Build 1809): The layout of the database has changed. Now it support three different kinds of databases:
- Definition database storing all ARM definitions.
- Application database storing all ARM application instances and context properties.
- Transaction database storing all ARM transaction instances, context properties and metrics.
- Datasink (Build 1689): mysqlsink now does not use BLOBs anymore.
- Datasink (Build 1685): Reconnection interval configuration properties of mysqlsink, tcpsink and thinsink are now handled with seconds precision instead of milliseconds.
- Manager (Build 1812): Add views buttons are now below the definition view. Thus there is more space for displaying measurement analysis.
- Fixes
-
- Tools (Build 1807): If myarmdelete, myarmexport or myarmimport fails it now returns an error code of 1.
- Tools (Build 1778): Fixed negative response time fraction output in some circumstances.
- Tools (Build 1778): Fixed output of transaction duration in days.
- Tools (Build 1749): Import of XML data was wrong if more than 100 transaction definitons were imported.
- Release 1.2.x.6 (February 2009)
-
- New
-
- C Agent, C# Agent (Build 1641): Now supports two warning log messages of their ARM data queues. These log messages indicates that the ARM data rate to write into the configured data sink is critical.
- Tools (Build 1648): myarminitdb now supports to set storage engine for MySQL.
- Fixes
-
- C Agent (Build 1660): Removed race condition in ARM data structure handling within the C agent.
- C# Agent (Build 1631): If an object og the ArmTransaction class of the C# Binding was used for more than once to measure a response time the times were accumulated. Now the timer used for measuring the response time is reset by each start of the transaction.
- CGI (Build 1636): Program initialisation now works again.
- Datasink (Build 1640): C file data sink now checks write permissions for all resources it will write to.
- Java Agent (Build 1644): Removed debug printf() call from ARM 4.0 JNI code.
- Java Agent (Build 1637): Changed linking of filesink DLL so that this data sink works with the IBM JVM 1.5 J9 and the JNI ARM 4.0 bridge.
- Java Agent (Build 1634): Java classes are now again compiled with Java 1.4 environment.
- Manager (Build 1656): Now opens a dialog with an error message if it could not start correctly.
- Manager (Build 1651): Do not require to enter a name for a selection anymore.
- Release 1.2.x.5 (December 2008)
-
- New
-
- C Agent (Build 1561): Added Visual Studio import libraries for libarm4sdk.dll, libarm4null.dll and libarm4logger.dll.
- C Agent, Java Agent (Build 1522): The C and Java Bindings now support to pass transaction context values during transaction stop call time. This feature is not ARM standard conform and therefore it has to be turned on using the configuration property "agent.extension.tran_context_at_stop".
- C Agent, Java Agent (Build 1494): Multiple data sink threads can now be configured for the C and Java ARM agent as well as for any ARM data processing server like, myarmfiled and myarmtcpd.
- C# Agent (Build 1567): The C# Binding now support to pass transaction context values during transaction stop call time. This feature is not ARM standard conform and therefore it has to be turned on using the configuration property "agent.extension.tran_context_at_stop".
- C# Agent (Build 1534): C# binding now supports also log file generations.
- Daemon (Build 1544): myarmtcpd has now a status command which gets current status information about TCP client threads and data sink threads and queues..
- Daemon (Build 1542): myarmtcpd is now fully multi-threaded and supports TCP client threads. The number of TCP client threads can be configured using the property "tcpd.client.thread.number".
- Fixes
-
- Daemon (Build 1533): Servers like myarmtcpd or myarmfiled are now installed in the bin directory under the MyARM root directory. This resolves the restart of the computer problem under Windows if the servers are installed as a windows service.
- Daemon (Build 1526): Removed unused agent servers myarmlogd and myarmconfd.
- Manager (Build 1521): Correlation process can now be cancelled.
- Manager (Build 1521): If started from the program menu under Windows it opened a unneccessary shell window. This window does not appear anymore.
- Miscellaneous (Build 1537): If log file generation is turned on the active log file had a suffix of ".log.0". Now it is named again ".log". If it is closed it is moved to ".log.0".
- Release 1.2.x.4 (October 2008)
-
- New
-
- Daemon (Build 1503): Maximal number of clients can now be configured for each TCP server socket.
- Miscellaneous (Build 1506): The log facility for file logging can now be configured to support generations of log files and the size of each log file can be limited. Therefore MyARM components will never use more than the configured maximal size for logging.
- Fixes
-
-
C Agent
(Build 1507): Changed C# windows registry environment reading to the following order:
- App.config
- Environment variable
- Windows registry entries
- Datasink (Build 1506): The tcpsink did not reconnect correctly under Windows if the connection was reset. This is fixed now.
-
C Agent
(Build 1507): Changed C# windows registry environment reading to the following order:
- Release 1.2.x.3 (October 2008)
-
- Fixes
-
- Manager (Build 1488): Configuration property changes within version 1.2.x.2 introduced a bug which caused the MyARM manager to read its configuration not correctly. This is fixed now.
-
Tools
(Build 1487): Windows registry environment reading added in 1.2.x.0 and later had higher priority than environment variables and command line options. Now the following order is implemented:
- Command line options
- Environment variable
- Windows registry entries
- Release 1.2.x.2 (September 2008)
-
- New
-
- C Agent (Build 1470): Introduced improved logging messages. Each log message has now its own number and ID. This information can be used to find the appropriate log message documentation, which will describe the situation in detail.
- Fixes
-
- C Agent (Build 1472): Within the C ARM agent internal processing of ARM data buffers which contained some ARM definition data (like ARM transaction or ARM application definitions) caused a memory leak. Now all ARM data buffers are handled correctly.
- C# Agent (Build 1481): The C# ARM agent did not freed all instanciated ARM transactions during deployment. This caused a memory leak, which is now fixed.
- Release 1.2.x.1 (August 2008)
-
- New
-
- C# Agent (Build 1445): Can now be disabled under Windows using Registry key Software\MyARM\Disabled.
- Daemon (Build 1455): myarmfiled and myarmtcpd can now be started as a Windows service.
- Miscellaneous (Build 1460): Under Windows MyARM now uses Registry keys instead of environment variables.
- Fixes
-
- Daemon (Build 1449): myarmfiled now deletes empty ARM data files.
- Miscellaneous (Build 1449): Datasink and datasource plugins are now loaded through their global path names. No need to include the sink or source directory path into Path (Windows) or LD_LIBRARY_PATH (Linux, Solaris) anymore.
- Release 1.2.x.0 (July 2008)
-
- New
-
- C# Agent (Build 1424): New ARM 4.0 C# Agent using ARM 4.0 C# Binding as defined by the Eclipse project.
- Miscellaneous (Build 1394): Windows event log support.
- Release 1.1.0.7 (July 2008)
-
- Fixes
-
- Daemon (Build 1353): myarmfiled daemon now blocks if it cannot write ARM data to its datasink until the datasink accepts new ARM data.
- Datasink (Build 1365): file datasink now uses the process id to create MyARM ARM data files reducing file name collisions.
- Release 1.1.0.6 (June 2008)
-
- New
-
- C Agent, Daemon (Build 1316): New configuration property "<name>.armdata.buffer.number" to specify the number of ARM data buffers to be queued within the agent and/or daemons.
- Daemon (Build 1320): Introduced new file datasink and a new myarmfiled daemon.
- Daemon (Build 1316): New configuration property "<daemon>.cmd.host" to specify the host/interface for socket listening for incoming command connections.
- Fixes
-
- Tools (Build 1323): Now system addresses can be exported/imported separately using myarmexport/myarmimport command.
- Tools (Build 1323): Command line tools now uses UTC time for input and output.
- Release 1.1.0.5 (May 2008)
-
- Fixes
-
- C Agent: arm_report_transaction() now process the transaction context sub-buffer. Therefore context properties are now stored correctly in the database.
- C Agent: arm_report_transaction() now checks the stop time against ARM_USE_CURRENT_TIME and sets the current time if the ARM_USE_CURRENT_TIME value was passed.
- Java Agent: Under certain circumstances the ARM4 JNI library sometimes crashed if libarm4 initialisation failed.
- Java Agent: ArmTranReport.generateCorrelator() now correctly creates and returns a ArmCorrelator instance. Fixes a Null-Pointer exception.
- Java Agent: ArmTranReport.report() methods without a stop time now correctly passes the ArmConstants.USE_CURRENT_TIME to the ARM C implementation.
- Java Agent: The length of the correlator is now correctly set within the java ArmCorrelator class.
- Manager: Now allows the correlation of a sinlge root transaction within the tree view. Within the context menu the correlation for the selected transaction can be triggered.
- Manager: Dialog opens now quickly even with large databases. The calculation of the minimal and maximal start time and duration can be triggered using a button within the filter dialog.
- Manager: Detailed dialog now respects the screen dimension and never uses negativ dialog position.
- Tools: myarmdelete --all now supports also constraint options to select specific application and/or transaction instances to delete
- Tools: myarmexport now correctly handles constraint options to select specific sets of transaction and/or application instances.
- Release 1.1.0.4 (April 2008)
-
- New
-
- Contribution: Added Qt 4 based management GUI.
- Datasink: Added SQLite database sink and source support.
- Release: MyARM supports now Windows/x86 and Solaris/x86.
- Fixes
-
- Miscellaneous: Many improvements to arm4 library, command line tools and CGI interface.
- Miscellaneous: Improved MyARM database layout to speed up the correlation process alot.
- Tools: Consolidated MyARM command line tools. Including new tools: myarmstat, myarmchain and myarmdefinition
- Release 1.0.5 (June 2006)
-
- New
-
- Contribution: Added pre-compiled mod_arm4 Apache HTTP Server module.
- Documentation: Added HTML UserGuide.
- Documentation: Added HTML QArm Tutorial.
- Fixes
-
- C Agent: Fixed bug in context value processing which caused sometimes a crash.
- Daemon: Fixed bug in myarmdraind program. If used with transaction cache wrong parent/child correlation was possible.
- Release 1.0.4 (February 2006)
-
- New
-
- Release: Release of MyARM for Solaris
- tools: armtime tool checks the ARM_LIBRARY environment variable to load the ARM4 library specified by this variable.
- Release 1.0.3 (December 2005)
-
- Fixes
-
- Tools: armtime had some problems with multi-threaded libarm4.so under linux with different threading environments. Now if possible it loads the MyARM non threaded ARM4 library.
- Tools: myarmdelete --all option now works with gdbm backend.
- Release 1.0.2 (November 2005)
-
- New
-
- Daemon: Added support for setting up the user id for all MyARM daemon processes allowing the superuser to become an other user. Recommended is creating and using a myarm user.
- Miscellaneous: Added needed third-party shared libraries (stdc++, gdbm and qDecoder) in distribution.
- Miscellaneous: Added new methods in ArmDataSource for counting number of definitions.
- Miscellaneous: Added missing factory method for creating an application data instance (new method ArmDataSource::createApplicationData()).
- Miscellaneous: Optimized retrieving child transactions of a parent transaction. Now its about 10 times fast as before (new method ArmDataSource::getTranChildSet().
- Tools: Added --all option to myarmdelete to delete all application and/or transaction instances including their properties and/or metrics.
- Tools: Added -p and --property option to myarminfo program allowing to print out the value of the given property name.
- Tools: Command line switches --depth, --no-metrics and --no-context added to myarmquery.
- Fixes
-
- C Agent: Stop time reported with arm_report_transaction() was stored wrong in the backends. Fixed.
- C Agent: Cleanup of arm4 library works now with dynamic loading e.g. dlopen()/dlclose().
- C Agent: MyARM arm4 library uses now no library version information.
- C Agent: libarm4 does not crash anymore if HOME environment variable was not set.
- Miscellaneous: Optimized retrieving of transactions in MySQL databases.
- Miscellaneous: Unlimited retrieval of nested child-transactions are now supported.
- Tools: In general now command line switches overwrites configuration values.
- Tools, CGI: Optimized myarmquery/CGI output: Now only retrieves properties and/or metrics if requested in the command line tool or in the CGI.
- Release 1.0.1 (August 2005)
-
- New
-
- Documentation: Added javadoc for the ARM 4.0 Java interfaces.
- Java Agent: Java MyARM JNI implementation is now integrated into the evaluation version.
- Miscellaneous: Added ARM4 SDK sdk, null and logger shared libraries.
- Fixes
-
- Miscellaneous: ARM properties are now properly escaped for writing into MySQL database.
- Miscellaneous: Application instance date and duration are now correct.
- Release 1.0.0 (May 2005)
-
- New
-
- Release: Initial release of MyARM. See announcement from may 2005.