Насколько я знаю об Endeca, каждый раз, когда вы хотите добавить новое определение dgraph в свою конфигурацию Endeca, вам нужно запустить initializeServices.sh
, чтобы установить обновленную конфигурацию в EAC.
Мне было интересно, есть ли способ сделать это без запуска initalizeServices.sh
(поскольку он делает гораздо больше, чем просто обновляет список Dgraph, зарегистрированных в EAC, и я хочу предотвратить это).
Я обнаружил, что команда ./runcommand.sh --update-definition
позволяет вам вносить изменения в конфигурацию Dgraph, который уже был зарегистрирован в EAC, но если я добавлю новый dgraph в конфигурацию и запущу команду, произойдет сбой со следующей ошибкой:
[11.17.16 16:00:07] INFO: Setting definition for host 'MDEXLiveHost2'.
[11.17.16 16:00:07] SEVERE: Caught an exception while checking provisioning
Caused by com.endeca.soleng.eac.toolkit.exception.EacCommunicationException
com.endeca.soleng.eac.toolkit.host.Host setDefinition - Caught exception while setting host definition.
Caused by com.endeca.eac.client.ProvisioningFault
sun.reflect.NativeConstructorAccessorImpl newInstance0 - null
Я не могу найти подробные журналы создания этой ошибки в журналах PlatformServices для дальнейшей отладки.
Однако я мог видеть в журнале запросов, что /eac/ProvisioningService
дал HTTP-код 500
, что наводит меня на мысль, что скрипт пытается найти текущую конфигурацию MDEXLiveHost2
и не может ее найти.
ИЗМЕНЕНО, ЧТОБЫ ДОБАВИТЬ Конфигурацию для:
Новый хост:
<host id="MDEXLiveHost2" hostName="${mdexLive.host2}" port="${mdexLive.eac.port}" useSsl="false" />
Новый Дграф:
<dgraph id="DgraphLive2" host-id="MDEXLiveHost2" port="${dgraphLive1.port}"
post-startup-script="LiveDgraphPostStartup">
<properties>
<property name="restartGroup" value="A" />
<property name="updateGroup" value="a" />
<property name="DgraphContentGroup" value="Live" />
</properties>
<log-dir>./logs/dgraphs/DgraphLive</log-dir>
<input-dir>./data/dgraphs/DgraphLive/dgraph_input</input-dir>
<update-dir>./data/dgraphs/DgraphLive/dgraph_input/updates</update-dir>
</dgraph>
ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ ошибок после ручного добавления хоста с помощью eaccmd.sh
Файл определения хоста:
<host host-id="MDEXLiveHost2" host-name="172.18.0.7" port="9999" useSsl="false"/>
Хост успешно добавлен (проверено через describe-app
)
$./eaccmd.sh describe-app --app myapp | grep MDEXLiveHost2
<host host-name="172.18.0.7" port="9999" host-id="MDEXLiveHost2" useSsl="false">
Но при выполнении любой команды я получаю эту ошибку:
[11.18.16 11:00:58] INFO: Updating provisioning for host 'MDEXLiveHost2'.
[11.18.16 11:00:58] INFO: Host name of host 'MDEXLiveHost2' has changed from 172.18.0.7 to 172.18.0.7 . Components on this host will be re-provisioned.
[11.18.16 11:00:58] INFO: Updating definition for host 'MDEXLiveHost2'.
[11.18.16 11:00:58] SEVERE: Caught an exception while checking provisioning.
Caused by com.endeca.soleng.eac.toolkit.exception.EacCommunicationException
com.endeca.soleng.eac.toolkit.host.Host updateEacDefinition - Caught exception while updating host definition.
Caused by com.endeca.eac.client.ProvisioningFault
sun.reflect.NativeConstructorAccessorImpl newInstance0 - null
Если бы только эту ошибку можно было сделать более подробной, это могло бы помочь.