Mule
  1. Mule
  2. MULE-6102

VM Queue not picking up messages previously persisted in the questore directly

    Details

    • User impact:
      Very High
    • Configuration:
      Hide

      <?xml version="1.0" encoding="UTF-8"?>
      <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:spring="http://www.springframework.org/schema/beans" xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:http="http://www.mulesoft.org/schema/mule/http"
      xsi:schemaLocation="
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.2/mule.xsd
      http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.2/mule-http.xsd
      http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/3.2/mule-vm.xsd">

      <vm:connector name="VMQueue">
      <vm:queueProfile maxOutstandingMessages="10">
      <default-persistent-queue-store />
      </vm:queueProfile>
      </vm:connector>
      <flow name="http-test" >
      <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" path="test"/>
      <vm:outbound-endpoint exchange-pattern="one-way" path="flowIn" responseTimeout="10000" mimeType="text/plain"/>
      </flow>
      <flow name="EchoUMOFlow">
      <vm:inbound-endpoint path="flowIn"
      exchange-pattern="one-way" />
      <vm:outbound-endpoint path="flowOut"
      exchange-pattern="one-way" />
      </flow>
      </mule>

      Show
      <?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:http="http://www.mulesoft.org/schema/mule/http" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.2/mule.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.2/mule-http.xsd http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/3.2/mule-vm.xsd "> <vm:connector name="VMQueue"> <vm:queueProfile maxOutstandingMessages="10"> <default-persistent-queue-store /> </vm:queueProfile> </vm:connector> <flow name="http-test" > <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" path="test"/> <vm:outbound-endpoint exchange-pattern="one-way" path="flowIn" responseTimeout="10000" mimeType="text/plain"/> </flow> <flow name="EchoUMOFlow"> <vm:inbound-endpoint path="flowIn" exchange-pattern="one-way" /> <vm:outbound-endpoint path="flowOut" exchange-pattern="one-way" /> </flow> </mule>
    • Similar Issues:
      MULE-7702Mule 2.2.1 not picking up messages persisted in the questore upon restart
      MULE-5456Persisted VM queues cannot be used in flows
      MULE-6634Mule 3.3.1 Persistent VM queue error
      MULE-1907Add tests for relative VM queue / direct performance
      MULE-2406IllegalStateException using VM queue and WebLogic JMS in an XA transaction
      MULE-7649VM persisted messages disappear after an unexpected shutdown.
      MULE-7025Serialization exception using persistent queues
      MULE-2076Events published to the internal Queues (Mule VM Queue) were stuck
      MULE-68Provide a persistent VM queue implementation
      MULE-4939Persistent VM queues don't keep order after restart

      Description

      When mule start up it recursively loads all the files previously persisted in the queuestores directories and adds them to a list. In the past this list used to be traversed during mule startup to load all the persisted files IDs and process them before any other incoming new message. This doesn't happen any longer ever since mule 3.2.1. What happens is that the file are still aggregated to a list of IDs but this seems not to be used and as a result the persisted messages won't be ever processed again.

      To reproduce the problem just use the provided config and do the following step
      *create a simple app containing only it
      *connect to http://localhost:8080/test
      *swap the vm queues path

      As a result the message stored into the flowOut during step 2, should be processed during step 3, but if you take a look at the folder .mule/$

      {app.name}

      /queuestore/flowOut/ you will se that the message has not been picked up.

        Activity

        Show
        Santiago Vacas added a comment - 3.2.x http://fisheye.codehaus.org/changelog/mule/?cs=23937 http://fisheye.codehaus.org/changelog/mule/?cs=23938 http://fisheye.codehaus.org/changelog/mule/?cs=24182 http://fisheye.codehaus.org/changelog/mule/?cs=24187 3.x http://fisheye.codehaus.org/changelog/mule/?cs=24154 http://fisheye.codehaus.org/changelog/mule/?cs=24189

          People

          • Assignee:
            Santiago Vacas
            Reporter:
            Alberto Aresca (Inactive)
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development