Re: [Resin-interest] JMS problem with many messages: ArrayIndexOutOfBoundsException

2008-01-16 Thread Scott Ferguson


On Jan 16, 2008, at 7:19 AM, Erlend Akre wrote:


Hi, I am trying out Resin and the JMS part.

I’ve successfully set up a queue that uses the default disk database.



Thanks.  I've added this as a bug at http://bugs.caucho.com/view.php? 
id=2337


It's not really corrupted, but the database query is missing a needed  
limit clause.


-- Scott



I’m doing the sending and receiving from php using the very simple  
examples:




$queue = new JMSQueue("jms/myqueue");

$queue->send(…)
and
$queue->receive();

Everything works fine. But when doing some stress testing I start  
running into problems.


Using send() in a for loop works fine with 500,800,1000,2000  
repetitions..
If I set this higher (5000 repetitions) the page is never returned  
(which means the loops stops executing?)


I removed the database and started off clean.. I slowly added 500  
messages each time with around 30 sec apart.
There where no problems with sending, and the filesize of the  
database increased every time.


When I run the .php file with the receive() in it, I get an  
ArrayIndexOutOfBoundsException. This is not fixed by stopping and  
starting server, I actually have to delete the database on disk to  
get it to work again.


Anyone else had this kind of problem, that heavy use corrupts the  
database?


Error message from receive():
500 Servlet Exception

java.lang.ArrayIndexOutOfBoundsException: 128
at com.caucho.db.sql.SelectResult.write(SelectResult.java: 
1013)
at com.caucho.db.sql.SelectResult.writeBlob 
(SelectResult.java:919)
at com.caucho.db.table.BlobColumn.evalToResult 
(BlobColumn.java:351)
at com.caucho.db.table.TableIterator.evalToResult 
(TableIterator.java:424)

at com.caucho.db.sql.IdExpr.evalToResult(IdExpr.java:226)
at com.caucho.db.sql.SelectQuery.execute(SelectQuery.java:194)
at com.caucho.db.sql.SelectQuery.execute(SelectQuery.java:161)
at com.caucho.db.jdbc.PreparedStatementImpl.execute 
(PreparedStatementImpl.java:335)
at com.caucho.db.jdbc.PreparedStatementImpl.executeQuery 
(PreparedStatementImpl.java:302)
at com.caucho.sql.UserPreparedStatement.executeQuery 
(UserPreparedStatement.java:89)
at com.caucho.jms.jdbc.JdbcQueueConsumer.receiveImpl 
(JdbcQueueConsumer.java:266)
at com.caucho.jms.session.MessageConsumerImpl.receiveNoWait 
(MessageConsumerImpl.java:254)
at com.caucho.jms.session.MessageConsumerImpl.receive 
(MessageConsumerImpl.java:222)
at com.caucho.quercus.lib.jms.JMSQueue.receive 
(JMSQueue.java:154)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)
at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java: 
97)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java: 
615)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java: 
622)
at com.caucho.quercus.program.JavaClassDef.callMethod 
(JavaClassDef.java:542)
at com.caucho.quercus.env.JavaValue.callMethod 
(JavaValue.java:294)

at com.caucho.quercus.env.Var.callMethod(Var.java:1166)
at _quercus._get__php.execute(usr/local/resin-pro-3.1.3/ 
webapps/ROOT/get.php:10)
at com.caucho.quercus.page.QuercusPage.executeTop 
(QuercusPage.java:119)
at com.caucho.quercus.servlet.ResinQuercusServlet.service 
(ResinQuercusServlet.java:146)
at com.caucho.quercus.servlet.QuercusServlet.service 
(QuercusServlet.java:353)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
at com.caucho.server.dispatch.ServletFilterChain.doFilter 
(ServletFilterChain.java:103)
at com.caucho.server.webapp.WebAppFilterChain.doFilter 
(WebAppFilterChain.java:178)
at com.caucho.server.dispatch.ServletInvocation.service 
(ServletInvocation.java:241)
at com.caucho.server.http.HttpRequest.handleRequest 
(HttpRequest.java:268)
at com.caucho.server.port.TcpConnection.run 
(TcpConnection.java:586)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java: 
690)

at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
at java.lang.Thread.run(Thread.java:619)


Regards
Erlend
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] JMS problem with many messages: ArrayIndexOutOfBoundsException

2008-01-16 Thread Erlend Akre
Hi, I am trying out Resin and the JMS part.

I've successfully set up a queue that uses the default disk database.

 

I'm doing the sending and receiving from php using the very simple
examples:

 

$queue = new JMSQueue("jms/myqueue");
 
$queue->send(...)
and
$queue->receive();
 
Everything works fine. But when doing some stress testing I start
running into problems.
 
Using send() in a for loop works fine with 500,800,1000,2000
repetitions..
If I set this higher (5000 repetitions) the page is never returned
(which means the loops stops executing?)
 
I removed the database and started off clean.. I slowly added 500
messages each time with around 30 sec apart.
There where no problems with sending, and the filesize of the database
increased every time.
 
When I run the .php file with the receive() in it, I get an
ArrayIndexOutOfBoundsException. This is not fixed by stopping and
starting server, I actually have to delete the database on disk to get
it to work again.
 
Anyone else had this kind of problem, that heavy use corrupts the
database?
 
Error message from receive():

500 Servlet Exception

java.lang.ArrayIndexOutOfBoundsException: 128
at com.caucho.db.sql.SelectResult.write(SelectResult.java:1013)
at
com.caucho.db.sql.SelectResult.writeBlob(SelectResult.java:919)
at
com.caucho.db.table.BlobColumn.evalToResult(BlobColumn.java:351)
at
com.caucho.db.table.TableIterator.evalToResult(TableIterator.java:424)
at com.caucho.db.sql.IdExpr.evalToResult(IdExpr.java:226)
at com.caucho.db.sql.SelectQuery.execute(SelectQuery.java:194)
at com.caucho.db.sql.SelectQuery.execute(SelectQuery.java:161)
at
com.caucho.db.jdbc.PreparedStatementImpl.execute(PreparedStatementImpl.j
ava:335)
at
com.caucho.db.jdbc.PreparedStatementImpl.executeQuery(PreparedStatementI
mpl.java:302)
at
com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.
java:89)
at
com.caucho.jms.jdbc.JdbcQueueConsumer.receiveImpl(JdbcQueueConsumer.java
:266)
at
com.caucho.jms.session.MessageConsumerImpl.receiveNoWait(MessageConsumer
Impl.java:254)
at
com.caucho.jms.session.MessageConsumerImpl.receive(MessageConsumerImpl.j
ava:222)
at
com.caucho.quercus.lib.jms.JMSQueue.receive(JMSQueue.java:154)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:97)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:615)
at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:622)
at
com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:542
)
at
com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:294)
at com.caucho.quercus.env.Var.callMethod(Var.java:1166)
at
_quercus._get__php.execute(usr/local/resin-pro-3.1.3/webapps/ROOT/get.ph
p:10)
at
com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
at
com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServl
et.java:146)
at
com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:35
3)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChai
n.java:103)
at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.ja
va:178)
at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.j
ava:241)
at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
at
com.caucho.server.port.TcpConnection.run(TcpConnection.java:586)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
at java.lang.Thread.run(Thread.java:619)
 
 
Regards
Erlend
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest