[EJB/JBoss] - Pooling Stateless Session Beans
by mercury_m
I'm trying to narrow down where performance issues are in the response time of a web service.
One thing that comes of interest is that it seems that a Stateless Session Bean thread is removed once it completes. This causes a delay with each call to the web service. Comparing a simple servlet or local class invocation showed that without the EJB the response time was <1ms but was 10-20ms when the code was deployed as a LocalEJB (>20ms as a RemoteEJB).
What I would like to happen is for JBOSS to keep a minimum number of threads active so that when an EJB instance is needed they are already instantiated.
I tried setting the pooling to a MinimumSize but I have read that JBOSS ignores this parameter.
In this deployment, the EJB is called through a Local interface and will most likely remain that way in production. The larger system is doing basically a lookup with some transformation (including CORBA, Database, etc.) of the data and analysis shows that this EJB invocation is the largest delay in the overall response time. The application has to be scaleable and responsive to support large volumes of batch and transactional request. In theory, this is architecting a solution to put a web service facade on Enterprise CORBA services.
Does anyone have suggestions or tips on what to do to increase the throughput and/or configure JBOSS for this type of application?
My thoughts are to either find a way to configure/customize JBOSS to maintain these threads across invocations (pooling of the stateless session beans) or to re-architect the solution to use a different type of bean (or different method for deploying the logic). The stateless session bean is part of the pattern for deploying a web service so changing that would affect many developers and systems and I would like to minimize change if possible.
Any help would be much appreciated.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013770#4013770
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013770
19Â years, 2Â months
[Security & JAAS/JBoss] - Re: Repeated calls to LoginModule for EJB authentication
by brownjamese
Resolved the issue and answered my own question. In our case it was directly related to the JassSecurityManager configuration which had been changed to 0 for both DefaultCacheTimeout and DefaultCacheResolution. The interesting question that I am left with however, is why do I see the following in the logs if caching is, in essence, disabled:
14:59:10,048 TRACE [org.jboss.security.plugins.JaasSecurityManager.acol-core-policy] Inse
rted cache info: org.jboss.security.plugins.JaasSecurityManager$DomainInfo@31ac05[Subject(
17676813
).principals=org.jboss.security.SimpleGroup@28014118(Roles(members:xxx,yyy,zzz))org.jboss.security.S
implePrincipal@22316052(U174791),credential.class=java.lang.String(a)23438274,expirationTime=117096114
8415]
A quick peak at JassSecurityManager and the inner DomainInfo leads me to believe that there could be optimizations if DefaultCacheTimeout (aka lifetime) == 0.
-- James
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013768#4013768
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013768
19Â years, 2Â months
[JBoss jBPM] - Standalone Logging Issue
by mwilling
I am aware that logging issues have been discussed at length on these forums, and in the guides, I have done searches and read through quite a few of them, but am still unable to solve my very simple problem, so hopefully someone here can help.
I am doing some very basic testing with the jbpm API in a simple standalone app. Regardless of what configuration files I add to my classpath, log4j.xml, log4j.properties, common-logging.properties, etc. The default logging thresholds seem to be applied, starting at INFO.
It is highly annoying to watch 15 secs of debug output lag my application every time I make a change and recompile, has anyone else run into this issue, and how did you resolve it?
i.e.
Feb 9, 2007 11:56:51 AM org.jbpm.JbpmConfiguration getInstance
| INFO: using jbpm configuration resource 'jbpm.cfg.xml'
| Feb 9, 2007 11:56:51 AM org.hibernate.cfg.Environment <clinit>
| INFO: Hibernate 3.1
| Feb 9, 2007 11:56:51 AM org.hibernate.cfg.Environment <clinit>
| INFO: hibernate.properties not found
| Feb 9, 2007 11:56:51 AM org.hibernate.cfg.Environment <clinit>
| INFO: using CGLIB reflection optimizer
| Feb 9, 2007 11:56:51 AM org.hibernate.cfg.Environment <clinit>
|
I have modified the logging settings for the jbpm server and they apply correctly, just not sure how to get my application to use anything but what appears to be 'default' logging levels.
Let me re-iterate this is a standalone application that I have simply invoked the jbpm API with, and my only problem is that by default logging output is at the threshold 'INFO' and dumps the output to the console which is highly undesirable in terms of runtime, I have been unable to discover a method to have it use a local logging configuration file.
I apologize if I am missing something in the guide or in a previous post but I have yet to find anything that would help me. I am a c++ developer writing a wrapper to jbpm with java, so there may be a simple java semantic that alludes me, but it seems that if I have the config files in the classpath it should be acceptable? For example the hibernate.cfg is read properly from my local classpath when loading this custom app.
Regards,
-Matt
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013765#4013765
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013765
19Â years, 2Â months
[JBoss Portal] - JSF using it's tag lib does work for map throws an error on
by rkandola
Hi,
I am trying to use JSF tag lib to access a Map. Below is the code JSF code :
<f:view >
<h:form>
<h:panelGrid columns="1">
<h:inputText value="#{settings.map['foo']}" />
<h:outputText rendered="#{settings.map['foo'] != null}" value="foo is #{settings.map['foo']}" />
<h:panelGrid columns="2">
<h:commandButton action="" value="Go" />
<h:commandButton action="#{settings.reset}" value="Reset" />
</h:panelGrid>
<h:messages showDetail="true" style="color:red"/>
</h:panelGrid>
</h:form>
</f:view>
setting is session scoped var :
<managed-bean>
<managed-bean-name>setting</managed-bean-name>
<managed-bean-class>MyMap</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
The backing bean code :
public class MyMap {
private Map map;
/** Creates a new instance of MyMap */
public MyMap() {
reset();
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public void reset()
{
map = new HashMap();
}
}
This works in Tomcat5.5 using JSF, but for some reason this getting error in the Portal 2.6. Could some please tell why this is the case ?
Thank you
Ranbir
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4013750#4013750
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4013750
19Â years, 2Â months