I must confess I'm having a little trouble following the detailed
logic, although in general I understand what you're trying to do and
it seems to be fine from Jess's perspective. What bothers me about
this code is the numerous timed waits (i.e., calls to "wait(3000)")
which aren't in a loop and aren't followed by a test for any
condition. The notifies and waits are flying around, but there seems
to be no code checking that anything's actually being waited for. I'm
concerned that there's an assumption hiding in there somewhere that a
wait() returned because of a notify, but occasionally it does not, and
there's no check for that.
In any case, Jess 7.1 is extremely close to going final, so what I'd
like you to do is check whether you still have the problem with the
latest Jess 7.1 beta. I ran the program myself, but I can't tell from
your writeup how to decide whether the problem is showing itself or
not. Do please let me know what you find out.
On Jun 18, 2008, at 3:01 AM, Barry Flower wrote:
All,
I am experiencing a very subtle fault in Jess.Essentially we
are passing data to Jess via a shadow fact, allowing Jess to process
it and then informing the shadow fact that we are ready to process
the next piece of datasynchronously. This works for hundreds of
thousands of idential iterations and then inexplicably Jess simple
does not recognise that a slot has been updated, and as a result a
rule does not fire when it should. It looks like a subtle race
condition occuring within Jess as we have reduced our Java code for
the shawdow fact to a bare minimum.
I would appreciate any insights regarding the method we are using to
synchronously process real-time data and whether the fault is in our
approach or that in fact we have exposed a race condition within Jess.
Cheers
Barry
I have included complete .clp and .java files to reproduce the
problem and this contains a readme.txt file which explains in detail
the workings of the programme, the way in which the fault manifests
and snippets from log files that exhibit the fault.
Barry Flower | Global Head eFM Strategy & Solutions | WIB Technology
Westpac Institutional Bank | Level 2, Westpac Place, 275 Kent
Street, Sydney, NSW 2000
T +61 2 8254 6308 | M +61 439 467 971 | E [EMAIL PROTECTED]
<ATT00002.jpg>
Please consider our environment before printing this email.
WARNING - This email and any attachments may be confidential. If
received in error, please delete and inform us by return email.
Because emails and attachments may be interfered with, may contain
computer viruses or other defects and may not be successfully
replicated on other systems, you must be cautious. Westpac cannot
guarantee that what you receive is what we sent. If you have any
doubts about the authenticity of an email by Westpac, please contact
us immediately.
It is also important to check for viruses and defects before opening
or using attachments. Westpac's liability is limited to resupplying
any affected attachments.
This email and its attachments are not intended to constitute any
form of financial advice or recommendation of, or an offer to buy or
offer to sell, any security or other financial product. We recommend
that you seek your own independent legal or financial advice before
proceeding with any investment decision.
Westpac Institutional Bank is a division of Westpac Banking
Corporation, a company registered in New South Wales in Australia
under the Corporations Act 2001 (Cth). Westpac is authorised and
regulated in the United Kingdom by the Financial Services Authority
and is registered at Cardiff in the United Kingdom as Branch No. BR
106. Westpac operates in the United States of America as a federally
chartered branch, regulated by the Office of the Comptroller of the
Currency.
Westpac Banking Corporation ABN 33 007 457 141.
<ACE_TestBed.zip>
---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences, Sandia National Laboratories
PO Box 969, MS 9012, Livermore, CA 94550
http://www.jessrules.com
--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------