June 2010
Standard Edition, Release 6.2.2
Two minor bugs fixed:
- The Wait List display and statistics Wait List detail were erroneous
in that they skipped every other row.
The iterator was updated twice instead of once.
- The Post Processor thread (runs just after Tymeac initial start up)
that verifies the Notification Function and
executes the start up Functions very rarely got ahead of the finalization
method in the main start up thread.
The classic example of what thread gets execution time at any given
instant. A slight delay in the Post
Processor thread, when necessary, fixed that.
Added server up-time duration on shutdown message and statistics.
This release makes the variables, "final", in the base package that can be
set so. There is a performance gain in
using:
private final int max_threads; over
private int max_threads;
And the usual pretty-up for code and documentation.
Micro Edition, Release 2.0
Yes, it's been awhile. We were waiting to see what Sun was going to do with
the Micro Edition. Now that release 3.0 is out (and Oracle is supporting ME),
it's time for a new release of Tymeac.
This release is a port from the Tymeac Standard Edition release 6.2.2.
Atomic operations are simulated by synchronizing code from the original
Concurrency Utilities from Doug Lea:
Introduction to this package
http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
Many, many thanks to Prof. Lea for his enormous effort on his project.
The difference between the SE and ME versions is that this ME version only
runs as an embedded server and only supports JDK1.4 (hence the rewriting of
the concurrency utilities.)
December 2008
Standard Edition,
Release 6.2.1
This release is just a smooth-up for some of the classes. That is, making
some protected fields private, streamlining some code, etc.
We removed support for the Jini version 1.x examples. Jini version 2.x has
been available for many years now.
November 2008
Standard Edition,
Release 6.2
This release adds additional functionality for the Run Time Functions:
Notification
Logging
Statistics Repository
The run time functions load at Tymeac start up. We now provide three GUIs
(and command line access) to reset, stop, display and update (change) these
functions.
Tymeac Interface (and all the implementation classes)
changed to accommodate the above. You must recompile any affected modules.
As of the next release, we are removing support for the
Jini version 1.x examples. Jini version 2.x has been available for many years
now.
October 2008
Standard Edition, Release 6.1
This release is a cosmetic upgrade to the server. More of a pretty-up for
the com.tymeac.base classes.
The original Java code started in 1998 for JDK1.1. Ten years later some of
that code still functioned as-is (logging, statistics etc.) So we just brought
that old code into line with newer techniques.
We changed the system is shutting down indicator from a public to a private
field.
We added an uncaught exception handler for the Monitor to shut down Tymeac
in case of fatal Monitor errors.
We fixed a potential bug is the server shut down logic when many requests
for shut down happen concurrently.
April 2008
Standard Edition, Release 6.0
This release is a major upgrade to the server. It's been awhile since the
last upgrade. This release is based on JDK 1.6.
We added the timeout variable in the Processing Application Class as an
updateable field in the Queue Data GUI/non-GUI. There was some minor
restructuring to support this in the TyBase Class.
We added a high water mark field in the Wait Lists. This affects the Wait
List GUI/non-GUI and the statistics.
We added logical number of entries to the Wait List structure. This
requires alteration to both the DBMS Queue Table and the User Queues
structure. You must alter these structures to use this
release.
Eliminated printing the name of the rebinding variable in the RMI
Registry and JNDI Rebinding message. It was causing some confusion.
When Queue Threads change status to "Processing" they reset the cancelled
reason.
Removed the "zero asynchronous requests possibly stalled" message
displaying all the time from the Overall display. The message only appears
now when there are possibly stalled requests.
Changed most 'public' constructors and other methods to 'protected' in
com.tymeac.base (for the Tymeac management Classes.) There is no reason
outside packages should access these Classes. We provide access to execution
information in the TymeacInfo and TymeacUserSingleton Classes as well as the
com.tymeac.client and com.tymeac.client.jframe packages.
We added a demo/comparison between Tymeac and the new Fork-Join package
coming in Java 7 for early adapters.
We include the complete source in the /Source directory as a zip file and
eliminate one downloadable file (the product without full source.)
Previously, we only supplied demonstration classes in the /Source. If users
wanted the complete source, then they downloaded that zip file separately.
As with all software over time, we improved the readability,
maintainability and performance of the product.
August 2007
Standard Edition, Release 5.5
This release is the last minor internal restructuring to the server that
was started in release 5.0.
We restructured the Start up Class into six related classes. This helps
in maintaining and enhancing.
We restructured the command line start up for the Jini Server. Before,
the command line arguments were in a configuration file. We moved these to
the command line were they really belong. For the Jini
Server, you need to make minor changes.
We renamed and cleaned up several Classes.
This is the last release using the Java5 (or 1.5) JDK. The next release
will be based on JDK 1.6.
July 2007
Standard Edition, Release 5.4
This release is a minor internal restructuring to the server.
We restructured the Tymeac Queue Area. We made the "Area" into a three
level structure.
We restructure the Function Array Classes to be in line with the
Collections Framework.
We're beginning the restructuring of the start-up Class. This beast will
be tamed
June 2007
Standard Edition, Release 5.3
This release is a minor upgrade to the server.
We fixed a minor bug in the wait algorithm for Queue Threads to speed up
de-allocation of the thread when no work was present.
We applied the patch that came out for release 5.2 for the NetBeans GUI
Demonstration classes.
We restructured the way Request-Detail objects are created and
maintained. These object hold data associated with each request. The
Eden-Space of the garbage collector is so efficient, we take advantage of
this.
We restructure the Stall Array Classes to be in line with the Concurrency
Classes.
March 2007
Standard Edition, Release 5.2
This release is a minor upgrade to the server.
We added the embedded database shutdown for the Activation system.
We missed this in release 5.1.
We added error recovery to the cancel sync request using a
callback. See cancelSyncReq(). The proper term should be that we
trapped the errors and printed a message.
There can be no recovery from such errors. This functionality
requires internal Tymeac classes and if something goes wrong, it means
there is system damage.
We changed the start up configuration file from a home-grown format
to xml. We said this was coming and here it is. Not to worry, we
proved a conversion tool for the old format. See the TyCfg document
for the details. This means, naturally, that you
must convert the old format to xml before running this release.
As stated in release 5.1, we're in the process of restructuring the
GUI classes. In this release we provide three Demonstration GUI's:
T1, T3 and the Internal Server Test in this new format. If the
yelling and screaming doesn't reach lethal levels, then we'll continue
using this new format in future releases.
January 2007
Standard Edition, Release 5.1
This release is a minor upgrade to the server.
There are some bug fixes. As we mentioned below, using
no-lock/no-wait logic is not as easy as it looks.
We added support for embedded databases. Derby and Hsql are the ones
we concentrated on. Tymeac was first built with the DBMS mode only.
Using the standalone mode came later. We only tested with DB2 and ran
into some structure problems when adding Derby (DB2 allowed a semi-colon
(;) after commands, YEAR was a valid column name, etc.) Therefore, there
are name changes to the Log and Stats tables.
We're in the process of restructuring the GUI classes. In the first
release of Tymeac we used AWT and VisualAge-for-Java for building those.
Next we used Swing and VisualCafe for the GUI's. Both those are no
longer supported. We liked both those products since they generated java
files that could be maintained without the products. We've decided on
using NetBeans for maintaining the GUI's. Even though NetBeans requires
an add-on jar file for execution, NetBeans is free and easily obtainable
so there won't be a problem for other developers.
We're in the process of restructuring some of the base classes.
Start-up is one for sure.
September 2006
Standard Edition, Release 5.0
This release is a major upgrade to the server. From a functionality
viewpoint, there is no difference. Tymeac looks the same. From an
internal viewpoint there are major differences. This release
incorporates the java.util.concurrent packages.
The biggest boast in performance comes from the concurrency
packages.
All [RMI] Connection threads use CountDownLatch when waiting for
Queue Threads to finish processing in the Synchronous Request
method. This results in significant performance improvements.
Queue Threads use Lock.lock() and Condition.await()/signal() in
place of wait()/notify() when waiting for work from the [RMI]
Connection threads.
The Queue Wait Lists use ConcurrentLinkedQueue in place of a
home-grown pop-up list.
All Synchronous/Asynchronous Request arrays and the Queue Threads
use atomic variables in place of synchronization wherever possible.
(Which is just about everywhere.)
The performance is significantly greater. However, testing of
this new environment requires exhaustive work. We've done the best
we can. Many strange things happen in multi-processing -- beyond the
ability of mere mortals to envision. We look forward to your
comments, corrections and suggestions.
Added LoginServer:
This is an example of how to use the RMI Server to front-end a
login sequence before the client may use the server. For those who
do not use Jini's extensible RMI (JERI) this is a way to easily do a
login.
Changed Monitor:
Every iteration of the Monitor looked to compress the Tymeac
internal tables used for synchronous/asynchronous processing. This
was heavy overhead with very limited benefit. It also impacted the
performance. We eliminated this compression.
November 2004
Standard Edition, Release 4.0.5
Micro Edition, Release 1.1.4
Added the User Singleton class to help applications using persistent storage.
Minor documentation enhancements.
Minor speed and cosmetic code changes
October 2004
Standard Edition, Release 4.0.4
Micro Edition, Release 1.1.3
Added a new shut down request method
public String shutRequest(boolean force);
There were times when the server would not shut down because of unresponsive Queue
Threads. This method forces a shutdown when the boolean is set to true.
As started in release 4, a restructuring is taking place.
Changed/restructured TyBase
Added
public int shutOrigin = 0; // shutdown initiated by
public int startType = 0; // type of Server
These were in TymeacInfo. From a pure user standpoint there is no change.
Changed structure from public instance fields to private and added getter/setter
methods.
Changed TymeacInfo
Removed getBase()
Added getJoinManager() (Std Edition only)
Removed instance fields
private int status = 0;
private int shutOrigin = 0;
These were moved to TyBase.
Removed constant
public final static int NOT_IN_SHUTDOWN = 0;
Changed the Jini shutdown exit: (Std Edition only)
com.tymeac.serveruser.JiniShutDownExit
by replacing getBase() with getJoinManager() see the change to TymeacInfo, above.
Changed shutThread (Std Edition only)
no longer contains inactivate logic, that now is in
TymeacImpl.shutRequest()
Changed TymeacImpl.shutRequest()
as above and streamlined
Changed monitor (Std Edition only)
added shut_count for handling a shut down in the inactivate logic
Minor documentation enhancements.
Minor speed and cosmetic code changes.
July 2004
Standard Edition, Release 4.0.3
Micro Edition, Release 1.1.2
Changed the way Queue Threshold values are entered in both the Queue Maintenance and
Live Queue displays. Previously, one had to enter the zero and decimal place for the
floating point number (0.). Now only the fraction is necessary. 25% was 0.25, now is just
25.
N.B. 5% is 05, not 5.
Changed the Monitor to exit in the run() method at the completion of Tymeac shut down.
This only affects the internal server when not using the shut down thread.
Minor documentation enhancements.
Minor speed and cosmetic code changes.
May 2004
Standard Edition, Release 4.0.2
Support for java.util.Preference data which may replace the configuration file (for
DBMS mode.)
Added JavaDoc for some Tymeac base classes to help in documentation.
April 2004
Standard Edition, Release 4.0.1
Additional field in The Tymeac Parameter clients pass to the server to include the
cancel word for canceling synchronous requests.
Added support for Portable Object Adapter (IIOP).
Micro Edition, Release 1.1.1
Additional field in The Tymeac Parameter clients pass to the server to include the
cancel word for canceling synchronous requests.
March 2004
Standard Edition, Release 4.0
We support Jini2.0 and JDK1.4.2. This is a major upgrade
and policy shift.
Our policy was that the binary release of Tymeac supported
two prior releases of the JDK. That is, when JDK1.3x was the current JDK. We supported
backward to JDK1.1x. The binary classes of Tymeac were compiled with the JDK1.1 compiler.
Therefore, customers who ran on prior releases of Java could still use the product.
Henceforth, we will release versions of Tymeac on the
latest version of the JDK.
Those who are running on prior versions of the JDK can
download prior versions of Tymeac. In this way, we can stay on the cutting edge of
technology.
This is mainly due to the Jini2.0 upgrade. Jini2.0 adds:
- Support for secure Jini technology-based programs (Security infrastructure)
- Mechanisms to configure applications at run-time (
Configuration)
- Unity of client-side and server-side programming models (
ProxyPreparer and Exporter)
- An RMI implementation that supports pluggable invocation layer behavior and pluggable
transport providers (Jini ERI)
Currently we have different front-ends for each [TCP, IIOP]
transport provider. As RMI supports more and more communication protocols using an
exporter is the right way to go.
Enhancements:
Additional method in TymeacInterface. In order to support the canceling of synchronous
requests we added a new method.
Altered method in TymeacInterface. In order to support the canceling of asynchronous
requests.
Addition of the TymeacInternalFunctions and Queues. This is to support the canceling of
synchronous requests and any further internal functionality.
Additional field in both the Tymeac Configuration File (for use with a DBMS) and the
Tymeac User Variables Class (for stand alone mode.) The field is Login Context, for
security checking.
Added security checking in the Tymeac Server driven by the above, login context. Added
security checking in the Tymeac Clients with a command line option.
Jini is now part of the basic product. There is a JiniServer for both activatable and
non-activaton.
Additional fields in the Tymeac Base Storage (TyBase) for security and Jini. The TyBase
fields were all static, they are now instance.
Additional field in The Tymeac Parameter clients pass to the server to include the
callback for canceling synchronous requests
Micro Edition, Release 1.1
This Version is based on CLDC 1.1.
We add two directories:
com.tymeac.me.client.jframe
com.tymeac.me.demo.jframe
These are for use with a full J2SE environment to make development easier.
Enhancements:
New this release is support for floating point arithmetic. With FP, this release looks
more like its big brother, Tymeac for the Java Standard Edition, version 4.0.
Additional method in TymeacInterface. In order to support the canceling of synchronous
requests we added a new method.
Addition of the TymeacInternalFunctions and Queues. This is to support the canceling of
synchronous requests and any further internal functionality.
Additional field in The Tymeac Parameter clients pass to the server to include the
callback for canceling synchronous requests.
December 2003 Release 3.0.3.1
Bug fixes and cosmetic enhancements to the JFrame Help and
About dialogs.
December 2002
Minor bug fixes.
October 2002
The open source release is now available on SourceForge.net
Project name for the standard edition is TymeacSE