2 Replies Latest reply on Mar 15, 2010 12:00 PM by skr989

    Error configuring DLQ and ExpiryQueue for distributed destination

      Can somebody help me with the DLQ and ExpiryQueue for distributed destinations? I tried with the below myqueue-service.xml.

      <?xml version="1.0" encoding="UTF-8"?>

       

      <!--
           Messaging Destinations deployment descriptor.

       

           $Id: destinations-service.xml 85945 2009-03-16 19:45:12Z dimitris@jboss.org $
      -->

       

      <server>
         <mbean code="org.jboss.jms.server.destination.QueueService"
            name="jboss.messaging.destination:service=Queue,name=myErrorQueue"
            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>

       

         <mbean code="org.jboss.jms.server.destination.QueueService"
            name="jboss.messaging.destination:service=Queue,name=myExpiryQueue"
            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>

       

         <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>
            <attribute name="DLQ">jboss.messaging.destination:service=Queue,name=myErrorQueue</attribute>
            <attribute name="ExpiryQueue">jboss.messaging.destination:service=Queue,name=myExpiryQueue</attribute>
         </mbean>
      </server>

       

      When I start node1 of the Cluster, it starts fine. But when I start node2, I get the below error.

       

      DEPLOYMENTS IN ERROR:
        Deployment "jboss.messaging.destination:name=myExpiryQueue,service=Queue" is in error due to the following reason(s): java.lang.IllegalArgumentException: Queue myExpiryQueue is already deployed as clustered = false so cannot redeploy as clustered=true . You must delete the destination first before redeploying
        Deployment "jboss.messaging.destination:name=myErrorQueue,service=Queue" is in error due to the following reason(s): java.lang.IllegalArgumentException: Queue myErrorQueue is already deployed as clustered = false so cannot redeploy as clustered=true . You must delete the destination first before redeploying

       

      Any help on this is highly appreciated.

       

      Thanks,

      Steve

        • 1. Re: Error configuring DLQ and ExpiryQueue for distributed destination
          nkeymeulen

          Hi Steve,

           

          I had a simular problem.

          I also created a destination queue like this.

           

          <mbean code="org.jboss.jms.server.destination.QueueService"
                name="jboss.messaging.destination:service=Queue,name=eventTest"
                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">false</attribute>  
          </mbean>

           

          I wanted to change the Clustered to true and than I got the same error message as you :

           

          java.lang.IllegalArgumentException: Queue eventTest is already deployed as clustered = false so cannot redeploy as clustered=true . You must delete the destination first before redeploying

           

          The problem is that the first time a queue destination is created, a record is added to the jbm_postoffice table. (There clustered for my queue was false)

          What I did is "delete from jbm_postoffice where queue_name = 'eventTest'

           

          When I restarted node 1 and node 2 the problem did not occur anymore.

           

          Hope this helps you.

           

          Nathalie

          • 2. Re: Error configuring DLQ and ExpiryQueue for distributed destination
            Thank you so much for sharing this. Appreciate it.