HI,
I create a (temporary) queue and an object to store message data to my
database. This usually works well. However, whent I subject it to heavy(?)
load, I get errors like this:
| 2005-12-21 09:31:42,477 INFO [STDOUT] [ JMSLogger:: sendMessage: Exception
while sending the LogMessage Could not store message: 456 msg=455 hard
NOT_STORED NON_PERSISTENT queue=QUEUE.AsynchronousLogQueue priority=9
lateClone=false hashCode=22529898; - nested throwable: (java.sql.SQLException:
Unable to convert between org.jboss.mq.SpyObjectMessage and JAVA_OBJECT.)]
| 2005-12-21 09:31:42,477 INFO [STDOUT] org.jboss.mq.SpyJMSException: Could
not store message: 456 msg=455 hard NOT_STORED NON_PERSISTENT
queue=QUEUE.AsynchronousLogQueue priority=9 lateClone=false hashCode=22529898;
- nested throwable: (java.sql.SQLException: Unable to convert between
org.jboss.mq.SpyObjectMessage and JAVA_OBJECT.)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.pm.jdbc2.PersistenceManager.saveToStorage(PersistenceManager.java:1225)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.MessageCache.saveToStorage(MessageCache.java:385)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.MessageReference.makeSoft(MessageReference.java:311)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.MessageCache.validateSoftReferenceDepth(MessageCache.java:332)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.MessageCache.addInternal(MessageCache.java:142)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.MessageCache.add(MessageCache.java:112)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.JMSQueue.addMessage(JMSQueue.java:130)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationManager.java:402)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.JMSDestinationManager.addMessage(JMSDestinationManager.java:378)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.JMSServerInterceptorSupport.addMessage(JMSServerInterceptorSupport.java:136)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.security.ServerSecurityInterceptor.addMessage(ServerSecurityInterceptor.java:153)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.TracingInterceptor.addMessage(TracingInterceptor.java:270)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.server.JMSServerInvoker.addMessage(JMSServerInvoker.java:136)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocketManagerHandler.java:86)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.java:356)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:377)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
java.lang.Thread.run(Thread.java:534)
| 2005-12-21 09:31:42,477 INFO [STDOUT] Caused by: java.sql.SQLException:
Unable to convert between org.jboss.mq.SpyObjectMessage and JAVA_OBJECT.
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
net.sourceforge.jtds.jdbc.Support.convert(Support.java:449)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setObjectBase(JtdsPreparedStatement.java:275)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setObject(JtdsPreparedStatement.java:529)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:652)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.pm.jdbc2.PersistenceManager.setBlob(PersistenceManager.java:837)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.pm.jdbc2.PersistenceManager.add(PersistenceManager.java:775)
| 2005-12-21 09:31:42,477 INFO [STDOUT] at
org.jboss.mq.pm.jdbc2.PersistenceManager.saveToStorage(PersistenceManager.java:1211)
| 2005-12-21 09:31:42,477 INFO [STDOUT] ... 17 more
| 2005-12-21 09:31:42,477 INFO [STDOUT] [ LogService::sendMessage: The
message successfully sent ]
|
The only way to fix this seems to be to restart JBoss.
Does anyone know what is happening?
This is the code I use to test my queue:
| int repeat = Integer.parseInt(request.getParameter("repeat"));
| String logType = request.getParameter("logtype");
| if (logType != null && logType.length() != 0) {
| for (int i = 0; i < repeat; i++) {
| Class c = Logger.class;
| Class[] parameterTypes = new Class[] { String.class,
String.class };
| Method logMethod;
| Object[] arguments = new Object[] { "short" + i, "long"
+ i };
| logMethod = c.getMethod(logType, parameterTypes);
| logMethod.invoke(logger, arguments);
| }
| }
|
Thank you,
L
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3913773#3913773
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3913773
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user