[Persistence,JBoss/CMP, Hibernate, Database] - JBOSS crashes, possibly database related; Exception: recv fa
by cgries
Hello everybody,
we are running a commercial application on JBOSS 4.0.5GA (about 2000 users, 20 of them using the application at a time on average). OS is MS Web Server 2008, the persistency layer is provided by MySQL 5.1.35.
Up to now, everything has been running without any problems. Recently, however, there have been more and more frequent server crashes. It appears to happen when the server load increases beyond a certain point, but I can't definitely tell whether there is a real causation between the load situation and the crashes.
Having analyzed the server logs, it appears to me that the crashes are related to the database. However, I'm not a specialist on that area. Here is a log excerpt:
| (...)
| com.mysql.jdbc.CommunicationsException
| MESSAGE: Communications link failure due to underlying exception:
|
| ** BEGIN NESTED EXCEPTION **
|
| java.net.SocketException
| MESSAGE: Software caused connection abort: recv failed
|
| STACKTRACE:
|
| java.net.SocketException: Software caused connection abort: recv failed
| at java.net.SocketInputStream.socketRead0(Native Method)
| at java.net.SocketInputStream.read(SocketInputStream.java:147)
| at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
| at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
| at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
| at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1910)
| at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
| at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
| at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
| at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
| at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
| at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
| at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
| at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
| at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:171)
| at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:565)
| at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:250)
| at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:529)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341)
| at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:301)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:225)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:144)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCFindByPrimaryKeyQuery.execute(JDBCFindByPrimaryKeyQuery.java:155)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntityCommand.execute(JDBCFindEntityCommand.java:61)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntity(JDBCStoreManager.java:604)
| at org.jboss.ejb.plugins.CMPPersistenceManager.findEntity(CMPPersistenceManager.java:315)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEntity(CachedConnectionInterceptor.java:236)
| at org.jboss.ejb.EntityContainer.findSingleObject(EntityContainer.java:1099)
| at org.jboss.ejb.EntityContainer.find(EntityContainer.java:728)
| at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
| at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1126)
| at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
| at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:203)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:189)
| at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
| at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:134)
| at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:76)
| at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:43)
| at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)
| at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)
| at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)
| at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:145)
| at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)
| at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:107)
| at org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java:521)
|
| (..)
|
This is the second type of exception that shows up in the log during crashes:
| (...)
| Last packet sent to the server was 1 ms ago.
|
| STACKTRACE:
|
| com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
|
| ** BEGIN NESTED EXCEPTION **
|
| java.io.EOFException
|
| STACKTRACE:
|
| java.io.EOFException
| at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
| at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
| at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
| at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
| at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
| at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
| at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
| at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
| at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
| at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:171)
| (...)
|
I have searched for the cause of these errors on the web myself, but the only related issue where they appear seems to be if the database connections are unused for a long time and have become stale. These circumstances certainly do not apply in this case. Interestingly, the MySQL error log does not contain anything that would point to a database problem, so I assume that JBOSS somehow can't connect to the DB anymore.
If anybody could give me a pointer to the real cause of the problem, I would be really happy.
Best regards,
Caspar
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4242917#4242917
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4242917
17 years
[JBoss Messaging] - Re: Embedded server - how to create JMS Topic?
by rkapur123
Hi Leos.bitto
I have jboss SOA 4.3 ESB which has Jboss Messaging as messaging provoder.
Using Spring framework's MDP (message driven pojo) - I want to listen on "sampleQueue". As per springframework 2.5 guide - MDP is a simple class which implements javax.jms.MessageListener onMessage(). I have the class and specified the following in applicationContext.xml file
|
| <bean id="messageListener" class="com.acme.SpringMDP" />
|
| <bean id="listenerContainer"
| class="org.springframework.jms.listener.DefaultMessageListenerContainer">
| <property name="concurrentConsumers" value="5" />
| <property name="destination" ref="destination" />
| <property name="connectionFactory" ref="connectionFactory" />
| <property name="messageListener" ref="messageListener" />
| </bean>
but how should I define "connectionFactory" and "destination" in spring context file.
Earlier you wrote:
anonymous wrote : My application uses the ApplicationContext from Spring Framework, so I already have an XML configuration file, and it is easy to add few lines there to create the necessarry JMS queues and topics, using my simple class which calls your core API. The same is true for creating the JMS (XA)ConnectionFactory - no JNDI needed.
I would really appreciate if you can tell how you configure connection with Jboss.
kind regards,
rishi
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4242905#4242905
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4242905
17 years