Представьте себе следующую настроитьSiebel 8 состояние гонки
- Набор п независимых задач в списке задач должно быть завершено в Siebel
- Задачи , б и т.д. могут быть разработаны на отдельных резьбах
- Когда нить начинает рабочий поток регистрирует состояния всех n Задачи
- нити продолжают до завершения, и в конечном итоге отправки сообщения JMS в очередь
Мы имеем следующую задачу:
- тему , который работает на задаче завершает свою работу и знаки задача в закрыт
- в то же время нити , который работает на задаче б также завершает свою работу и помечает задача б в закрыто
- Два JMS сообщения помещаются в очередь и посланные на другой серверной системы
- Вот проблема: первое сообщение JMS говорит о том, что состояние из списка задач является
a=closed b=open
и говорит, что второе сообщение JMSa=open b=closed
- задача может законно быть повторно открыта пользователем Siebel (скажем, для целей проверки мошенничества)
- задний конец система получает два JMS сообщения в любом так как промежуточное ПО не делает t гарантийный заказ
- Система заднего конца получает одно сообщение JMS, в котором сообщается
closed,open
, а другое вскоре после этого сообщаетopen,closed
. Это может произойти в любом порядке, но результат тот же. Это появляется к задней торцевой системы, что весь список задач не была закрыта в то время как в Siebel все задачи ( и б в данном примере) были закрыты
мне сказали, что есть никак не в Siebel, что фиксация в базе данных, которая изменяет состояние задач, выполняемых в потоке рабочего потока, может быть только происходит в самом конце рабочего потока. Это имеет решающее значение после того, как сообщения JMS были отправлены с обманчивым состоянием. По-видимому, это связано с необходимостью отката рабочего процесса при ошибке.
Вопросы: Является ли приведенное выше утверждение истинным, что эта проблема никогда не может быть решена в Сибеле? Если нет, тогда кто-нибудь скажет мне, можно ли исправить это в Siebel, чтобы сообщение JMS было отправлено с правильным состоянием задач. Я наивно думаю, что это решается с помощью семафоров, но, честно говоря, я был испорчен в том смысле, что мне никогда не приходилось иметь дело с семафорами, и я точно не знаю, существует ли эта концепция даже в Сибеле. Любая помощь?