Drools 6 включает в себя вывод трассировки, который может помочь понять, что происходит в вашей системе, как часто выполняются события и как много данных.
Это также может помочь понять, что Drools 6 теперь является алгоритмом, основанным на целях, с использованием механизма связывания для ссылки в правилах оценки. Подробнее об этом здесь:
http://www.javacodegeeks.com/2013/11/rip-rete-time-to-get-phreaky.html
Первое, что нужно сделать, это перевести регистратор slf4j в режим трассировки:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
< appender name = "consoleAppender" class = "ch.qos.logback.core.ConsoleAppender" > < encoder > <!-- %l lowers performance --> <!--<pattern>%d [%t] %-5p %l%n %m%n</pattern>--> < pattern >%d [%t] %-5p %m%n</ pattern > </ encoder > </ appender > < logger name = "org.drools" level = "trace" /> < root level = "info" > <!-- TODO We probably want to set default level to warn instead --> < appender-ref ref = "consoleAppender" /> </ root > </ configuration > |
Давайте рассмотрим пример покупки. Здесь вы можете найти файлы Java и Drl:
- https://github.com/droolsjbpm/drools/blob/master/drools-examples/src/main/resources/org/drools/examples/shopping/Shopping.drl
- https://github.com/droolsjbpm/drools/blob/master/drools-examples/src/main/java/org/drools/examples/shopping/ShoppingExample.java
Выполнение примера даст вывод очень подробный и длинный журнал выполнения. Первоначально вы увидите, что объекты вставляются, что вызывает связывание. Связывание узлов и правил объясняется в ссылке алгоритма Drools 6. В итоге 1..n узлы связываются в сегменте, когда объект вставлен.
1
2
|
2014 - 10 - 02 02 : 35 : 09 , 009 [main] TRACE Insert [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] 2014 - 10 - 02 02 : 35 : 09 , 020 [main] TRACE LinkNode notify= false nmask= 1 smask= 1 spos= 0 rules= |
Затем 1..n сегментирует ссылку в правиле. Когда правило связано в его графике в повестке дня для оценки.
1
2
3
|
2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE LinkRule name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE Queue RuleAgendaItem [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE Queue Added 1 [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] |
Когда оно в конечном итоге оценивает правило, оно будет отступать при посещении каждого узла и оценивать его от корня до кончика. Каждый узел будет пытаться сообщить вам, сколько данных вставляется, обновляется или удаляется в этот момент.
1
2
3
4
5
6
|
2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE Rule[name=Apply 10 % discount if total purchases is over 100 ] segments= 2 TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE 1 [ AccumulateNode( 12 ) ] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE 1 [ AccumulateNode( 12 ) ] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE rightTuples TupleSets[insertSize= 2 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 056 [main] TRACE 2 [RuleTerminalNode( 13 ): rule=Apply 10 % discount if total purchases is over 100 ] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] |
Вы можете использовать эту информацию, чтобы увидеть, как часто правила оценивают, сколько ссылок и разрыва связи происходит, сколько данных распространяется и, что более важно, сколько потрачено впустую работы. Вот полный журнал:
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
2014 - 10 - 02 02 : 35 : 08 , 889 [main] DEBUG Starting Engine in PHREAK mode 2014 - 10 - 02 02 : 35 : 08 , 927 [main] TRACE Adding Rule Purchase notification 2014 - 10 - 02 02 : 35 : 08 , 929 [main] TRACE Adding Rule Discount removed notification 2014 - 10 - 02 02 : 35 : 08 , 931 [main] TRACE Adding Rule Discount awarded notification 2014 - 10 - 02 02 : 35 : 08 , 933 [main] TRACE Adding Rule Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 009 [main] TRACE Insert [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] 2014 - 10 - 02 02 : 35 : 09 , 020 [main] TRACE LinkNode notify= false nmask= 1 smask= 1 spos= 0 rules= 2014 - 10 - 02 02 : 35 : 09 , 020 [main] TRACE LinkSegment smask= 2 rmask= 2 name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 025 [main] TRACE LinkSegment smask= 2 rmask= 2 name=Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 028 [main] TRACE LinkNode notify= true nmask= 1 smask= 1 spos= 0 rules=[RuleMem Purchase notification], [RuleMem Discount removed notification], [RuleMem Discount awarded notification], [RuleMem Apply 10 % discount if total purchases is over 100 ] 2014 - 10 - 02 02 : 35 : 09 , 028 [main] TRACE LinkSegment smask= 1 rmask= 1 name=Purchase notification 2014 - 10 - 02 02 : 35 : 09 , 028 [main] TRACE LinkSegment smask= 1 rmask= 3 name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE LinkRule name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE Queue RuleAgendaItem [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE Queue Added 1 [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE LinkSegment smask= 1 rmask= 1 name=Discount awarded notification 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE LinkSegment smask= 1 rmask= 3 name=Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE LinkRule name=Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE Queue RuleAgendaItem [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE Queue Added 2 [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 043 [main] TRACE Added Apply 10 % discount if total purchases is over 100 to eager evaluation list. 2014 - 10 - 02 02 : 35 : 09 , 044 [main] TRACE Insert [fact 0 : 2 : 14633842 : 14633842 : 2 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Product @df4b72 ] 2014 - 10 - 02 02 : 35 : 09 , 044 [main] TRACE Insert [fact 0 : 3 : 732189840 : 732189840 : 3 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Product @2ba45490 ] 2014 - 10 - 02 02 : 35 : 09 , 044 [main] TRACE Insert [fact 0 : 4 : 939475028 : 939475028 : 4 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Purchase @37ff4054 ] 2014 - 10 - 02 02 : 35 : 09 , 045 [main] TRACE BetaNode insert= 1 stagedInsertWasEmpty= true 2014 - 10 - 02 02 : 35 : 09 , 045 [main] TRACE LinkNode notify= true nmask= 1 smask= 1 spos= 1 rules=[RuleMem Purchase notification] 2014 - 10 - 02 02 : 35 : 09 , 045 [main] TRACE LinkSegment smask= 2 rmask= 3 name=Purchase notification 2014 - 10 - 02 02 : 35 : 09 , 045 [main] TRACE LinkRule name=Purchase notification 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE Queue RuleAgendaItem [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE Queue Added 1 [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE BetaNode insert= 1 stagedInsertWasEmpty= true 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE LinkNode notify= true nmask= 1 smask= 1 spos= 1 rules=[RuleMem Apply 10 % discount if total purchases is over 100 ] 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE LinkSegment smask= 2 rmask= 3 name=Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE LinkRule name=Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE Added Apply 10 % discount if total purchases is over 100 to eager evaluation list. 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE Insert [fact 0 : 5 : 8996952 : 8996952 : 5 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Purchase @894858 ] 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE BetaNode insert= 2 stagedInsertWasEmpty= false 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE BetaNode insert= 2 stagedInsertWasEmpty= false 2014 - 10 - 02 02 : 35 : 09 , 046 [main] TRACE Rule[name=Apply 10 % discount if total purchases is over 100 ] segments= 2 TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE 1 [ AccumulateNode( 12 ) ] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE 1 [ AccumulateNode( 12 ) ] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 047 [main] TRACE rightTuples TupleSets[insertSize= 2 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 056 [main] TRACE 2 [RuleTerminalNode( 13 ): rule=Apply 10 % discount if total purchases is over 100 ] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE 2 [RuleTerminalNode( 13 ): rule=Apply 10 % discount if total purchases is over 100 ] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE Rule[name=Apply 10 % discount if total purchases is over 100 ] segments= 2 TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE 3 [ AccumulateNode( 12 ) ] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE Rule[name=Purchase notification] segments= 2 TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE 4 [JoinNode( 5 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Purchase]] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 057 [main] TRACE 4 [JoinNode( 5 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Purchase]] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 058 [main] TRACE rightTuples TupleSets[insertSize= 2 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 058 [main] TRACE 5 [RuleTerminalNode( 6 ): rule=Purchase notification] TupleSets[insertSize= 2 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 058 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 058 [main] TRACE 5 [RuleTerminalNode( 6 ): rule=Purchase notification] TupleSets[insertSize= 2 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 058 [main] TRACE Fire "Purchase notification" [[ Purchase notification active= false ] [ [fact 0 : 4 : 939475028 : 939475028 : 4 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Purchase @37ff4054 ] [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] ] ] Customer mark just purchased shoes 2014 - 10 - 02 02 : 35 : 09 , 060 [main] TRACE Fire "Purchase notification" [[ Purchase notification active= false ] [ [fact 0 : 5 : 8996952 : 8996952 : 5 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Purchase @894858 ] [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] ] ] Customer mark just purchased hat 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE Removing RuleAgendaItem [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE Queue Removed 1 [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE Rule[name=Discount removed notification] segments= 2 TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE 6 [NotNode( 8 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE 6 [NotNode( 8 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE rightTuples TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE 7 [RuleTerminalNode( 9 ): rule=Discount removed notification] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE 7 [RuleTerminalNode( 9 ): rule=Discount removed notification] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 061 [main] TRACE Fire "Discount removed notification" [[ Discount removed notification active= false ] [ null [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] ] ] Customer mark now has a discount of 0 2014 - 10 - 02 02 : 35 : 09 , 063 [main] TRACE Removing RuleAgendaItem [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 063 [main] TRACE Queue Removed 1 [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 063 [main] TRACE Fire "Apply 10% discount if total purchases is over 100" [[ Apply 10 % discount if total purchases is over 100 active= false ] [ [fact 0 : 6 : 2063009760 : 1079902208 : 6 : null :NON_TRAIT: 120.0 ] [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] ] ] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Insert [fact 0 : 7 : 874153561 : 874153561 : 7 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Discount @341a8659 ] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE LinkSegment smask= 2 rmask= 3 name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE LinkRule name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Queue RuleAgendaItem [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Queue Added 1 [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE BetaNode insert= 1 stagedInsertWasEmpty= true 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE LinkNode notify= true nmask= 1 smask= 1 spos= 1 rules=[RuleMem Discount awarded notification] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE LinkSegment smask= 2 rmask= 3 name=Discount awarded notification 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE LinkRule name=Discount awarded notification 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Queue RuleAgendaItem [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Queue Added 3 [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] Customer mark now has a shopping total of 120.0 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Removing RuleAgendaItem [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Queue Removed 2 [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 071 [main] TRACE Rule[name=Discount removed notification] segments= 2 TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 072 [main] TRACE 8 [NotNode( 8 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 072 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 072 [main] TRACE 8 [NotNode( 8 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 072 [main] TRACE rightTuples TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE 9 [RuleTerminalNode( 9 ): rule=Discount removed notification] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE 9 [RuleTerminalNode( 9 ): rule=Discount removed notification] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE Removing RuleAgendaItem [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE Queue Removed 1 [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE Rule[name=Discount awarded notification] segments= 2 TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE 10 [JoinNode( 10 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 073 [main] TRACE 10 [JoinNode( 10 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE rightTuples TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE 11 [RuleTerminalNode( 11 ): rule=Discount awarded notification] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE 11 [RuleTerminalNode( 11 ): rule=Discount awarded notification] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE Fire "Discount awarded notification" [[ Discount awarded notification active= false ] [ [fact 0 : 7 : 874153561 : 874153561 : 7 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Discount @341a8659 ] [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] ] ] Customer mark now has a discount of 10 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE Removing RuleAgendaItem [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE Queue Removed 1 [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE Delete [fact 0 : 5 : 8996952 : 8996952 : 5 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Purchase @894858 ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE LinkSegment smask= 2 rmask= 3 name=Purchase notification 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE LinkRule name=Purchase notification 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE Queue RuleAgendaItem [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 074 [main] TRACE Queue Added 1 [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE LinkSegment smask= 2 rmask= 3 name=Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE LinkRule name=Apply 10 % discount if total purchases is over 100 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Queue RuleAgendaItem [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Queue Added 2 [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Added Apply 10 % discount if total purchases is over 100 to eager evaluation list. Customer mark has returned the hat 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Rule[name=Apply 10 % discount if total purchases is over 100 ] segments= 2 TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE 12 [ AccumulateNode( 12 ) ] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE 12 [ AccumulateNode( 12 ) ] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE rightTuples TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE 13 [RuleTerminalNode( 13 ): rule=Apply 10 % discount if total purchases is over 100 ] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE 13 [RuleTerminalNode( 13 ): rule=Apply 10 % discount if total purchases is over 100 ] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Delete [fact 0 : 7 : 874153561 : 874153561 : 7 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Discount @341a8659 ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE LinkSegment smask= 2 rmask= 3 name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE LinkRule name=Discount removed notification 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Queue RuleAgendaItem [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE Queue Added 3 [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 075 [main] TRACE UnlinkNode notify= true nmask= 1 smask= 0 spos= 1 rules=[RuleMem Discount awarded notification] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE UnlinkSegment smask= 2 rmask= 1 name=[RuleMem Discount awarded notification] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE UnlinkRule name=Discount awarded notification 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Queue RuleAgendaItem [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Queue Added 2 [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Rule[name=Purchase notification] segments= 2 TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE 14 [JoinNode( 5 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Purchase]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE 14 [JoinNode( 5 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Purchase]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE rightTuples TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE 15 [RuleTerminalNode( 6 ): rule=Purchase notification] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE 15 [RuleTerminalNode( 6 ): rule=Purchase notification] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Removing RuleAgendaItem [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Queue Removed 1 [Activation rule=Purchase notification, act#= 2 , salience= 10 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Rule[name=Discount removed notification] segments= 2 TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE 16 [NotNode( 8 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE 16 [NotNode( 8 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 076 [main] TRACE rightTuples TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE 17 [RuleTerminalNode( 9 ): rule=Discount removed notification] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE 17 [RuleTerminalNode( 9 ): rule=Discount removed notification] TupleSets[insertSize= 1 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Fire "Discount removed notification" [[ Discount removed notification active= false ] [ null [fact 0 : 1 : 1455177644 : 1455177644 : 1 :DEFAULT:NON_TRAIT:org.drools.examples.shopping.ShoppingExample$Customer @56bc3fac ] ] ] Customer mark now has a discount of 0 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Removing RuleAgendaItem [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Queue Removed 1 [Activation rule=Discount removed notification, act#= 0 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Rule[name=Discount awarded notification] segments= 2 TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE 18 [JoinNode( 10 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE 18 [JoinNode( 10 ) - [ClassObjectType class =org.drools.examples.shopping.ShoppingExample$Discount]] TupleSets[insertSize= 0 , deleteSize= 0 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE rightTuples TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE 19 [RuleTerminalNode( 11 ): rule=Discount awarded notification] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Segment 1 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE 19 [RuleTerminalNode( 11 ): rule=Discount awarded notification] TupleSets[insertSize= 0 , deleteSize= 1 , updateSize= 0 ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Removing RuleAgendaItem [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Queue Removed 1 [Activation rule=Discount awarded notification, act#= 7 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Removing RuleAgendaItem [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] 2014 - 10 - 02 02 : 35 : 09 , 077 [main] TRACE Queue Removed 1 [Activation rule=Apply 10 % discount if total purchases is over 100 , act#= 1 , salience= 0 , tuple= null ] |
Ссылка: | Проследите результаты Drools от нашего партнера по JCG Марка Проктора в блоге Drools & jBPM . |