[Performance Tuning] - DS - No managed connections available within blocking timeou
by sc0tt
Hi,
I have been performance tuning jboss, and have came across an issue related to DataSources. Each time I run a 500 user test, the application "pauses" for 200 seconds or so(no responses are seen). I have tracked this down to two separate issues, the first was with the number of Open file descriptors. I am using RHEL3, and this is set to 1024, for an indiviual process. I have moved this to 2048, on the grounds that each user connection(we are connecting directly to jboss), consumes one connection, and logically since everything in linux is a file, needs one file descriptor. I no longer get the "Too many open files"(note I have checked for increasing numbers of open files, but do not see this increasing over time), effectively I have an application that requires a lot of open file descriptors. Now this is stabalised.
However, I still get the problem with "No managed connections available". I have changed all the relevant DataSource maximum connections from a default of 20, to a new default maximum of 200(changed in the ds.xml for each datasource). I have monitored the application and am getting around 100 data source connections maximum, per data source(ie I should have another 100 "spare").
However, I still have the error that there are no managed connections available.
Can anyone shed any light on what options I might try next to track this down?
I have included a stack trace from the log file.....
Caused by: org.jboss.util.NestedSQLException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - neste
d throwable: (javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ))
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
at org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin.insertTimer(GeneralPurposeDatabasePersistencePlugin.java:172)
at org.jboss.ejb.txtimer.DatabasePersistencePolicy.insertTimer(DatabasePersistencePolicy.java:122)
... 100 more
Caused by: javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:266)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:454)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:324)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:301)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:379)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.
java:812)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
... 102 more
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4052011#4052011
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4052011
18Â years, 10Â months
[JBossWS] - Re: problem calling webservice from client
by sashaxiv
i tried to not throw exceptions to see what happens and now i have the same
problem as when i used axis.
javax.xml.ws.WebServiceException: HTTP Status-Code 405: HTTP method POST is not supported by this URL
|
this is what i do in the client:
| URL wsdlURL = null;
| try {
| wsdlURL = new URL("http://127.0.0.1:8080/SesionSessionBeanService/SesionSessionBean?wsdl");
| } catch (MalformedURLException e1) {
| // TODO Auto-generated catch block
| e1.printStackTrace();
| }
| QName serviceName = new QName("http://localhost:8080/jbossws/services/Sesion", "LoginService");
| Service service = Service.create(wsdlURL, serviceName);
| SesionEndPointInterface sesionSession = (SesionEndPointInterface)service.getPort(SesionEndPointInterface.class);
| System.out.println("0000002 SFWSI Kike --->Creado Servicio , sessionSession ->" + sesionSession.toString() );
| System.out.println("0000002 SFWSI Kike --->Creado Servicio , service ->" + service.toString() );
|
| BindingProvider bindingProvider = (BindingProvider)sesionSession;
| Map<String, Object> reqContext = bindingProvider.getRequestContext();
| reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:8080/jbossws/services/Sesion/SesionSessionBean");
| reqContext.put(BindingProvider.USERNAME_PROPERTY, "kermit");
| reqContext.put(BindingProvider.PASSWORD_PROPERTY, "thefrog");
|
| try{
| // System.out.println("Conectando con... " + DataConexion.getServer() + ": " + DataConexion.getServerPort());
| FicheroLog.writeIncidencia("Conectando con... " + DataConexion.getServer() + ": " + DataConexion.getServerPort());
|
| loginVO = sesionSession.loginUsuario(idEmpresa, login, password, session);
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4052009#4052009
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4052009
18Â years, 10Â months