Hi Ramit,

only just saw you stack trace - this is a known problem - caused by a bug in the InactivityMonitor - its fixed in the upcoming 5.1 release (you could test the release candidate - here:
http://people.apache.org/~chirino/staging-repos/activemq-5.1.0-RC3/org/apache/activemq/apache-activemq/5.1.0/)

cheers,

Rob


On 16 Apr 2008, at 07:03, Ramit Arora wrote:

Hey Fred,
The problem seems to be a bit strange. It occurs only if I use Solaris to host my broker. The problem is much more frequent if the server machine is Solaris/x86 rather than Solaris/Sparc. Windows machines are not suffering
from this problem. And the problem disappears if i use JNDI to set my
connection factories & destinations. Pretty weird!

Thanks,
Ramit

Fred D wrote:

Maybe try to see where the thresold is ... increase 1 or 2 subsribers
until it happens.

A workaround might be to try a network of 2 brokers perhaps to see if its
a scaling issue.

Fred


Ramit Arora wrote:

Hi,
I am testing ActiveMQ 5.0 using a Perl Publisher (using Net::Stomp) & Java Subscribers (Openwire). It works well when the number of subscribers is low (1 or 2) but when I increase the number of subscribers to around
10, I face the following problem:

A subscriber shows the following stack trace
Exception in thread "ActiveMQ Transport:
tcp://xx.yy.zz.com/nnn.nn.nnn.nn:61616" java.lang.ClassCastException:
org.apache.activemq.command.BrokerId can not be cast to
org.apache.activemq.command.ConsumerId
       at
org .apache .activemq .openwire .v3.MessageMarshaller.tightUnmarshal(MessageMarshaller.java:71)
       at
org .apache .activemq .openwire .v3 .ActiveMQMessageMarshaller .tightUnmarshal(ActiveMQMessageMarshaller.java:67)
       at
org .apache .activemq .openwire .v3 .ActiveMQTextMessageMarshaller .tightUnmarshal(ActiveMQTextMessageMarshaller.java:67)
       at
org .apache .activemq .openwire .OpenWireFormat.tightUnmarshalNestedObject(OpenWireFormat.java:452)
       at
org .apache .activemq .openwire .v3 .BaseDataStreamMarshaller .tightUnmarsalNestedObject(BaseDataStreamMarshaller.java:127)
       at
org .apache .activemq .openwire .v3 .MessageDispatchMarshaller .tightUnmarshal(MessageDispatchMarshaller.java:72)
       at
org .apache .activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java: 361)
       at
org .apache .activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275)
       at
org .apache .activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java: 192)
       at
org .apache .activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:184)
       at
org .apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
172)
       at java.lang.Thread.run(Thread.java:619)

The broker shows the following stack trace:
Exception in thread "ActiveMQ Connection Dispatcher: /nnn.nn.nn.nn: 39997"
java.lang.NullPointerException
       at java.lang.System.arraycopy(Native Method)
       at
org .apache .activemq .transport .tcp.TcpBufferedOutputStream.write(TcpBufferedOutputStream.java:89)
       at java.io.DataOutputStream.write(DataOutputStream.java:90)
       at
org .apache .activemq .openwire .v3 .BaseDataStreamMarshaller .tightMarshalByteSequence2(BaseDataStreamMarshaller.java:433)
       at
org .apache .activemq .openwire .v3.MessageMarshaller.tightMarshal2(MessageMarshaller.java:173)
       at
org .apache .activemq .openwire .v3 .ActiveMQMessageMarshaller .tightMarshal2(ActiveMQMessageMarshaller.java:90)
       at
org .apache .activemq .openwire .v3 .ActiveMQTextMessageMarshaller .tightMarshal2(ActiveMQTextMessageMarshaller.java:90)
       at
org .apache .activemq .openwire .OpenWireFormat.tightMarshalNestedObject2(OpenWireFormat.java:423)
       at
org .apache .activemq .openwire .v3 .BaseDataStreamMarshaller .tightMarshalNestedObject2(BaseDataStreamMarshaller.java:137)
       at
org .apache .activemq .openwire .v3 .MessageDispatchMarshaller .tightMarshal2(MessageDispatchMarshaller.java:106)
       at
org .apache .activemq.openwire.OpenWireFormat.marshal(OpenWireFormat.java:238)
       at
org .apache .activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:153)
       at
org .apache .activemq .transport.InactivityMonitor.oneway(InactivityMonitor.java:157)
       at
org .apache .activemq.transport.TransportFilter.oneway(TransportFilter.java:82)
       at
org .apache .activemq .transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:91)
       at
org .apache .activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
       at
org .apache .activemq .broker.TransportConnection.dispatch(TransportConnection.java:1151)
       at
org .apache .activemq .broker .TransportConnection.processDispatch(TransportConnection.java:766)
       at
org .apache .activemq .broker.TransportConnection.iterate(TransportConnection.java:801)
       at
org .apache .activemq .thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
       at
org.apache.activemq.thread.DedicatedTaskRunner $1.run(DedicatedTaskRunner.java:36)

The broker & the subscriber keep running after this, but the broker does not deliver messages to that subscriber. Other subscribers work fine. This problem is repeatedly occuring. I am using SunOS 5.10 on a machine
with 8 processors & 32 GB of RAM.
Please help!

TIA,
Ramit






--
View this message in context: 
http://www.nabble.com/Null-Pointer-Exception-on-broker-tp16048936s2354p16717003.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Reply via email to