2017-10-21 9 views
0

オブジェクトストアに格納されているキーの値をApp1から読み取ることができません。オブジェクトストアから別のアプリケーションで値を取得できません

私は2つのアプリケーションApp1を持っています。これは、変数の値(たとえば 'name')をある値(たとえば 'abc')に保存します。 App2からキーの値(ここでは 'name')を取得したかったのですが、常にorg.mule.api.store.ObjectDoesNotExistExceptionで失敗します。

両方のフローが同じアプリケーションにある場合は機能しますが、これは予想される動作ではありません。

両方のアプリケーションが同じランタイムで実行されているため、値を取得できる必要があります。以下は

は、アプリケーションの両方のためのApp2の

<flow name="objectstore2Flow"> 
    <http:listener config-ref="gcc-httpDomainListenerConfig" path="/store2" allowedMethods="GET" doc:name="HTTP"/> 
    <objectstore:retrieve config-ref="ObjectStore__Connector" key="name" doc:name="ObjectStore" targetScope="INVOCATION"/> 
    <logger message="Value of name from cache is : #[payload]" level="INFO" doc:name="Logger"/> 
</flow> 

オブジェクトストアの設定のためのApp1

<flow name="objectstore1Flow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/retrieve" allowedMethods="GET" doc:name="HTTP"/> 
    <set-variable value="abc" variableName="name" doc:name="Variable" /> 
    <objectstore:store config-ref="ObjectStore__Connector" key="name" value-ref="#[flowVars.name]" doc:name="ObjectStore" /> 
</flow> 

コードのために私のコードです:

は、いくつかのいずれかが私を導くことができる。ここで、私は間違っていますか?

答えて

1

主な理由は、アプリケーションが互いに独立しており、独自のメモリストアを使用してデータを保存することです。
したがって、app1がデータを格納するときは、独自のインメモリを使用しているため、app2では使用できません。
両方のアプリケーションが独自のオブジェクトストア設定を参照しています。

ドメインに単一オブジェクトストアを定義され、それがAPP1のようなそのすべての子アプリケーション間で共有されるドメインのプロジェクトになりますオブジェクトストアを共有するためのソリューション、APP2APP3など

は、あなたがそれを行うことができますどのようにここにステップに従ってください: - http://bushorn.com/dealing-with-store-the-object-store/

の永続化のObjectStore使用_defaultUserObjectStoreの永続オプションref:https://docs.mulesoft.com/mule-user-guide/v/3.9/object-store-connector#persistingdata

+0

私はbushorn.comに記載されている方法を試しましたが、うまくいきませんでした。あなたのコメントの後、私はスタジオを再起動してみましたが、不思議なことに今は動作しています。 私はそれがすでに存在することはできないと仮定しています。そうでなければ、私はObjectAlreadyExist Exceptionを持っていました。 あなたの提案をお寄せいただきありがとうございます。今すぐクラスタリングされたMuleボックスでこれをチェックしてください。 – user4338724

関連する問題