[jBPM] - Support for BPMN 2.0 BusinessRuleTask in jBPM?
by Patricia B
Patricia B [http://community.jboss.org/people/patriciab] created the discussion
"Support for BPMN 2.0 BusinessRuleTask in jBPM?"
To view the discussion, visit: http://community.jboss.org/message/555518#555518
--------------------------------------------------------------
Hi,
I am running jBPM 4.4. I used Oryx academic free version to create a simple process definition, having the following elements: a user task, a service task, a business rule task, and a few gateways. I imported the process definition created in jBPM 4.4 project, but the businessRuleTask is not supported.
I know that jPDL has a rule task I can use for business rules, but that means I need to migrate the BPMN 2.0 process to jPDL one, but this is not a good solution for my project.
My question is if there is any workaround for BPMN business rule task in jBPM 4.4? Also, I wonder if anyone knows when BPMN 2.0 will be fully supported (focus on the business rule task in my case)?
Thanks in advance,
Patricia
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555518#555518]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months
Re: [jboss-user] [Performance Tuning] - Memory leak on org.jboss.classloader.spi.base.BaseClassLoader
by Angelo Marletta
Angelo Marletta [http://community.jboss.org/people/JohnnyStrozzino] replied to the discussion
"Memory leak on org.jboss.classloader.spi.base.BaseClassLoader"
To view the discussion, visit: http://community.jboss.org/message/555511#555511
--------------------------------------------------------------
Thank you for your kind answer.
The queries are generated by jpacriteria library, another layer over hibernate.
I found out that each object is given an alias, for example:
SELECT $obj$5cdba0 FROM com.example.MyEntity $obj$5cdba0
Actually the query does work, but makes the class loader blacklist the String "$obj$5cdba0.class" because someone (hibernate?) is trying to forName it.
I see these solutions, in order of dirtyness(?):
1) patch jpacriteria library in order to avoid generating insane queries
2) disable blacklisting by using jboss-classloading.xml (quick, any drawbacks?)
3) clear blacklist every day with a quartz job, by using jmx
Regarding 2) there are 104 classloader instances, but I should override the blacklist policy only for the classloader with id="vfsfile:$JBOSS_HOME/server/node1/conf/jboss-service.xml". Where should I put the jboss-classloading.xml?
Any other ideas?
(Someone tell Adrian Brock that jpacriteria should be added to the *blacklist* of stupid frameworks ;)
And btw why is the class loader using an unlimited cache for a blacklist?? Why not LRU?)
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555511#555511]
Start a new discussion in Performance Tuning at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months
Re: [jboss-user] [Performance Tuning] - Memory leak on org.jboss.classloader.spi.base.BaseClassLoader
by Ryan Hochstetler
Ryan Hochstetler [http://community.jboss.org/people/ryanhos] replied to the discussion
"Memory leak on org.jboss.classloader.spi.base.BaseClassLoader"
To view the discussion, visit: http://community.jboss.org/message/555500#555500
--------------------------------------------------------------
This is the class blacklist. I researched this back when we were on JBoss 4.2.3 and now I'm revisiting it for JBoss 5.1.0, since things seem to have changed.
Hibernate calls class.forName() on every token in each unique query. This is one of many reasons why it's crucially important to use bind parameters in your queries. If you are using bind params, your query is parsed by Hibernate once, then placed in some parsed query cache. This parsing is what calls Class.forName() on each token in the query. If you're not using bind params, each query looks unique, and it gets reparsed each time the aruments in the WHERE clause change. The endless stream of unique arguments in the where clause (from your 100k SOAP requests) end up as parameters to Class.forName(). JBoss's classloader caches failed class lookups, as a performance enhancement. In JBoss 4.2.3, this was done in RepositoryClassLoader. It was possible to set two properties which would not stop the accumulation in the class blacklist, but would stop the OutOfMemoryErrors from occurring by allowing the JVM to cull the blacklist when memory gets tight.
-Dorg.jboss.mx.loading.blacklistMode=SoftSet
-XX:SoftRefLRUPolicyMSPerMB=500
However, in JBoss 5.1.0, (probably 5.x on), RepositoryClassLoader appears to be unused (zero instances in my heap dump today). The class blacklist is now contained in BaseClassLoader, which does not have the same runaway allocation guard, as far as I can tell.
You might try filing a JIRA since this seems like a regression, but Adrian Brock has already weighed-in on the topic once before, and he's of the opinion that it's the framework's problem, not JBoss'. "There are many "stupid" webapp frameworks (and other code) around that try to continually load non-existant classes." https://jira.jboss.org/browse/JBAS-3041 https://jira.jboss.org/browse/JBAS-3041
In short, make sure that each and every one of your queries uses bind params, for this reason and numerous others all related to increased performance and security.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555500#555500]
Start a new discussion in Performance Tuning at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months
Re: [jboss-user] [Performance Tuning] - Configuration of Datasource: min-pool-size and max-pool-size
by Peter Johnson
Peter Johnson [http://community.jboss.org/people/peterj] replied to the discussion
"Configuration of Datasource: min-pool-size and max-pool-size"
To view the discussion, visit: http://community.jboss.org/message/555493#555493
--------------------------------------------------------------
I suspect that you will probably never need 50 connections. I would set min connections to a lower amount and monitor how many you actually use.
The settings can effect performance because it takes a while to establish a connection, so having idle connections available is better than waiting for connections to be established or waiting for in-use connections to be available. On the other hand, having too many idle connections does use up some Java heap space and some memory space within the database (example: a database memory work area dedicated to the connection), but if you have the spare memory available, it usually is not that big of an issue.
I have used several hundred connections with several different databases (MySQL, PostgreSQL, Oracle), and that did not seem to be a problem; the database had no trouble keeping up with the requests. Of course, some database tuning also helped. Having said that, 50 connections is probably too small of a number to worry about, so the settings you proposed are probably just fine.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555493#555493]
Start a new discussion in Performance Tuning at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months