receiving forecast notification results in failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
TAC Energy |
Fix Released
|
High
|
Daniel Schnurr | ||
0.6 |
Fix Released
|
High
|
Daniel Schnurr | ||
tacenergydemo |
Fix Released
|
High
|
Daniel Schnurr |
Bug Description
SUMMARY
I'm trying to create a competition and get the demo agent to receive notifications... this is how:
STEPS TO REPRODUCE
1. On a clean installation of tacenergy-0.6, I created a new competition with "number of participants" set to 1.
2. With a clean build of tacenergydemo-0.5, I click on "Send Ready Notification to server." and can confirm that the server recognizes the tacenergy1 user as ready.
3. A few seconds later, the demo agent fails with "2010-05-03 22:41:07,799 [jmsForecastCon
Field error in object 'edu.kit.
NOTES
reproducible.
Related branches
summary: |
- receiving forecast notification results in failiure + receiving forecast notification results in failure |
Changed in tacenergy: | |
status: | New → Confirmed |
Changed in tacenergydemo: | |
status: | New → Confirmed |
importance: | Undecided → High |
Changed in tacenergydemo: | |
status: | Confirmed → Fix Committed |
Changed in tacenergydemo: | |
milestone: | none → v0.6 |
assignee: | nobody → Daniel Schnurr (danielschnurr) |
Changed in tacenergydemo: | |
status: | Fix Committed → Fix Released |
Hi David!
Yes. Confirmed. The problem is that currently we use a public topic to send out product notifications to all competition participants and private queues for each participant to send out individual demand forecasts. In the above case the forecast message is processed by the client before the the topic message announcing the product.
When the agent then tries to process the forecast message and to create a forecast db object there will be no product instance in the db due to the product notification message coming in late. This results in a failure due to referential integrity in the db being violated.
The solution is likely to completely abandon public topics and to switch communication between client and servers to one queue for each direction and agent. Like this message order can be guaranteed. For Activemq we need to look into the concept of composite destinations to deliver messages to several different queues in parallel.