RXF Timer possible problem

The current version of the RXF has a potential timer problem.

On systems that are running on a high load it can occur that longer timeouts are processed too late.

Cause:
The timerouts are stored in a sorted list, first expiring timeout is the first list element. When a timer tick arrives only the first elements timeout value will be decreased.
On full load systems, the timeouts are not always processed immediately, so the system tick count could be larger then 1. When that happens, and the next expiring timeout has a tick value less then the system tick value, ticks would get lost.
This effect is hardly noticeable on systems with only short timeouts especially since the system is under full load anyway.
However when longer timeouts are used they will expire much later due to the stacking of this effect.. (50% longer)
The new version of the framework has corrected this error.

Rhapsody 8.1.5 Support

IBM Rational has releases Rhapsody 8.1.5, which now supports roundtripping and reverse engineering also in the 64 bit version. Also it officially added support for Windows 10. For details see IBM Rational’s release information.

Our current RXF framework releases are compatible with Rhapsody 8.1.5 with one important exception:

Earlier Rhapsody versions came with the Java run-time environment (JRE) bundled and available in “<Rhapsody program path>\jre”. Rhapsody 8.1.5 bundles a complete Java development kit (JDK), available under “<Rhapsody program path>\jdk” and containing the JRE in it’s “jre” sub-folder.

Our RXF tools like the WSTDeployer use the Java version bundled with Rhapsody and expect it to be present under “<Rhapsody program path>\jre”. To get these existing RXF releases running with Rhapsody 8.1.5, you may simply create a symlink from “<Rhapsody program path>\jre” to “<Rhapsody program path>\jdk\jre”. You need proper access rights to perform this action in a program folder.

Example how to do this on the command line with proper access rights:

mklink /d “C:\Program Files\IBM\Rational\Rhapsody\8.1.5\jre” “C:\Program Files\IBM\Rational\Rhapsody\8.1.5\jdk\jre”

You may need to adapt the Rhapsody program path to your environment.

Future RXF releases will be compatible with Rhapsody 8.1.5 natively and will be backwards compatible with earlier Rhapsody versions by automatically creating a symlink during setup.

If you experience problems with the RXF setup, please contact us: support@willert.de .

Fixed Case 4525: Possible enterCriticalRegion without exitCriticalRegion if a WST_MEM_Pool runs empty.

Affects:
All C-language RXF releases using an RTOS.

Problem description:
If a MEM_Pool is out of memory we enter a critical region without exiting it. With an RTOS this causes taking a mutex which will not be freed again.

In the non-preemptive OO-RTX there is unusally no need to protect that region of WST_MEM_Pool_getMemory(). Future releases have support for a define WST_MEM_POOL_CRITICAL_REGIONS and will already contain corrected code for this issue.

Continue reading