2017-01-05 2 views
0

Ich habe einen Fluss (A) mit Abfrage als Quelle mit Transformationslogik und Speichern von Ergebnisdaten im Mule Object Store Connector durch Überschreiben des letzten Werts. Immer wenn ich versuchte, den Wert in einem anderen Fluss (B) zu erhalten (mit dem ObjectStore Connector). Hinweis: Der Fluss (B) wird nicht von Fluss A aufgerufen. Ich kann den Wert zum ersten Mal herausholen. Für das nächste Mal, wann immer es abfragt, sollten wir den neuesten Wert erhalten und wir erhalten den neuesten Wert in Fluss A. Wann immer wir den letzten Wert abrufen (unter Verwendung des ObjectStore-Konnektors). Es gibt nur den letzten Wert, der den Objektspeicher gespeichert hat. Könnten Sie bitte die Lösung dafür liefern?ObjectStore Connector Problem in Mule abrufen

Antwort

0

Hier ist meine Einrichtung für Objectstore. Wir benutzen Mule 3.8.2.

Flowa

<?xml version="1.0" encoding="UTF-8"?> 
<mule xmlns:objectstore="http://www.mulesoft.org/schema/mule/objectstore" 
xmlns:db="http://www.mulesoft.org/schema/mule/db" xmlns:http="http://www.mulesoft.org/schema/mule/http" 
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/objectstore http://www.mulesoft.org/schema/mule/objectstore/current/mule-objectstore.xsd"> 
<db:oracle-config name="Oracle_Configuration" host="${db.host}" 
     port="${db.port}" instance="${db.instance}" user="${db.user}" 
     password="${db.password}" doc:name="Oracle Configuration" /> 
<objectstore:config name="ObjectStore__Connector" 
     doc:name="ObjectStore: Connector" /> 
<flow name="flowA"> 
    <poll doc:name="Poll"> 
     <fixed-frequency-scheduler frequency="20000" 
       startDelay="20000" /> 
     <db:select config-ref="Oracle_Configuration" doc:name="Database"> 
      <db:parameterized-query><![CDATA[select oprt_id from 
    table where column = 'Y']]></db:parameterized-query> 
     </db:select> 
    </poll> 
    <choice doc:name="Choice"> 
     <when expression="#[payload.size() &gt; 0]"> 
      <objectstore:store config-ref="ObjectStore__Connector" 
        key="keyName" value-ref="#[payload.toString()]" doc:name="ObjectStore" 
        overwrite="true" /> 
      <logger message="after storing #[payload]" level="INFO" 
        doc:name="Logger" /> 
     </when> 
     <otherwise> 
      <logger message="No data in table" level="INFO" doc:name="Logger" /> 
     </otherwise> 
    </choice> 
</flow> 
</mule> 

FlowB

<?xml version="1.0" encoding="UTF-8"?> 
<mule xmlns:objectstore="http://www.mulesoft.org/schema/mule/objectstore" 
xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" 
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/objectstore http://www.mulesoft.org/schema/mule/objectstore/current/mule-objectstore.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> 
<http:listener-config name="HTTP_Listener_Configuration" 
    host="0.0.0.0" port="40955" doc:name="HTTP Listener Configuration" /> 
<flow name="flowB"> 
    <http:listener config-ref="HTTP_Listener_Configuration" 
     path="/retrieve" allowedMethods="GET" doc:name="HTTP" /> 
    <logger message="#['Inside Flow A '+message]" level="INFO" 
     doc:name="Logger" /> 
    <objectstore:retrieve config-ref="ObjectStore__Connector" 
     doc:name="ObjectStore" key="keyName" /> 
    <logger message="#['ObjectStore Value='+payload]" level="INFO" 
     doc:name="Logger" /> 
</flow> 
</mule> 

Die Tabelle aktualisiert wird unabhängig SQL. FlowA-Datenbankabruf ruft die aktualisierten Zeilen in den Objektspeicher ab. Und FlowB zeigt die aktualisierten Werte im Objektspeicher korrekt an.

Wir können den Objektspeicher in der Domäne so konfigurieren, dass er für verschiedene Anwendungen freigegeben wird. Bitte überprüfen Sie die Domain sample configuration for objectstore

Verwandte Themen