2017-10-21 20 views
0

App1에서 객체 저장소에 저장된 키 값을 읽을 수 없습니다.뮬에서 다른 응용 프로그램의 객체 저장소에서 값을 검색 할 수 없습니다.

나는 변수의 값을 저장하는 App1 (예 : 'name')을 일부 값 (예 : 'abc')에 저장합니다. App2에서 키 값 (우리의 경우 'name')을 가져오고 싶었지만 항상 org.mule.api.store.ObjectDoesNotExistException으로 실패합니다.

두 앱 모두 동일한 앱에있는 경우 작동하지만 예상 한 동작이 아닙니다.

두 응용 프로그램은 모두 동일한 런타임에서 실행되므로 값을 검색 할 수 있어야합니다. 다음은

응용 프로그램 모두를위한 앱 2

<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> 

객체 저장소 구성을위한 앱 1

<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> 

코드에 대한 내 코드입니다 :

<objectstore:config name="ObjectStore__Connector" partition="name_value" doc:name="ObjectStore: Connector"/> 

어떤 사람은 나를 인도 할 곳 내가 잘못 가고있어?

답변

1

주된 이유는 응용 프로그램이 서로 독립적이며 자체 메모리 저장소를 사용하여 데이터를 저장하기 때문입니다.
따라서 app1이 데이터를 저장하는 경우 자체 메모리를 사용하므로 app2에는 사용할 수 없으므로 자체 메모리에 저장됩니다.
두 앱 모두 자체 Object Store 설정을 참조합니다.

도메인에 단일 객체 저장소를 정의되며, 그 APP1 같은 모든 자식 응용 프로그램간에 공유됩니다 도메인 프로젝트가 될 것이다 객체 저장소를 공유 할 수있는 솔루션 APP2, 앱 3

당신이 그것을 할 수있는 방법을 여기에 단계를 따르십시오 - http://bushorn.com/dealing-with-store-the-object-store/ 지속 ObjectStore 사용 _defaultUserObjectStore를 들어

영구 옵션 참조 : https://docs.mulesoft.com/mule-user-guide/v/3.9/object-store-connector#persistingdata

+0

나는 bushorn.com에서 언급 한 방법을 시도했지만 효과가 없었습니다. 귀하의 의견을 후, 나는 스튜디오를 다시 시작한 후 이상하게 작동합니다. 나는 그것이 이미 존재할 수 없다고 가정하고, 그렇지 않으면 내가 ObjectAlreadyExist Exception을 가졌을 것이고, 나는 이전에 잘못한 것일 수있다. 제안 해 주셔서 감사합니다. 이제 클러스터 된 뮬 상자에서 지금 확인해보십시오. – user4338724