Hi Laun
Tnks for dis wonderfl solution ...I guess our performance issue is solved
as of now..But I got a small query over it.
1) When 10k records were there in the DT, the DT was to compile and all
these 10k rules now stays in the production memory.And we were inserting a
single fact in working memory.
2) But in the approach suggested by you , we got the single rule in the
production memory but now we have 10k facts to be in working memory.But we
get a performance enhancement.
Does it means the size and speed of working memory is more than to
production memory? Else what is the reason of this performance enhancement?
Regards
On Tue, Jun 19, 2012 at 4:24 PM, Wolfgang Laun <wolfgang.laun(a)gmail.com>wrote:
On 19/06/2012, zeeshan <zeeshan.spring(a)gmail.com> wrote:
> Hi Laune,
>
>
>
> Thanks very much for your response. We would like to try and implement
> Option 3.
>
> We assume that the implementation involves setting up individual rows in
> the
> excel as a collection of objects and using the From keyword to look up
the
> output value/row we want based on the input parameter values.
Huh? You leave the Excel data as it is except for throwing away the
header lines.
> Is it
> possible for you to share the relevant code you have created to implement
> this option?
This is the rule:
rule calculatePremium
when
$pfc: PremiumCalculatorFactBean( $age: age,
$policyTerm: policyTerm,
$interestRate: interestRate,
$gender: gender,
$smokingStatus: smokingStatus,
$channel: channel,
premiumRate == 0.0 )
$p: Premium( age == $age,
policyTerm == $policyTerm,
interestRate == $interestRate,
gender == $gender,
smokingStatus == $smokingStatus,
channel == $channel )
then
modify( $pfc ){ setPremiumRate( $p.getPremiumRate() ) }
end
And a few lines of Java code:
private void makeRates( String csvPath ) throws Exception {
File f = new File( csvPath );
InputStream is = new FileInputStream( f );
Reader rdr = new InputStreamReader( is );
LineNumberReader lnrdr = new LineNumberReader( rdr );
String line;
while( (line = lnrdr.readLine()) != null ){
if( line.charAt(0) == '"' ) continue;
String[] tokens = line.split( ";" );
if( tokens.length != 7 ) continue;
int age = Integer.parseInt( tokens[0] );
int policyTerm = Integer.parseInt( tokens[1] );
int interestRate = Integer.parseInt( tokens[2] );
String gender = tokens[3].substring( 1, 2 );
String smokingStatus = tokens[4].substring( 1, 2 );
int channel = Integer.parseInt( tokens[5] );
double premiumRate = Double.parseDouble( tokens[6] );
Premium p = new Premium( age, policyTerm, interestRate,
gender, smokingStatus, channel, premiumRate );
kSession.insert( p );
}
close( rdr );
}
-W
>
> Thanks !
>
>
> --
> View this message in context:
>
http://drools.46999.n3.nabble.com/Hibernate-Configuration-with-Drools-5-4...
> Sent from the Drools: User forum mailing list archive at
Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users