Logo
Cooperative Software Systems
CoopSoft.com
Home Products Company Contacts Licensing
 

News

 

 

  Home

 

  Products

 

  Company

 

  Contacts

 

  Licensing

 

Tymeac for the Java Platform News

divider

September 2016

Divide-and-Conquer Standard Edition, Release 6.3

Fixed a potential bug in error processing. When backing out a failed request, Tymeac tries to remove Tasks from Work Queues before they can be fetched by a work thread. Tymeac uses a request id (long integer) to identify the request, however, both a synchronous and asynchronous request might have the same request id and be in the system at the same time. Added a (is sync or async) check to make sure the right one gets cancelled.

June 2016

Standard Edition, Release 8.4.1

Finished updating the source code for the Eclipse Public License.

Documentation enhancements.

Divide-and-Conquer Standard Edition, Release 6.2.1

Finished updating the source code for the Eclipse Public License.

Documentation enhancements.

Android Edition, Release 2.5.1

Finished updating the source code for the Eclipse Public License.

Documentation enhancements.

Reactive Streams Edition, Release 2.2.1

Documentation enhancements.

March 2016

Reactive Streams Edition, Release 2.2

Enhanced the Publisher demonstration classes to demonstrate using the JSR166 Flow interfaces.

February 2016

Android Edition, Release 2.5

Added a new feature (show stack trace) to the Queue Thread Display.

Deprecated the experimental Push Based Notification. As noted in the documentation, this was purely experimental and has not proven feasible.

Deprecated Classes and documentation will be removed in a subsequent major release.

Push processing is now a separate Tymeac project (TymeacRSE) A Java Reactive Stream Generator Adding this new project is the reason for the long delay in updating the current project.

The open-source license for this project, the Common Public License Version 1.0 (CPL), has been superseded by the Eclipse Public License 1.0 (EPL-1.0). See the license document.

We will continue updating the source code in coming releases to reflect this change.

Reactive Streams Edition, Release 2.2

Added a new feature (show stack trace) to the Queue Thread Display.

Divide-and-Conquer Standard Edition, Release 6.2

Added a new feature (show stack trace) to the Queue Thread Display.

The open-source license for this project, the Common Public License Version 1.0 (CPL), has been superseded by the Eclipse Public License 1.0 (EPL-1.0). See the license document.

We will continue updating the source code in coming releases to reflect this change.

We created a new Tymeac project (TymeacRSE) for Push Processing A Java Reactive Stream Generator Adding this new project is the reason for the long delay in updating the current project.

Some internal restructuring.

Standard Edition, Release 8.4

Added a new feature (show stack trace) to the Queue Thread Display.

Deprecated the experimental Push Based Notification. As noted in the documentation, this was purely experimental and has not proven feasible.

Deprecated Classes and documentation will be removed in a subsequent major release.

Push processing is now a separate Tymeac project (TymeacRSE) A Java Reactive Stream Generator Adding this new project is the reason for the long delay in updating the current project.

The open-source license for this project, the Common Public License Version 1.0 (CPL), has been superseded by the Eclipse Public License 1.0 (EPL-1.0). See the license document.

We will continue updating the source code in coming releases to reflect this change.

January 2016

Reactive Streams Edition, Release 2.1

Added support for a Subscriber-object submitting an array of items for onNext(). New method in Task and the Sending Thread (com.tymeac.rse.base.QueueThreadSending)

Demonstration class supporting this change: com.tymeac.rse.serveruser.DemoPush2

January 2016

Reactive Streams Edition, Release 2.0

Revised the demonstration section.

Tymeac is a backend push generator. However, demonstrating usage depends on following current industry standards. We reorganized the demonstration classes to more closely follow Reactive Streams (org.reactivestreams) rather than Reactive Extensions. We also include demonstrations using pure Reactive Streams that are front-ended for Tymeac.

Reactive Extensions does not program to interfaces the way Reactive Streams does so demonstrating Reactive Extensions may follow in a subsequent release.

November 2015

Reactive Streams Edition, Release 1.3

Added the Communal Request start up option so users may execute a list of communalRequest() at start up.

Added additional scenarios for demonstrating how to run a Publisher on Tymeac.

Documentation enhancements.

October 2015

Reactive Streams Edition, Release 1.2

Added the Publisher demo as a proof-of-concept that you can run a pure Publisher as a Task on Tymeac.

Documentation enhancements.

September 2015

Reactive Streams Edition, Release 1.1

Added the ability of the client to pass an Alter-Object to the request. Cancel, Pause/Resume, and now Alter. This allows further client control for the executing request.

Documentation enhancements.

Reactive Streams Edition, Release 1.0

New project.

June 2015

Android Edition, Release 2.4

Added two features to the New Copy of an application class:

  1. Display of the current application class
  2. Ability to pass a URL to the new function to alter a class object instead of a String "name+URL".

Modified and added additional examples to the push/event based processing.

Some internal restructuring.

Standard Edition, Release 8.3

Added two features to the New Copy of an application class:

  1. Display of the current application class
  2. Ability to pass a URL to the new function to alter a class object instead of a String "name+URL".

Modified and added additional examples to the push/event based processing.

Some internal restructuring.

May 2015

Android Edition, Release 2.3

Added support for callbacks in "Future" type retrieval of asynchronous results.

This release adds push/event based processing. There is so much Internet activity surrounding RxJava and Reactive Software that we introduce that form of asynchronous processing here.

Some internal restructuring and documentation enhancements.

April 2015

Standard Edition, Release 8.2

This release adds push/event based processing. There is so much Internet activity surrounding RxJava and Reactive Software that we introduce that form of asynchronous processing here.

March 2015

Standard Edition, Release 8.1.1

This release is a fix-up for release 8.1. By overwhelming consensus, the results-of-processing for asynchronous callback and save-results should be encapsulated in a TymeacReturn object. We altered the product for this and we apologize for the inconvenience this may cause. Now the SE version of Tymeac is compatible across all versions of Tymeac (SE, DSE, AND.) For reference see the Async Doc.

Altered some JavaFX forms for visual affects, not substance.

Documentation enhancements.

Divide-and-Conquer Standard Edition, Release 6.1.1

This release is a fix-up for release 6.1. By overwhelming consensus, the results-of-processing for asynchronous callback and save-results requested in a TymeacParm should be encapsulated in a TymeacReturn object. We altered the product for this and we apologize for the inconvenience this may cause. Now the DSE version of Tymeac is compatible across all versions of Tymeac (SE, DSE, AND.) For reference see the Async Doc. This change also affects save-results, but not callback, in the Built-in-Functions. Save-results now uses the TymeacReturn class to save the results. See the BIF save-results section.

Altered some JavaFX forms for visual affects, not substance.

Documentation enhancements.

February 2015

Android Edition, Release 2.2

Regenerated the TymeacAndDemoQuote project to TymeacAndDemoPipeline which also eliminated the need for the appcompat_v7 project.

Moved from Eclipse to Android Studio 1.0.

Added the ability to support "Future" type retrieval of asynchronous results. This does not affect any current programming.

Added a line item in the Overall client to display the number of pending "Future" objects in the system.

Various documentation enhancements.

Standard Edition, Release 8.1

Added callback to the TymeacParm for asynchronous calls.

Added the ability to support "Future" type retrieval of asynchronous results. This is mutually exclusive with callback. This does not affect any current programming.

Added a line item in the Overall client to display the number of pending "Future" objects in the system (JavaFX only.)

Divide-and-Conquer Standard Edition, Release 6.1

Added callback to the TymeacParm for asynchronous calls.

Added the ability to support "Future" type retrieval of asynchronous results. This is mutually exclusive with callback. Although a simple change in principal, it required massive changes to every constructor in the Built-in-Functions and the demonstration classes where callback is part of the constructor. This does not affect any current programming.

Added a line item in the Overall client to display the number of pending "Future" objects in the system (JavaFX only.)

January 2015

Standard Edition, Release 8.0

The march to Java8 is on. Reformatted the client access from Swing to JavaFX under Java8. Release 7.0 started the move, now this release completes that move. Swing will still remain, but any new functionality will be with JavaFX only. See the directory structure for changes and the introductory JavaFX page. If you still use Java7, then delete all the ...client.fx and ...demo.fx packages.

There were no changes to Jini Client displays to support JavaFX. Jini (River) is on our list of "no longer viable." We intend to keep what is there, but we see no need for enhancement.

Fixed a few bugs in the alter server functionality.

Added method isInitialized() to the TymeacInfo class.

Various documentation enhancements and cosmetic improvements. 

Divide-and-Conquer Standard Edition, Release 6.0

The march to Java8 is on. Reformatted the client access from Swing to JavaFX under Java8. Release 5.0 started the move, now this release completes that move. Swing will still remain, but any new functionality will be with JavaFX only. See the directory structure for changes and the introductory JavaFX page. If you still use Java7, then delete all the ...client.fx and ...demo.fx packages.

Fixed a few bugs in the client directory (shut down) and the alter server functionality.

Added method isInitialized() to the TymeacInfo class.

Outside of JavaFX, running with Java7 is still possible. See the notes below in Release 5.2.

November 2014

Divide-and-Conquer Standard Edition, Release 5.3.1

Moved the Built in Function, function interfaces, from the com.tymeac.dse.base package to a  new package: com.tymeac.dse.function. Simply add a new import to any client class that uses these interfaces.

This is the last release before the revision of the client access from Swing to JavaFX under Java8. Release 5.0 started the move, now the forthcoming Release 6.0 will complete that move. Swing will still remain, but any new functionality will be with JavaFX only.

Standard Edition, Release 7.2

Added the start up argument -pref. This is for the use of java.util.pref (Preference). The prior release was a quick fix since Windows now requires administrator mode to use this feature. This argument is mutually exclusive with the -file and -dir options.

Standard Edition, Release 7.1.1

Suppressing the use of java.util.pref (Preference) since Windows now requires administrator mode to use this feature. Will probably remove Preferences in a future release.

Divide-and-Conquer Standard Edition, Release 5.3

Added the start up argument -pref. This is for the use of java.util.pref (Preference). The prior release was a quick fix since Windows now requires administrator mode to use this feature. This argument is mutually exclusive with the -file and -dir options.

Divide-and-Conquer Standard Edition, Release 5.2.1

Suppressing the use of java.util.pref (Preference) since Windows now requires administrator mode to use this feature. Will probably remove Preferences in a future release.

October 2014

Android Edition, Release 2.1

Added Pipeline processing.

Added TymeacAndDemoQuote activity to demonstrate pipeline processing.

Various documentation enhancements.

Standard Edition, Release 7.1

Added Pipeline processing with the scheduleContinuanceRequest method to make it easier to execute multiple Functions consecutively.

Compiled the classes on Java8 with compliance level 1.8 so this affects the RMI Registry. You cannot run this release using RMI on a Java7 machine with the supplied binary classes. If you need the Java7 version then simply recompile the source on Java7.

Various documentation enhancements and cosmetic improvements. 

Divide-and-Conquer Standard Edition, Release 5.2

Added the Combine Built In Function.

Added the scheduleContinuanceRequest method to the Task class to make it easier to execute multiple Built in Functions consecutively. This is a type of Pipeline processing.

Added a page to help determine when to parallelize.

Compiled the classes on Java8 with compliance level 1.8 so this affects the RMI Registry. You cannot run this release using RMI on a Java7 machine with the supplied binary classes. If you need the Java7 version then simply recompile the source on Java7. See also the instructions on how to replace the Java8 version for the Random Number Generator.

Various documentation enhancements and cosmetic improvements. 

September 2014

Divide-and-Conquer Standard Edition, Release 5.1

Added the Partition Built In Function.

Fixed a bug in Task::complete when errors are encountered.

Speed improvements in Built in Functions: Filter, Search and Map/Reduce for option - ordered. 

Various documentation enhancements and cosmetic improvements. 

Android Edition, Release 2.0

This is a major revision to the product.

The service side:

The TymeacReturn class is now the single return class for all sync, async, shut requests. (a slight change)

The TymeacInterface class [aidl] changed to support the above as well as below. Changing an interface, especially the interface used to communicate with the service is a major event. In order to change/add activities this class always needs changing. To help with this, we reengineered the client access.

The activities access:

The client access changed radically. This project comes from TymeacSE (standard Java.) That project goes back to Java1.1. Going from AWT to Swing and beyond means that the client access must become standard. As we added more client access (activities here) we needed to change the TymeacInterface. That meant breaking backward compatibility. With this new method, all clients use one single call:
    public ClientInOut clientRequest(ClientInOut in)

We are considering using JavaFX as the client access. This will not have any affect on the above.

N.B. The TyService.jar and TyCommon.jar files were replaced in the asset directories in all Activity projects.

Altered the timeout properties. There was a mistake, 2 should have been 1/2 etc. The various timeouts work better now.

Changed most statistics fields to long from int. Some mobile devices can run for months without shutdown.

Various documentation enhancements and cosmetic improvements. 

Standard Edition, Release 7.0

This is a  major revision to the product. This version is for the Java8 environment, which is a major revision to Java itself. The classes were compiled with Java8 but there is no Java8-only source code.  Future versions of the product will contain Lambda code but we're not refractoring what is here now.

Security:

RMI -- java.rmi.server.UnicastRemoteObject() using an anonymous port is deprecated. You must specify a port on the command line or accept a default of 50001. You may change the default, see the startup document, command line options for instructions.

Removed com.sun.security.auth.callback.DialogCallbackHandler. This method is deprecated in Java8 and will be removed in Java9 so there is no reason to keep it. Security is a touchy issue, we provided this code to support those who wished to include a name/password handler but this version is a security risk. Those who wish to provide a handler for user input should have their own a procedure in place.

Server:

In release 6.4 we provided the TymeacReturn class for standard checking of the returned Object[] from sync and async calls. Using a return Object[] goes back to Java1.1, so it is time to replace that. All three server access methods (syncRequest(), asyncRequest(), shutRequest()) now return the TymeacReturn object. Static methods to convert from an Object[] to the TymeacReturn are deprecated and will be removed in the next version. Using the new return method is much easier than the old way and it provides additional functionality.

Changed most statistics fields to long from int.

Client:

Adding more functionality to the client access (GUI's and non GUI access) meant changing the TymeacInterface and all the RMI classes that use it. Since we changed the TymeacInterface in the server changes, above, we refactored the entire client access. In for a penny, in for a pound. This has no affect on the GUI classes. You will not need to change anything. For those who call the server for client access (thread information, queue information, etc.) then you will need to change your code. Each access documentation provides the information for accessing outside the GUI.

We eliminated all methods for client access, (idStatus1Request, newCopyRequst). Replacing those with a single call:
    public
ClientInOut clientRequest(ClientInOut in)

Both ClientInOut and clientRequest() are documented for those that are interested. This change means we can add anything in the future without changing the existing structure.

Discontinued support for Hsql.

Various documentation enhancements and cosmetic improvements. 

August 2014

Divide-and-Conquer Standard Edition, Release 5.0

This is a  major revision to the product. This version is for the Java8 environment, which is a major revision to Java itself. The classes were compiled with Java8 but there is no Java8-only source code. There is one Java8 class we use for the Built In Function, Random -- java.uti.SplittableRandom, but we also supply the the Java7 version with instructions on how to replace the Java8 version. Future versions of the product will contain Lambda code but we're not refractoring what is here now.

Security:

RMI -- java.rmi.server.UnicastRemoteObject() using an anonymous port is deprecated. You must specify a port on the command line or accept a default of 50001. You can change the default, see the Server Options

Removed com.sun.security.auth.callback.DialogCallbackHandler. This method is deprecated in Java8 and will be removed in Java9 so there is no reason to keep it. Security is a touchy issue, we provided this code to support those who wished to include a name/password handler but this version is a security risk. Those who wish to provide a handler for user input should have their own a procedure in place.

Server:

In release 2.8 we provided the TymeacReturn class for standard checking of the returned Object[] from sync and async calls. Using a return Object[] goes back to Java1.1, so it is time to replace that. All three server access methods (syncRequest(), asyncRequest(), shutRequest()) now return the TymeacReturn object. Static methods to convert from an Object[] to the TymeacReturn are deprecated and will be removed in the next version. Using the new return method is much easier than the old way and it provides additional functionality.

Changed most statistics fields to long from int. Added "commented" code to support the LongAdder class if it is needed.

Client:

Adding more functionality to the client access (GUI's and non GUI access) meant changing the TymeacInterface and all the RMI classes that use it. Since we changed the TymeacInterface in the server changes, above, we refactored the entire client access. In for a penny, in for a pound. This has no affect on the GUI classes. You will not need to change anything. For those who call the server for client access (thread information, queue information, etc.) then you will need to change your code. Each access documentation provides the information for accessing outside the GUI.

We eliminated all methods for client access, (idStatus1Request, newCopyRequst). Replacing those with a single call:
    public
ClientInOut clientRequest(ClientInOut in)

Both ClientInOut and clientRequest() are documented for those that are interested. This change means we can add anything in the future without changing the existing structure

Fixed a bug in BIF Filter for Objects.

Various documentation enhancements and cosmetic improvements. 

Divide-and-Conquer Standard Edition, Release 4.8.1

Added the Enable Specific Button to the Queue Threads display/alter to keep this package compatible with the SE version.

In September we'll support Java8 with the next series of  numbers (5.x.) This should be the last Java7 release.

The need to keep adding/changing the TymeacInterface will result in a new general-purpose clientRequest().

July 2014

Standard Edition, Release 6.5

Added Stalled Thread detail to the Queue Threads display/alter.

Altered the timeout properties. There was a mistake, 2 should have been 1/2 etc. The various timeouts work better now.

Altered count/statistics fields from integer to long integer. Some of these were not necessary but we're getting ready for the LongAdder class in Java8. We also removed many Atomic and volatile designations. See the development document for details. The speed improvements are considerable.

There has been a back-and-forth for years about whether the internal server threads should be daemon or not. It is final: they are now. This change has no appreciable effect on processing. It means that you should be able to eliminate the System.exit(0); from the main() for the internal server. Once the main() exits, the only Tymeac threads alive are daemon and shutdown should proceed to end-of-JVM.

We are discontinuing support for Hsql effective next major release. Derby is packaged with Java and both these are not necessary for the demonstration system.

Cleaned up some label positions on GUI's.

In September we'll support Java8. There is just so much good in that release that waiting six months seems long enough.

Divide-and-Conquer Standard Edition, Release 4.8

Added Stalled Thread detail to the Queue Threads display/alter.

In September we'll support Java8. There is just so much good in that release that waiting six months seems long enough.

Divide-and-Conquer Standard Edition, Release 4.7

There has been a back-and-forth for years about whether the internal server threads should be daemon or not. It is final: they are now. This change has no appreciable effect on processing. It means that you should be able to eliminate the System.exit(0); from the main(). Once the main() exits, the only Tymeac threads alive are daemon and shutdown should proceed to end-of-JVM.

Added additional demonstration classes to the product in the nested package.

We discontinued support for Hsql. Derby is packaged with Java and both these are not necessary for the demonstration system.

Various documentation enhancements and cosmetic improvements. 

May 2014

Divide-and-Conquer Standard Edition, Release 4.6.1

Added additional demonstration classes to the product. These additional classes (with a new package) demonstrate nested parallel processing.

We are discontinuing support for Hsql effective next major release (this is not a major release.) Derby is packaged with Java and both these are not necessary for the demonstration system.

Various documentation enhancements and cosmetic improvements.

April 2014

Divide-and-Conquer Standard Edition, Release 4.6

Added actual class to TymeacParm. Users may pass the name of the class to execute in the server, now they may pass the Class<?> object instead of the String name. The passed class object cannot be an inner class of the calling module since Tymeac will not be able to instantiate that inner class.

We are discontinuing support for Hsql effective next release. Derby is packaged with Java and both these are not necessary for the demonstration system.

Various documentation enhancements.

February 2014

Divide-and-Conquer Standard Edition, Release 4.5.1

In release 2.9.1 we redesigned the Built in Function, BIFSort, for greater efficiency in larger processor environments. The replaced sort was efficient in other environments and so we restored it as an alternative, BIFSort2, in this release. Naturally the demonstration classes were restored as well.

Various documentation enhancements.

January 2014

Divide-and-Conquer Standard Edition, Release 4.5

Added the Built In Function: Product for multiplying numerical arrays (like summation but multiply.)

Added support for BigInteger and BigDecimal for Summation, Product and Array Generation. Further support of these types depends on user feedback.

January 2014

Divide-and-Conquer Standard Edition, Release 4.4

Added the Built In Function: Invoke for invoking classes in parallel on the fly as well as pre-built.

December 2013

Divide-and-Conquer Standard Edition, Release 4.3

Added the Built In Function: Array Generate for generating arrays (vector and matrix.)

Fixed a divide by zero bug in Matrix processing for computing a threshold.

December 2013

Divide-and-Conquer Standard Edition, Release 4.2

Added the Built In Function: Evaluate (same as parallelTry in some systems. [Java doesn't like the word "try" used by applications])

October 2013

Divide-and-Conquer Standard Edition, Release 4.1

Added limit and encounter-order to Built in Functions: Map Reduce and Filter. This required a complete rewrite of both modules with alteration of the BIFArraysInput Class and additional Interfaces. Having a limit for both these functions was absolutely necessary so the alteration was necessary. As long as we were adding limit, adding preserve encounter-order (makes the parallel processing appear to complete in the same order as a sequential process), seemed worthwhile. The MapReduce functionality was also in error, this was corrected. For those already using these functions, it means a rewrite. We apologize for the inconvenience.

Updated the pseudorandom number generator for speed.

Divide-and-Conquer Standard Edition, Release 4.0

Added the Built In Function: Random ( parallel random number generator)

Changed the usage of java.util.Random in the main WorkStructure to a homegrown method where possible for performance. Where to start looking for scheduling/fetching does not require an exactly random number, just something better than nothing.

Now requires Java7

September 2013

Divide-and-Conquer Standard Edition, Release 3.2.1

Added scalar multiplication to the matrix Built in Function. This was a debate from the beginning -- In or Out? the outs won the first round but were overturned on appeal. This addition does not affect any prior programs.

Java 7 offers advances over Java 6 especially for performance so this is the last release that can run on Java 6.

Divide-and-Conquer Standard Edition, Release 3.2

Added the Built In Function for Vectors.

August 2013

Divide-and-Conquer Standard Edition, Release 3.1

Added the Built In Function: Search ( for unordered arrays)

Fixed a naming error: BIFMatrixArrayInput should have been, and is now, BIFMatrixInput  We apologize for the inconvenience this may cause.

Various documentation enhancements.

Divide-and-Conquer Standard Edition, Release 3.0

Added the Built In Function for Matrix functions.

Fixed a bug in calculating the duration the server ran.

Various documentation enhancements.

July 2013

Divide-and-Conquer Standard Edition, Release 2.9.1

Redesigned the Built in Function, sort, for greater efficiency in larger processor environments.

Improved memory usage (earlier freeing of references for garbage collection.)

Various documentation enhancements.

Divide-and-Conquer Standard Edition, Release 2.9

Added the Built In Function: Scan.

Various documentation enhancements.

June 2013

Android Edition, Release 1.3

Added return code and asynchronous call information (session and request id) to the TymeacReturn class. This simplifies completion checking in clients.

N.B. The TyService.jar file was replaced in the asset directory in all Activity projects.

Included in all projects is the build.gradle file for import in Android Studio.

Various documentation enhancements.

Standard Edition, Release 6.4

Added the TymeacReturn class for standard checking of the returned Object[] from sync and async calls. Updated all the demonstration classes to use this new class where applicable.

Various documentation enhancements.

Divide-and-Conquer Standard Edition, Release 2.8

Added the TymeacReturn class for standard checking of the returned Object[] from sync and async calls. Updated all the demonstration classes to use this new class where applicable.

Various documentation enhancements.

April 2013

Android Edition, Release 1.2.2

Added an Enabled Specific button to the Queue Threads Display/Alter.

Minor modifications to base Classes to support the above.

Standard Edition, Release 6.3.3

Added an Enabled Specific button to the Queue Threads Display/Alter.

Minor modifications to base Classes to support the above.

March 2013

Android Edition, Release 1.2.1

Moved timing values out of several classes into the TyBase Class for consistency.

Various documentation enhancements.

Standard Edition, Release 6.3.2

Moved timing values out of several classes into the TyBase Class for consistency.

Various documentation enhancements.

Still no Java7 only code to keep the Java6 crew happy.

Divide-and-Conquer Standard Edition, Release 2.7.1

Fixed a statistics gathering bug for user classes.

Moved timing values out of several classes into the TyBase Class for consistency.

Various documentation enhancements.

Still no Java7 only code to keep the Java6 crew happy.

November 2012

Divide-and-Conquer Standard Edition, Release 2.7

Added cancelable methods to the TyArrays class so users can easily cancel synchronous calls.

Fixed a spelling error in TyArraysReturn class, from getDta() (deprecated) to getData().

Added getLoad() method to Task. It may help determining a sequential threshold for splitting.

Various documentation enhancements.

October 2012

Divide-and-Conquer Standard Edition, Release 2.6.1

Modified the index structure for very large/huge number of threads. The index threads scan the work threads/queues and adjust the internal index objects used for scheduling and for work threads finding work outside their own queues. The modification is to better handle the slow periods so that the index threads can slow down and sleep for a bit when there is no work.

Added segment number to thread statistics item (it was missing.)

Improved the Built in Functions callback procedure.

Added demonstration examples for Speculative Computing.

Added additional documentation.

Classes are now compiled with Java7, but contain no Java7 only code.

October 2012

Divide-and-Conquer Standard Edition, Release 2.6

Fixed a bug in Map/Reduce Built in Function that was applying a map function to the entire array instead of a subset in each parallel "map."

Added new Built in Function Filter

Added new client side feature TyArrays for accessing the Built in Functions more easily. TyArrays contains static methods for all the Functions both using a synchronous call and an asynchronous call with/without callback. There is a separate package for testing each method with each array type.

Parallel sorting, etc. can now be done in a single line:

// call sort function using sync tymeac service and object for array functions
TyArraysReturn back = TyArrays.sort(
tymeac, new BIFArrayInput(array, 0));

// call sort function using async tymeac service with callback and object for array functions
TyArrays.sortAsync(
tymeac, new BIFArrayInput(array, callback, 0));

Other common Functions in the next release are by user request

September 2012

Android Edition, Release 1.2

Minor restructuring of Queue initialization and start up procedure.

Cosmetic clean up of compiler warning messages.

That's all folks. It's running very well.

September 2012

Standard Edition, Release 6.3.1

Minor restructuring of Queue initialization and start up procedure.

Cosmetic clean up of compiler warning  messages.

That's all folks. It's running very well.

September 2012

Divide-and-Conquer Standard Edition, Release 2.5

Added common Built in Functions for arrays:

Sorting
Summation
Map/Reduce

Other common Functions in the next release are by user request

June 2012

Divide-and-Conquer Standard Edition, Release 2.4

Moved the Work Queues bounds limit from the command line (-bounds) to the TyUserVariables Class for stand-a-lone mode and the Configuration Data Class TyCfg for DBMS mode. Uses a default of 100k now.

Specifying a -bounds argument now results in a warning message.

Requires altering the Tymeac.xml configuration file, if used. The easiest way is to add a line in the file after the activation minutes as such:

 DeActivationInterval=""
 Bounds="100000"

Or use the configuration file maintenance GUI TyCfg

When using Preferences, be sure to add a new value for bounds.

Added segmentation as a new thread organization technique.

Fixed a bug in the Level 1 index thread when calculating an array length for empty queues. Fixed a bug in scheduling when a failure to schedule.

March 2012

Divide-and-Conquer Standard Edition, Release 2.3.1

 Deprecated Task.getSeq() This was used internally only during a specific back out after a scheduling failure. Changed the back out code to use hashCode().

Added an example of dynamically decomposing fork/join. Tymeac is a scatter-gather framework and does not use a join() method. The example simulates using a join() as in:

a.fork();
b.fork();
join(a, b);

February 2012

Divide-and-Conquer Standard Edition, Release 2.3

Minor internal changes. WorkStructure Class:

  • Removed the empty_queue field.It wasn't performing as well as expected. Saves a CAS now.
  • Changed methods, for finding the next Queue or index to search, from a CAS to a random.
  • Consolidated low-number-of-threads scheduling for thread waiting/detached.

Startup.doRest() -- uncommented the "start all threads" when < 64 threads. The server starts all the work threads during initialization rather than when first referenced (lazy.)

Other small changes to improve speed and documentation.

September 2011

Standard Edition, Release 6.3

Added the Alter Server Options GUI. This gives users the ability to alter the shut down option, monitor interval and inactivation minutes at runtime.

You must reinstall the complete package since the TymeacInterface class changed. This also means re-compiling those classes that depend on that interface (the serial version id will be different.)

Micro Edition, Release 2.1

Added the Alter Server Options. This gives users the ability to alter the shut down option, monitor interval

Divide-and-Conquer Standard Edition, Release 2.2

Added the Alter Server Options GUI. This gives users the ability to alter the shut down option, monitor interval and inactivation minutes at runtime.

Added return integer to method Task.fork(). This has no effect on existing code. When scheduling fails on a fork method, the request is a failure and the user will get notification of why. Being able to check success after a call may mean being able to abort the request early.

Divide-and-Conquer Standard Edition, Release 2.1

Added the ability to decompose (fork()) in the complete() method. This make usage easier.

For uses such as sorting. After sorting in the compute() method, the application is left with many arrays of sorted items in the complete() method. Merging those arrays can now be done in two ways:

  1. Simply fork() groups of those arrays in the complete() method until you arrive with a single array.
  2. Recursively call the Tymeac Server with Merge Functions until you arrive with a single array.

Android Edition, Release 1.1

Added the Alter Server Options client. This gives users the ability to alter the shut down option and monitor interval at runtime.

You must reinstall the complete package with all the projects since the TymeacInterface class changed. This also means the TyService.jar file changed and you must copy it to any projects you created after the initial install. All the Activities included in this release have the updated TyService.jar file.

August 2011

Android Edition, Release 1.1

Initial release.

April 2011

Standard Edition, Release 6.2.3

 Altered the bounds processing for Wait Lists. Changed using a size() on the ConcurrentLinkedQueue to using a separate AtomicInteger.

The size() always results in a traversal of the queue. Keeping a separate integer is faster although it requires bookkeeping.

Updated the documentation to include the new TymeacDSE project. And naturally removed examples of Divide-and-Conquer processing replaced by the new project.

March 2011

 Divide-and-Conquer Standard Edition, Release 2.0

Added indexing for very large and humungous numbers of CPU/cores. This was a major undertaking, hence the it warrants the 2.0 designation.

Level 1 indexes sit atop the individual work threads and queues. These make scheduling Tasks and fetching Task by work threads faster. Level 1 indexes are for systems with hundreds of CPU/cores since each index is serviced by a dedicated index thread.

Level 2 indexes sit atop the Level 1 indexes. These make scheduling Tasks and fetching Task by work threads faster. Level 2 indexes are for systems with thousands of CPU/cores since each index is serviced by a dedicated index thread.

November 2010

New Divide-and-Conquer Standard Edition, Release 1.0

Initial release

June 2010

Standard Edition, Release 6.2.2

Two minor bugs fixed:

  1. 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.
  2. 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

SourceForge Logo

Project name for the micro edition is TymeacME

SourceForge Logo

January 2002

Minor upgrade. The maintenance of the User Classes was awkward. Customers had to maintain a Java source file by adding Queues, Functions and startup Variables in the constructors.

We now have Swing GUIs, similar to the DBMS Queue, Function and Variables tables.

November 2001 Announcement

The micro edition, version 1.0 is available for download. This is an embedded server that runs on the "K" Virtual Machine. The environment is J2ME, CLDC.

This version looks like the standard, embedded server version but without GUI support. There is no separate Demo version of this edition. If you would like to see how it works and you are not a current customer, then download the standard version Demo and run it on a workstation.

October 2001 Release 3.0.3

Release 3.0.3 is now available. This is an enhancement release. The upgrade does not affect any currently running environments.

Enhancements:

This enhancement is to support Tymeac as a backend, embedded server. That is -- as a non-RMI Server. You may simply include the Tymeac queuing and threading structure within any application.

September 2001

Minor upgrade for efficiency. A customer's suggestion improved speed. We include that suggestion here. The savings in throughput is most noticeable on heavily used systems.

August 2001

Minor upgrade to support Custom Socket Factories.

The reason for this upgrade is in anticipation of SDK1.4 and its support of Secure Socket Layers.  The upgrade does not affect any currently running environments.

July 2001 Release 3.0.2

Release 3.0.2 is now available.  This is an enhancement release.

Enhancements:

For the Java2 environment ONLY.

The request for alternatives to the CLASSPATH for user-written classes has been answered. This is by adding a URLClassLoader for loading classes when necessary.

June 2001 Release 3.0.1

Release 3.0.1 is now available.  This is an enhancement release.

Enhancements:

The request for "we'd rather do it ourselves" for the statistics and log repositories has been answered.

Previously, if you used a DBMS for storing the Queue and Function data, then the only option for the statistics and log was also a DBMS.  If you used the user classes for storing the Queue and Function data, then the only option for the statistics and log was a file.

With this release, if you used a DBMS for storing the Queue and Function data, then the you may use a DBMS, File, or do it yourself with a user exit class, for the statistics and log repositories.  If you used the user classes for storing the Queue and Function data, then the you may use a File, or do it yourself with a user exit class, for the statistics and log repositories.

Bug fixes:

The bug in the DBMS Statistics and Log writing thread has been fixed.

The bug in the Configuration file writing thread has been fixed.

Structure changes:

The Configuration File has been re-structured. The [EXITS] Section was missing on the previous release. Additionally, the [ALTERNATES] Section with several sub-sections were added.  This means that you must alter this file for the new structure before running Tymeac.

The UserVariables Class has been re-structured to add two Strings: The Statistics Alternatives Class and the Log Alternatives Class. This means that you must alter this class for the new structure before running Tymeac.

Withdrawal of Support

As of Release 3.0.1, we no longer support the AWT version of the Configuration File Maintenance Class. The new information no longer fits on a single window.

When Sun releases version 1.4 of the SDK, we will no longer support the AWT versions, (i.e. JDK1.1), of the frame classes, (com.tymeac.client.frame and com.tymeac.demo.frame). Support will only be for the Java2 JFrame classes.

May 2001 Release 3.0

Release 3.0 is now available.  This is an enhancement and re-structuring release.

Re-Packaging:

The product was completely re-packaged. The following are the six packages:

  • com.tymeac.base
  • com.tymeac.client
  • com.tymeac.client.frame
  • com.tymeac.client.jframe
  • com.tymeac.common
  • com.tymeac.serveruser

Additionally, there are five packages for the demonstration system:

  • com.tymeac.demo
  • com.tymeac.demo.frame
  • com.tymeac.demo.jframe
  • com.tymeac.demo.jini.base
  • com.tymeac.demo.jini.client

IIOP support

Support for the CORBA IIOP requires SDK1.3, minimally.

Start Up -- You may now use the JNDI Registry for IIOP.

Scripts -- One additional directory was added for the IIOP support: \Scripts\IIOP.

Throughput -- Since there is significant overhead in the CORBA Marshalling algorithms, performance is lower than when using a pure Java RMI.

Know problems -- There is a bug in the CORBA Marshalling algorithms. The Sun bug report number is 4,318,587.

Enhancements:

An additional field, milliseconds, is now part of the Tymeac Parameter to the Tymeac Server. In this way you may specify the time to wait for synchronous requests in full seconds, full seconds and milliseconds or just milliseconds (by setting the seconds to zero.)

Bug fixes:

The bug in starting all queue threads at Tymeac start up is fixed.

The periodic failure of Tymeac stage two shut down to end the JVM was fixed by making the "structure change", below.

Structure changes:

The shut down thread now starts at the end of stage two shut down.

Previously, the shut down thread started a stage one and was awakened at the end of stage two.

News items before 3.0 have been deleted.

 

Tymeac is a trademark of Cooperative Software Systems
Java, 100% Pure Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U. S. and other countries.

   

1998 - 2016 Cooperative Software Systems  All rights reserved.