8 Replies Latest reply on Dec 18, 2008 7:57 AM by Andy Taylor

    Message  threshold

    Prabhudatt Rana Newbie

      Hi,
      We are experincing a strange behaviour on Jboss 4.2.3 + JBM1.4.0 SP3.
      We are trying to access processing limits of application , which basically uses messaging in and out.
      For that we are sending simultaenously 100s of Queue messages ( which is starting point for application ) . Surprisingly sometimes application just doesnt process any messages. In that kind of scenario we just need to restart application..n sometimes even restart doesnt work.
      Any clue where could be the problem ?
      Is there any limits of no. of messages on one queue ?
      Is there any limits of total no. of messages ?

      thx in advance

        • 1. Re: Message  threshold
          Andy Taylor Master

           

          Is there any limits of no. of messages on one queue ?
          Is there any limits of total no. of messages ?


          There are no actual limits. JBM will start to page messages to the database once a certain threshold is reached. These are read back in to memory when a queue dips below a certain limit.

          For that we are sending simultaenously 100s of Queue messages ( which is starting point for application ) . Surprisingly sometimes application just doesnt process any messages. In that kind of scenario we just need to restart application..n sometimes even restart doesnt work.


          I'm not sure why that would happen, one thing i would say is that sending messages as fast as you can will flood the server. Try adding some flow control and see if that makes a dsifference, say, only send n messages every second.

          • 2. Re: Message  threshold
            Prabhudatt Rana Newbie

            Thanks andy for ur clarification, We are doing the same thing sending a message and thread.sleep for 1 second n sending another message.

            I have seen following log in system.log file , which is being repeated, ( System is running in cluster )
            Is something happenining recursively ??


            Any idea on the same ?



            15:51:41,940 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Reading
            2008-12-17 15:51:41,940 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Stream is already DataInputStream :)
            2008-12-17 15:51:41,940 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Created packet SerializedPacket[null]
            2008-12-17 15:51:41,940 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Reading packet
            2008-12-17 15:51:41,940 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Read packet
            2008-12-17 15:51:41,940 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Returning payload: InvocationResponse[d62439, InvocationResponse[e45a36, true]]
            2008-12-17 15:51:41,940 TRACE [org.jboss.remoting.transport.socket.MicroSocketClientInvoker] SocketClientInvoker[1b2df13, bisocket://synpune0342:4457] returned ClientSocketWrapper[Socket[addr=/10.31.2.85,port=4457,localport=2269].1b0f019] to pool
            2008-12-17 15:51:41,940 TRACE [org.jboss.remoting.transport.socket.MicroSocketClientInvoker] SocketClientInvoker[1b2df13, bisocket://synpune0342:4457] released semaphore: 200
            2008-12-17 15:51:41,940 TRACE [org.jboss.remoting.transport.socket.MicroSocketClientInvoker] SocketClientInvoker[1b2df13, bisocket://synpune0342:4457] received response InvocationResponse[d62439, InvocationResponse[e45a36, true]]
            2008-12-17 15:51:41,940 TRACE [org.jboss.remoting.MicroRemoteClientInvoker] SocketClientInvoker[1b2df13, bisocket://synpune0342:4457] received InvocationResponse so going to return response's return value of InvocationResponse[e45a36, true]
            2008-12-17 15:51:41,940 TRACE [org.jboss.remoting.LeasePinger] LeasePinger[SocketClientInvoker[1b2df13, bisocket://synpune0342:4457](av42y-u77xtd-fotsmtwk-1-fotso4sh-a)] successfully pinged the server
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] read version 22 from input stream
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] blocking to read invocation from unmarshaller
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Reading
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Stream is already DataInputStream :)
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Created packet SerializedPacket[null]
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Reading packet
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Read packet
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Returning payload: InvocationRequest[1deb7b0, self, $PING$]
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] read InvocationRequest[1deb7b0, self, $PING$] from unmarshaller
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] about to call SocketServerInvoker[0.0.0.0:4457].invoke()
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.ServerInvoker] SocketServerInvoker[0.0.0.0:4457] received $PING$
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.ServerInvoker] SocketServerInvoker[0.0.0.0:4457] returning InvocationResponse[edbe37, true]
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] SocketServerInvoker[0.0.0.0:4457].invoke() returned InvocationResponse[edbe37, true]
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] creating response instance
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Writing InvocationResponse[633870, InvocationResponse[edbe37, true]]
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Stream is a DataOutputStream
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Writing packet: SerializedPacket[InvocationResponse[633870, InvocationResponse[edbe37, true]]]
            2008-12-17 15:51:42,034 TRACE [org.jboss.jms.wireformat.JMSWireFormat] Wrote packet
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] wrote response to the output stream
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] preparing to process next invocation invocation
            2008-12-17 15:51:42,034 TRACE [org.jboss.remoting.transport.socket.ServerThread] blocking to read version from input stream

            • 3. Re: Message  threshold
              Andy Taylor Master

              This is just the messages being deserialized.

              Is you're clustering configuration correct. Maybe you're queue isn't clustered and the consumer is connecting to a different node. I would run the clustering examples to validate your installation is correct.

              • 4. Re: Message  threshold
                Prabhudatt Rana Newbie

                Yes ours is clustered environment. I am not sure whether my queues are clustered or not...
                We have
                <mbean code="org.jboss.jms.server.destination.QueueService"
                name="jboss.messaging.destination:service=Queue,name=RequestQueue"
                xmbean-dd="xmdesc/Queue-xmbean.xml">
                <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
                jboss.messaging:service=PostOffice
                true


                Above entry is in deploy\jbos-messaging.sar\destination-service.xml

                Is this enough for making it Clustered Queue , or do i need to do somthing extra?


                • 5. Re: Message  threshold
                  Prabhudatt Rana Newbie


                  Above entry is there in each node of cluster.

                  • 6. Re: Message  threshold
                    Andy Taylor Master

                    you'll need clustered set to true for each queue you want clustered. heres a sampled clustered queue config:

                    <mbean code="org.jboss.jms.server.destination.QueueService"
                     name="jboss.messaging.destination:service=Queue,name=testDistributedQueue"
                     xmbean-dd="xmdesc/Queue-xmbean.xml">
                     <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
                     <depends>jboss.messaging:service=PostOffice</depends>
                     <attribute name="Clustered">true</attribute>
                     </mbean>




                    • 7. Re: Message  threshold
                      Prabhudatt Rana Newbie

                      Right...we did it.., sorry i missed it to paste it with the entry.

                      • 8. Re: Message  threshold
                        Andy Taylor Master

                        I would run the clustering examples to validate your installation is correct.