У меня есть один поток (A) с опросом как источник с логикой преобразования и сохранение данных результата в Mule Object Store Connector, перезаписывая последнее значение. Всякий раз, когда я пытался получить (используя соединитель ObjectStore) значение в другом потоке (B). Примечание: поток (B) не вызывается из потока A. Я могу получить значение из него в первый раз. В следующий раз при каждом опросе мы должны получить последнее значение, и мы получаем последнее значение в потоке A. всякий раз, когда мы извлекаем (используя соединитель ObjectStore) для последнего значения. Он дает только последнее значение, которое хранит хранилище объектов. Не могли бы вы предложить решение для этого.Соединитель объекта StoreStore в mule
0
A
ответ
0
Это моя установка для Objectstore. Мы используем 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() > 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>
таблица обновляется с помощью SQL самостоятельно. Опрос базы данных FlowA получает обновленные строки в хранилище объектов. И FlowB правильно показывает обновленные значения в объектном магазине.
Мы можем настроить объект-магазин в домене, который будет использоваться для разных приложений. Пожалуйста, проверьте Domain sample configuration for objectstore