ChangeLog of MyARM

Documentation / Community Edition / ChangeLog

Here is a brief description of changes from one release to another of MyARM:

Release 2.1.x.4 (January 2014)
Changes
  • C-Agent (Build 4708): Within arm_stop_transaction() or arm_report_transaction() a maximum time of 1ms is waited to push the transaction measurement into the queue of the serialize thread if the queue is full. After this time the transaction measurement is dropped.
  • C-Agent (Build 4696): Increased queue size of serialize thread to 90% for transaction pool size to minimize waiting conditions within application thread.
Fixes
  • C-Agent (Build 4698): Under high transaction loads it was possible that an application thread would block within arm_stop_transaction() or arm_report_transaction() for ever. A race condition was found and fixed.

Release 2.1.x.3 (November 2013)
New
  • C++ Framework (Build 4612): Added isARMEnabled() method within ArmInterface class to check if an ARM implementation could be found and activated or not.
  • Installation (Build 4621): install.sh script now asks for creating/changing symbolic link (e.g. /opt/myarm) which should point to the currently in use MyARM version.
  • Web-Browser (Build 4617): Added preferences support for enabling/disabling clock offset adjustments of different systems.
  • Web-Browser (Build 4614): Within the sequence chart of the myarmbrowser web application clock offsets between different systems (hosts) are shown in the legend.
Changes
  • Daemon (Build 4618): myarmtcpd.sh and myarmfiled.sh scripts now tries to use a symbolic link (e.g. /opt/myarm) to find the current MyARM installation if these scripts are located outside a MyARM installation (e.g. /etc/init.d/)
  • Web-Browser (Build 4618): myarmbrowser.fcgi script now tries to use a symbolic link (e.g. /opt/myarm) to find the current MyARM installation if the script is located outside a MyARM installation (e.g. /usr/bin/fcgi-bin/)
Fixes
  • C++ Framework (Build 4612): Some methods of ArmTransaction class did not check the start()/stop() state correctly.
  • Web-Browser (Build 4616): Within the SideBar statistics view of the myarmbrowser web application the sigma ranges showed only zero values if all measurements of the current view were less than 1.0.
  • Web-Browser (Build 4613): ARM user defined metrics are now highlighted with a light blue background color within the myarmbrowser web application.

Release 2.1.x.2 (November 2013)
New
  • Agent (Build 4481): Added myarmreport utility to report ARM data collected by our miniARM ARM 4.0 implementation.
Changes
  • Agent (Build 4436): Added support for integrating the agent part within an Unix system by providing separate environment variables for runtime data directory, library data directory and log directory (MYARM_VARRUN_DIR, MYARM_VARLIB_DIR and MYARM_VARLOG_DIR).
  • Tools (Build 4594): Improved myarmdelete performance for MySQL databases.
  • Web-Browser (Build 4605): Fixed sequence chart legend not displaying all used transaction names (if different applications use the same transaction name).
  • Web-Browser (Build 4604): Implemented algroithm to synchronize timestamps within a transaction tree if the clocks on different systems (hosts) differ. This helps drawing a corrected sequence diagram.
  • Web-Browser (Build 4572): Sequence diagram now supports overlapped measurements due to asynchronous workflow.
Fixes
  • Agent (Build 4588): miniARM extracts all different MyARM correlators now correctly.
  • Tools (Build 4569): myarminfo works now even if there is no valid license key

Release 2.1.x.1 (Augist 2013)
New
  • Web-Browser (Build 3923): Added support for a pre-defined user using a config property.
Changes
  • Agents (Build 4292): Added tcp.conf template configuration file to only configure the agent to use a TCP connection to the myarmtcpd.
  • Agents (Build 4289): Syslog facility can be configured using log.syslog.facility.
  • Agents (Build 4281): Syslog log level is also logged if log.show.level is set to true.
  • Database (Build 4124): SQLite database speedup with large amount of measurements
  • Web-Browser (Build 4404): SpeedUp diagram shows percentage speed up if no concurrency user defined attribute is found.
  • Web-Browser (Build 3917): Removed 'Please select' placeholder in some drop-down list selections.
  • Web-Browser (Build 3910): Status and error messages must be cleared by the user explicitly by clicking the clear button or hitting the 'Use' button again.
Fixes
  • Web-Browser (Build 3919): Treeview icon state is now updated correctly after configuration loading.
  • Web-Browser (Build 3912): Fixed bookmark loading of selections with more than one selected entities.
  • Web-Browser (Build 3910): Fixed crash if data source could not be opened.
  • Web-Browser (Build 3906): Fixed include time checkbox (it was not possible to uncheck the checkbox) in Bookmark dialog.
  • Web-Browser (Build 3905): Fixed wrong loading of transactions for a specific configuration if no transactions was found for that configuration.
  • Web-Browser (Build 3896): Fixed layout bug if tree view was changed in size and was later on hidden and shown again.
  • Web-Browser (Build 3887): Fixed loading of URI and context properties for a specific configuration.

Release 2.1.x.0 (January 2013)
New
  • Agent (Build 3598): Added support for droping transactions due to too short response time.
  • Agent (Build 3596): Added support for storing dropped transaction information into the database.
  • Agents (Build 3787): Added support for marking transactions asynchronous which is required to use the SpeedUp calculation within MyARM.
  • Agents (Build 3770): Added support for specifying concurrency in ARM metrics and ARM context values.
  • C Agent (Build 3769): Metric usage is now correctly stored in database.
  • C Agent (Build 3583): C agent uses now an own thread for logging log messages.
  • C# Agent (Build 3640): C# agent uses now an own thread for logging log messages.
  • C# Agent (Build 3529): Now log messages within the C# agent are compared for equality and a repeated n-times log message will be issued if more than 2 equal log messages were logged within a 5 second time interval.
  • Java Agent (Build 3792): Improved correlator generation within Java agent. Reduced length of correlator.
  • Web-Browser (Build 3676): Added myarmbrowser administrator user support.
  • Web-Browser (Build 3662): Disable multiple day selection if a MySQL database contains only transactions for one day.
  • Web-Browser (Build 3655): Improved sequence diagram layout engine.
  • Web-Browser (Build 3644): Added support for preloading URI information for easy selection.
  • Web-Browser (Build 3601): Added dropped transaction sidebar panel.
  • Web-Browser (Build 3599): One day and multiple day pre-defined date selection are now only presented if transactions are available for the appropriate date.
  • Web-Browser (Build 3573): Only dates with transaction measurement are selectable within the calendar popup dialog.
  • Web-Browser (Build 3566): Added context property filtering support.
  • Web-Browser (Build 3560): Added URI filtering support.
  • Web-Browser (Build 3557): Added Sidebar transaction distribution support (including coloring of appropriate table column).
  • Web-Browser (Build 3549): Added more 9 more approaches to select transactions and the possibility to enable/disable some approaches.
  • Web-Browser (Build 3547): Added HTTP-Auth remote user support.
  • Web-Browser (Build 3546): Added statistical transaction metrics.
  • Web-Browser (Build 3542): Added support for renaming a stored configuration.
  • Web-Browser (Build 3538): Added push button to set the current time rounded by the current time interval.
  • Web-Browser (Build 3532): Added min and max time interval configuration properties.
  • Web-Browser (Build 3530): Added number of elements for system, application and transaction instances in the "please select" entry of the appropriate dropbox.
Changes
  • Agent (Build 3590): Resource watch dog logs information about recorded, processed, read and saved entities.
  • Daemon (Build 3586): Replaced temporary file handling with file reader/writer concept of the myarmfiled.
  • Daemon (Build 3577): The myarmfiled only read in one ARM data buffer at a time thus it does not loose ARM data if the destination datasink is not available.
  • Database (Build 3693): MySQL databases are now created explicitly with UTF8 character encoding.
  • Datasink (Build 3617): Removed unused transaction database columns.
  • Datasink (Build 3609): Removed thread datasink and implemented multiple MySQL database connections within the MySQL datasink.
  • Web-Browser (Build 3763): Added URL bookmark support in myarmbrowser web interface.
  • Web-Browser (Build 3728): Added SpeedUp support in myarmbrowser web interface.
Fixes
  • Daemon (Build 3539): Added IP address and port of the remote connection to any log message within the myarmtcpd to help identifying a client failure.
  • Daemon (Build 3528): During termination of the myarmtcpd not all connections were closed correctly which could result in some error messages on the client side.
  • Web-Browser (Build 3637): myarmbrowser works now with SQLite3 database.
  • Web-Browser (Build 3562): All strings are read from database in UTF8 encoding.

Release 2.0.x.1 (August 2012)
New
  • Daemon (Build 3477): Added tcpd.flowcontrol.threshold configuration property to control the percentage of used ARM data buffers to enable flow control.
  • Web-Browser (Build 3444): Added context menu for choosing preferred time interval for single day selection mode.
  • Web-Browser (Build 3441): Added support for saving chart layout and tree filtering information into a configuration.
  • Web-Browser (Build 3436): Added tooltip with complete transaction name for transaction names which were cut due to its length.
  • Web-Browser (Build 3431): Added preference entries for transaction tree depth and %-filter.
  • Web-Browser (Build 3430): Added transaction limit of a tree.
  • Web-Browser (Build 3425): Added new background color for context properties.
Changes
  • Web-Browser (Build 3434): Added possibility to save a configuration without selecting an entity. This can be used for saving a filter only configuration.
Fixes
  • Daemon (Build 3456): Fixed wrong dead connection detection within myarmtcpd which caused sometimes to close a connection which was still active.
  • Datasink (Build 3478): Fixed idle connection closing of tcp datasink while an ARM data buffer acknowledgement is outstanding. After the connection was closed within such a situation a new connection was never established.
  • Datasink (Build 3472): Fixed crash within myarmtcpd if a tcp client connection was paused sending data in flow control mode and the stopped time interval was greater than the keepalive interval for the connection.
  • Datasink (Build 3466): Fixed missing state change within tcpsink if the myarmtcpd closed the connection.
  • Web-Browser (Build 3443): Fixed wrong selection criteria path if attribute filtering was active and no transactions were selected.
  • Web-Browser (Build 3440): Fixed UTF8 problem within configuration name loading.
  • Web-Browser (Build 3433): Fixed too short reported database operations.
  • Web-Browser (Build 3432): Fixed inconsistent preferences and layout information after an user change.
  • Web-Browser (Build 3429): Fixed crash if %-filter was used within tree view.
  • Web-Browser (Build 3427): Fixed busy loop within sequence response time chart if a sequence was shown with context properties and the next shown chart had no context properties.
  • Web-Browser (Build 3425): Fixed overwriting of legend background box.
  • Web-Browser (Build 3424): Fixed clearing of transaction details in tree view if no tree was shown.
  • Web-Browser (Build 3422): Fixed german weekday abbreviations.
  • Web-Browser (Build 3411): Fixed inconsistent percentage values of pie chart legend.

Release 2.0.x.0 (June 2012)
New
  • Bindings (Build 3284): Added support for binding a thread to a transaction measurement including a thread ID and a thread name.
  • Bindings (Build 3260): Added support for blocked times within a transaction measurement. Also supports ARM 4.1 block cause.
  • C++ Framework (Build 3391): Added ARM 4.0 C++ language binding which uses the ARM 4.0 C API to call a real ARM agent implementation.
  • C++ Framework (Build 3391): Replaces old QArm version 1 with new QArm4 ARM 4.0 C++ framework which is derived from the ARM 4.0 Java API and supports complete ARM 4.0 feature set. It is implemented by using the ARM 4.0 C API to call a real ARM agent implementation.
  • Example (Build 3415): Added QParallelMandelbrot example to demonstrate the calculation of the parallel Speedup indicator.
  • Web-Browser (Build 3410): Added web 2.0 interface myarmbrowser to analyse measured data from a standard web browser.
  • Web-Browser (Build 3313): Added web 2.0 interface myarmparallel to analyse measured response times of parallel algorithms supporting calculation of the Speedup indicator.
Changes
  • Database (Build 3396): Updated SQLite database to version 3.7.12.1
  • Database (Build 3392): Optimized database layout which reduced the amount of stored data an increased the querying performance.
  • Database (Build 3377): Removed MySQL partitioning support.
  • Datasource (Build 3238): Improved correlation process of a single transaction tree alot.

Release 1.4.x.3 (April 2012)
Fixes
  • Datasink (Build 3207): Reconnect to oracle and mysql database works again. Due to an error in the reconnect handling of the oracle and mysql datasink the reconnect to the database was not initiated.

Release 1.4.x.2 (November 2011)
New
  • Agent (Build 3029): Added support for writing log messages of a defined (agent.log.datasink.level) log level (error) to the configured datasink (database).
  • Agent (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_ok configuration 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.
Changes
  • Agent (Build 3019): Now dropped data log messages are classified as an error message instead of an informal message.
  • Agent (Build 2910): Improved queue handling and thread signalling within C# and C agents.
  • Agent (Build 2767): The queue size of the sinkthread is now initialized with the maximal number of ARM data buffers instead of a configured value.
  • Agent (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 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
  • Agent (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.
  • Agent (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 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.
  • Datasink (Build 3025): Removed possible deadlock within tcpsink if sending an ARM data buffer failed.
  • Datasink (Build 3000): tcpsink now reconnects correctly if a connection attempt timed out.
  • 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.
  • 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 --drop did 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_month and month_per_year MySQL partitioning scheme.
  • 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 include and a template directory 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.
  • 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 INSERT performance 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.
Fixes
  • C Agent (Build 2663): The C agent crashed if arm_report_transaction() was called after a call to arm_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 2570): myarmtcpd now reports a protocol error as an error log message.

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.name and basic.sink.thread.tmpfile.size properties.
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 2463): Calling convention of functions within libarm4.so under Linux/i386 was wrong due to an error within the ARM4SDK arm4os.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 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.size property can be used to specify the size of the eventlog file.

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() and arm_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.
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
  • Agent (Build 2392): Consolidated the component log support (%C).
  • 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 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.

Release 1.3.x.4 (May 2010)
New
  • Agent (Build 2322): C, Java and C# agents now supports a warning log level.
  • Agent (Build 2308): Added agent.transaction.pool.max, agent.metric.pool.max and basic.armdata.buffer.pool.max configuration properties. These configuration properties are hard limits for the appropriate resource.
  • Agent (Build 2308): Added resource watch dog which periodically logs used resources.
  • Agent (Build 2289): Added agent.api.log.error and agent.api.log.warning configuration 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
  • Agent (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.size configuration property correctly. It used its default value of 128KB.
  • 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.
  • Manager (Build 2347): Improved loading of large ARM definition databases alot.
  • Manager (Build 2318): Manager uses now the basic.time.use_utc configuration 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 $HOME is not set.

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.directory and filed.basename configuration 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.
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 is 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.
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.

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
  • Agent (Build 1814): Added support for logging the component which produced a log message.
  • 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.
  • python (Build 1690): ARM 4.0 python module is now integrated.
Changes
  • 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:
    1. Definition database storing all ARM definitions.
    2. Application database storing all ARM application instances and context properties.
    3. 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.

Release 1.2.x.6 (February 2009)
New
  • 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 of 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.
  • 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
  • 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".
  • 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 1561): Added Visual Studio import libraries for libarm4sdk.dll, libarm4null.dll and libarm4logger.dll.
  • 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:
    1. App.config
    2. Environment variable
    3. Windows registry entries
  • Datasink (Build 1506): The tcpsink did not reconnect correctly under Windows if the connection was reset. This is fixed now.

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:
    1. Command line options
    2. Environment variable
    3. Windows registry entries

Release 1.2.x.2 (September 2008)
New
  • 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
  • Agent (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.

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.

Release 1.1.0.4 (April 2008)
New
  • Datasink: Added SQLite database sink and source support.
  • Manager: Added Qt 4 based management GUI.
  • Release: MyARM supports now Windows/x86 and Solaris/x86.
Fixes
  • Database: Improved MyARM database layout to speed up the correlation process alot.
  • Miscellaneous: Many improvements to arm4 library, command line tools.

Release 1.0.5 (June 2006)
New
  • Contribution: Added pre-compiled mod_arm4 Apache HTTP Server module.
  • Documentation: Added HTML UserGuide.
Fixes
  • C Agent: Fixed bug in context value processing which caused sometimes a crash.

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.

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 missing factory method for creating an application data instance (new method ArmDataSource::createApplicationData()).
  • Tools: Added --all option to myarmdelete to delete all application and/or transaction instances including their properties and/or metrics.
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: Unlimited retrieval of nested child-transactions are now supported.

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.

Release 1.0.0 (May 2005)
New
  • Release: Initial release of MyARM.