Dear Greg,<br><br>Thanks very much for your reply.<br><br>I'm using sequential mode = true<br><br>Is there a way to create this PhoneNumber class, and convert the String to the PhoneNumber object inside the Drools? Because I'm using a system called JBilling and it send the phoneNumber as a String.<br>
<br>Sorry if those are basic questions, but I'm a newbie in Drools...<br><br>Thank you very much,<br><br clear="all">Antonio Anderson Souza<br>Voice Technology<br><a href="http://www.antonioams.com">http://www.antonioams.com</a><br>
<br><br><div class="gmail_quote">2010/5/14 Greg Barton <span dir="ltr"><<a href="mailto:greg_barton@yahoo.com">greg_barton@yahoo.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font: inherit;" valign="top">Right off the bat I'd say try to get rid of the eval usage. Can you put the phone number into an object like this:<br>
<br>class PhoneNumber {<br> private char digit0;<br> private char digit1;<br> ///...same for the rest of the digits<br><br> public char getDigit0() { return digit0; }<br>
public char getDigit1() { return digit1; }<br>}<br><br>Then the conditions would look like this:<br><br>digit0 == '$param'<br><br>Behind the scenes hopefully this will optimize better. The use of eval won't optimize well.<br>
<br>Are you using sequential mode? This might be a good candidate for that if setting the price does not trigger any other rules to fire.<br><br>--- On <b>Fri, 5/14/10, Antonio Anderson Souza <i><<a href="mailto:antonioams@gmail.com" target="_blank">antonioams@gmail.com</a>></i></b> wrote:<br>
<blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Antonio Anderson Souza <<a href="mailto:antonioams@gmail.com" target="_blank">antonioams@gmail.com</a>><br>
Subject: [rules-users] Jbilling Drools performance<br>To: "Drools Users Mailing list" <<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>><br>Date: Friday, May 14, 2010, 1:28 PM<div>
<div></div><div class="h5"><br><br><div><div class="gmail_quote"><div><div></div><div>Dear All,<br><br><div class="gmail_quote">I'm deploying a
JBilling using Drools in a Telecom Carrier in Brazil, and I'm using Decision tables in xls files to execute the pricing, my pricing table has about 40.000 rules, and I'm getting a terrible performance about 1.5 minute to execute the price of each CDR (Call Detail Record) mediated.<br>
<br>Follow bellow a small piece of my decision table:<br><br>
        
        
        
        
        
        
<table border="0" cellspacing="0">
        <colgroup><col width="133"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="113"><col width="114"><col width="86"></colgroup>
        <tbody>
                <tr>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);" height="17" align="CENTER" bgcolor="#ccffff" width="133"><b>RuleTable Padrao</b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="113"><b><br></b></td>
                        <td align="LEFT" width="114"><br></td>
                        <td align="LEFT" width="86"><br></td>
                </tr>
                <tr>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" colspan="13" height="17" align="CENTER" bgcolor="#47b8b8" valign="MIDDLE"><b>CONDITION</b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>CONDITION</b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>ACTION</b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>PRIORITY </b></td>
                </tr>
                <tr>
                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" colspan="13" height="17" align="CENTER" bgcolor="#47b8b8" valign="MIDDLE"><b>PricingField</b></td>
                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>PricingManager</b></td>
                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>manager</b></td>
                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>salience</b></td>
                </tr>
                <tr>
                        <td style="border: 1px solid rgb(0, 0, 0);" height="17" align="CENTER" bgcolor="#e6e6ff">name</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(0) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(1) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(2) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(3) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(4) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(5) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(6) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(7) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(8) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(9) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(10) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(11) == '$param')</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">itemId</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">setPrice($param)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff"><br></td>
                </tr>
                <tr>
                        <td style="border: 1px solid rgb(0, 0, 0);" height="17" align="CENTER" bgcolor="#ffcc99">Campo</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito1</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito2</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito3</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito4</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito5</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito6</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito7</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito8</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito9</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito10</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito11</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito12</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">ID do Item</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Preço</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Ordem</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">1</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">7</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">2</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">6</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">3</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">4</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">4</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">5</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">6</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">2</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">7</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.40000</td>
                        <td align="RIGHT">8</td>
                </tr>
        </tbody>
</table>
<br><br>Is it normal? Are there somebody using Jbilling in a similar way? Does anybody can help me?<br><br>Best regards,<br><font color="#888888"><br clear="all">Antonio Anderson Souza<br>Voice Technology<br><a rel="nofollow" href="http://www.antonioams.com" target="_blank">http://www.antonioams.com</a><br>
</font></div><br>
</div></div></div><br>
</div><br></div></div>-----Inline Attachment Follows-----<br><br><div>_______________________________________________<br>rules-users mailing list<br><a href="http://mc/compose?to=rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></div></blockquote></td></tr></tbody></table><br>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>