Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-4417

AMQ 7.8 page-size-bytes attribute does not use 3rd level address-setting value

    XMLWordPrintable

Details

    • Hide
      1. Define the address-setting in broker.xml like : 
        <address-setting match="test.#">
           <dead-letter-address>test.DLQ</dead-letter-address>
           <expiry-address>test.ExpiryQueue</expiry-address>
           <redelivery-delay>0</redelivery-delay>
           <max-size-bytes>1MB</max-size-bytes>
           <page-size-bytes>100KB</page-size-bytes>
        </address-setting>
        <address-setting match="test.foo.#">
           <dead-letter-address>test.DLQ</dead-letter-address>
        </address-setting>
        <address-setting match="test.foo.bar">
           <dead-letter-address>test.foo.DLQ</dead-letter-address>
        </address-setting>
        
      1. Address like :
               <address name="test.foo.bar">
                  <anycast>
                     <queue name="test.foo.bar">
                        <durable>true</durable>
                     </queue>
                  </anycast>
               </address>
        
      1. Start the broker. It fails to deploy the address test.foo.bar with warn (multiple restart throws ERROR message)
        2021-01-07 16:13:31,954 WARN  [org.apache.activemq.artemis.core.server] AMQ222275: Failed to deploy queue test.foo.bar: java.lang.IllegalStateException: pageSize for address test.foo.bar >= maxSize. Normally pageSize should be significantly smaller than maxSize, ms: 1048576 ps 10485760 
        
      1. Stop the broker. Clear data dir and remove the address-setting "test.foo.bar" from broker.xml.
      2. Restart the broker. This time address test.foo.bar deploys with page-size-bytes 100KB defined in "test.#". Stop the broker.
      3. Again use the address-setting defined in step-1. Just modify the max-size-bytes value greater than 10 MB or -1 in address-setting "test.#" and restart the broker. Address test.foo.bar" deploys with page-size-bytes 10485760 i.e default value.  This shows max-size-bytes follows address-setting hierarchies. However page-size-bytes not.  
      Show
      Define the address-setting in broker.xml like :  <address-setting match= "test.#" > <dead-letter-address> test.DLQ </dead-letter-address> <expiry-address> test.ExpiryQueue </expiry-address> <redelivery-delay> 0 </redelivery-delay> <max-size-bytes> 1MB </max-size-bytes> <page-size-bytes> 100KB </page-size-bytes> </address-setting> <address-setting match= "test.foo.#" > <dead-letter-address> test.DLQ </dead-letter-address> </address-setting> <address-setting match= "test.foo.bar" > <dead-letter-address> test.foo.DLQ </dead-letter-address> </address-setting> Address like : <address name= "test.foo.bar" > <anycast> <queue name= "test.foo.bar" > <durable> true </durable> </queue> </anycast> </address> Start the broker. It fails to deploy the address  test.foo.bar with warn (multiple restart throws ERROR message) 2021-01-07 16:13:31,954 WARN [org.apache.activemq.artemis.core.server] AMQ222275: Failed to deploy queue test.foo.bar: java.lang.IllegalStateException: pageSize for address test.foo.bar >= maxSize. Normally pageSize should be significantly smaller than maxSize, ms: 1048576 ps 10485760  Stop the broker. Clear data dir and remove the address-setting "test.foo.bar" from broker.xml. Restart the broker. This time address  test.foo.bar deploys with page-size-bytes 100KB defined in "test.#". Stop the broker. Again use the address-setting defined in step-1. Just modify the max-size-bytes value greater than 10 MB or -1 in address-setting "test.#" and restart the broker. Address test.foo.bar" deploys with page-size-bytes 10485760 i.e default value.  This shows max-size-bytes follows address-setting hierarchies. However page-size-bytes not.  
    • Hide

      Define  page-size-bytes in all address-settings.

      Show
      Define  page-size-bytes in all address-settings.

    Description

      The page-size-bytes attribute does not use 3rd level address-setting value.  It uses default value if  not defined in 2nd level address setting. And due to this address fails to deploy if page-size-bytes is larger than max size bytes. 

      Attachments

        Issue Links

          Activity

            People

              rhn-support-jbertram Justin Bertram
              rhn-support-vkamble Varsha Kamble
              Roman Vais Roman Vais
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: