Хорошо, я верю, что все понял.Я использовал ActiveMQ в качестве своего JMS-брокера, чтобы настроить его, поэтому в Ofbiz приведены шаги, чтобы заставить его работать:
1.Скопируйте activemq-all.jar в папку framework / base / lib внутри вашего базового каталога Ofbiz.
2.Изменить файл базы / config / jndiservers.xml: добавить следующее определение внутритег:
<jndi-server name="activemq"
context-provider-url="failover:(tcp://jms.host1:61616,tcp://jms.host2:61616)?jms.useAsyncSend=true&timeout=5000"
initial-context-factory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
url-pkg-prefixes=""
security-principal=""
security-credentials=""/>
3.Редактировать файл base / config / jndi.properties: добавить в конце эту строку:
topic.ofbiz-cache=ofbiz-cache
4.Редактировать файловый сервис / config / serviceengine.xml: добавить следующее определение внутритег:
<jms-service name="serviceMessenger" send-mode="all">
<server jndi-server-name="activemq"
jndi-name="ConnectionFactory"
topic-queue="ofbiz-cache"
type="topic"
listen="true"/>
</jms-service>
5.Изменить файл entityengine.xml: изменить делегат по умолчанию, чтобы включить распределенное кэширование:
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="true">
6.Редактировать Файловый фреймворк / service / src / org / ofbiz / service / jms / AbstractJmsListener.java: Это, вероятно, ошибка в коде Ofbiz
Измените следующую строку с:
this.dispatcher = GenericDispatcher.getLocalDispatcher("JMSDispatcher", null, null, this.getClass().getClassLoader(), serviceDispatcher);
Кому:
this.dispatcher = GenericDispatcher.getLocalDispatcher("entity-default", null, null, this.getClass().getClassLoader(), serviceDispatcher);
7.И, наконец, создайте код serviceengine, введя следующую команду:
ant -f framework/service/build.xml
С этим изменением сущности данные в Ofbiz в одном экземпляре немедленно распространяются на все другие экземпляры Ofbiz, самостоятельно очищая позицию кэша безлюбая необходимость очистки кэша вручную.
Cheers.