Configure Stateless EJB Pool size in Websphere - websphere

I'm looking for a way to configure the SLSB Pool size in Websphere. Is it possible to configure it from the Admin Console ?
Looking at the IBM Red Books it's mentioned how to configure the ORB Pool which is however used by remote EJB clients. My Requests are arriving from the same JVM by servlets
Thanks
Max

There is a system property called com.ibm.websphere.ejbcontainer.poolSize that can be used to tune bean pool sizes.

Related

Spring Boot Embedded Tomcat Internal Working

I recently read an article regarding Tomcat architecture and a high level overview of its working and monitoring.
Key metrics for monitoring Tomcat - DataDog
In this article, it mentions Tomcat having a pool of worker threads per connector that can be configured.
It also mentions about Executors and how it is mainly a thread pool that is shared with multiple connectors.
I have some doubts regarding Spring Boot and its Embedded Tomcat Server
How many Connectors are configured by default for this embedded Tomcat Server?
Does the embedded Tomcat have an Executor configured? Or is it just the basic pool of worker threads.
I can see that we can configure the accept count using application.properties by using the following property
server.tomcat.accept-count
I believe acceptCount sets the max number of connections that can be queued up in the OS level queue when no worker thread is available. ( As per the mentioned article )
Does this mean that there is no Executor configured for the default Connector? If there is, how do we configure the queue size of that executor?
I would be grateful if someone could shed some light on the above.
In short, I just wanted to know if the server configuration via application.propeties is for an Executor or for the Connector specific pool of worker threads.

Is possible to access a remote JMS embedded queue?

I have a embedded ActiveMQ instance in my Spring Boot app and I would like to consume a queue on that instance, from another processes or machine.
Is that possible?
Yes, that is definitely possible given the proper broker configuration. It just needs connectors that are bound to network interfaces visible from remote clients.

Websphere ejb pool size

I have few questions regarding ejb pool size in websphere.
It is mentioned in the documentation here http://www.ibm.com/support/knowledgecenter/SS7JFU_7.0.0/com.ibm.websphere.express.doc/info/exp/ae/rejb_ecnt.html that the default ejb pool size is 50 - 500.
My question is, is it for all the ejbs together or is it per ejb? What i understood is, it is per ejb. Am I right?
Is there any tool to monitor the ejb pool size in websphere?
A1. You are correct, a pool exists per EJB and the default for each pool will be minimum 50 / maximum 500. The link you provided does show how to use the com.ibm.websphere.ejbcontainer.poolSize property to change the pool size for individual EJBs or change the default that applies to all types. In all cases, there is a pool per EJB.
A2. The EJB pool size may be monitored using the Tivoli Performance Viewer. The EJB counters available are documented here:
https://www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.doc/info/ae/ae/rprf_datacounter1.html
And the specific ones relevant to the EJB pool are : RetrieveFromPoolCount, RetrieveFromPoolSuccessCount, ReturnsToPoolCount, ReturnsDiscardCount, DrainsFromPoolCount, DrainSize, PooledCount

Configuring JBoss EPA 6.1 with IBM MQ

I am developing a service for JMS messaging using IBM WMQ version 7.5 as Message oriented middleware. I am in a dilemma. The IBM specification says to use WebSphere MQ JMS API in JAVA EE environment. My sender and receivers will be in remote JBoss deployments. IBM provides a resource adapter to connect via JCA. This connection requires static administration of components such as Queue managers, queue channels, queue names.
Is JCA the best I can do ? Is there any other way where I can dynamically create the queues provided that I know other configuration details ? There will be multiple applications using this setup running on their own servers. If I use JCA, all have to make their own configurations. Can I make dynamic configurations ?
Typically within the application server environment resources would be created in some JNDI context. These would be Connection Factories and Destinations.
Depending on the app server, it may be possible to share this configuration across a network of individual servers. So typically there would be some set of static definitions.
However within say a servlet the MQConnectionFactory can be dynamically created.
In all cases the backing WMQ Resources do need to exist; though it is possible to send administrative command messages to WMQ to create queues and do other admin. The only exception is topics, accessing a topic string brings it into existence. Though this has default security properties that you might not want.

number of live connections

My application is using Websphere 6.1, Spring JDBC and oracle.I am using connection pooling to manage the connections.Is there any way to find out the number of connections active(alive) between the application and database at any point of time?.Can we have any indicator to let us know when a connection is/was dropped?
One option would be to manage your connection pool via JMX. Spring has excellent support for it. You just need to expose your connection pool bean via org.springframework.jmx.export.MBeanExporter. You can pick and choose the methods you want to expose. For example if you use DBCP you can use the method BasicDataSource#getNumActive().

Resources