Проблемы при запуске TIBCO EMS по SSH

Всем привет,

У меня возникла проблема при попытке автоматизировать процесс запуска / остановки TIBCO EMS через другой сервер с помощью команды SSH.

Мой сценарий содержит следующую команду, которая выполняется из SERVER_01 на EMS_SERVER_01 и EMS_SERVER_02 (вторичный) для запуска экземпляра EMS 8064:

[tibco@SERVER_01 ~]$ ssh tibco@EMS_SERVER_02 "cd /opt/tibco/TIBCOHOME1/ems/8.1/bin;nohup ./tibemsd64 -config "/opt/tibco/CFS/AMX01/BPM_B8064/tibemsd_1178.conf" > /dev/null 2>&1 &"

EMS_SERVER_01 запускается без проблем, но EMS_SERVER_02 получает следующие ошибки, когда мы выполняем предыдущую команду:

TIBCO Enterprise Message Service.
Copyright 2003-2014 by TIBCO Software Inc.
All rights reserved.

Version 8.1.0 V10 4/11/2014

2018-07-31 17:40:59.514 Process started from './tibemsd64'.
2018-07-31 17:40:59.516 Process Id: 25251
2018-07-31 17:40:59.516 Hostname: EMS_SERVER_02 
2018-07-31 17:40:59.516 Hostname IP address: 16.
2018-07-31 17:40:59.516 Hostname IP address: 16.
2018-07-31 17:40:59.516 Reading configuration from '/opt/tibco/CFS/AMX01/BPM_B8064/tibemsd_1178.conf'.
2018-07-31 17:40:59.516 Logging into file '/opt/tibco/CFS/AMX01/logs/ems_EMS_SERVER_02_8064_secondary.log'
2018-07-31 17:40:59.513 ERROR: Initialization failed: storage for '$QTCA01' not found.
2018-07-31 17:40:59.516 Active server 'tcp://EMS_SERVER_02:8064' not found.
2018-07-31 17:40:59.516 Server is re-entering standby state.
2018-07-31 17:40:59.663 Java Version 1.7.0.01
2018-07-31 17:40:59.670 Server name: 'BPM_B8064'.
2018-07-31 17:40:59.670 Storage Location: '/opt/tibco/CFS/AMX01/BPM_B8064/datastore'.
2018-07-31 17:40:59.670 Routing is enabled.
2018-07-31 17:40:59.670 Flow Control is enabled.
2018-07-31 17:40:59.670 Authorization is enabled.
2018-07-31 17:41:00.850 Secure Socket Layer is enabled, using OpenSSL 0.9.8y-fips 5 Feb 2013
2018-07-31 17:41:00.874 WARNING: Unable to initialize fault tolerant connection, remote server returned 'connect failed: server not in active state'
2018-07-31 17:41:00.874 Continuing as active server.
2018-07-31 17:41:00.872 [BPM_B8064@EMS_SERVER_02 ]: connect failed: server not in active state
2018-07-31 17:41:00.876 Accepting connections on tcp://EMS_SERVER_02:8064.
2018-07-31 17:41:00.879 Accepting connections on ssl://EMS_SERVER_02:8065.
2018-07-31 17:41:00.879 Recovering state, please wait.
2018-07-31 17:41:01.130 SEVERE ERROR: Unable to open store [$QTCA01]: [ ESTATUS = 230, ERRSTR = java.lang.UnsatisfiedLinkError: no ocijdbc11 in java.library.path ]
2018-07-31 17:41:01.136 ERROR: Initialization failed: storage for '$QTCA01' not found.
2018-07-31 17:41:01.136 FATAL: Exception in startup, exiting.

... и процесс не запускается.

Странно то, что если я сначала подключаюсь к серверу EMS_SERVER_02, а потом выполняю команду, процесс запускается без проблем:

[tibco@SERVER_01 ~]$ ssh EMS_SERVER_02 
*******************************************************************
*******************************************************************
Login successfully: EMS_SERVER_02  
*****************************************************************
*****************************************************************
Last login:  31 Jul 18:32
$ cd /opt/tibco/TIBCOHOME1/ems/8.1/bin;nohup ./tibemsd64 -config "/opt/tibco/CFS/AMX01/BPM_B8064/tibemsd_1178.conf" > /dev/null 2>&1 &
[1]     28410
$ ps -ef | grep 8064
   tibco 28410     1  0 18:34:22 pts/1     0:05 ./tibemsd64 -config 
TIBCO Enterprise Message Service.
Copyright 2003-2014 by TIBCO Software Inc.
All rights reserved.

Version 8.1.0 V10 4/11/2014

2018-07-31 18:34:22.984 Process started from './tibemsd64'.
2018-07-31 18:34:22.985 Process Id: 28410
2018-07-31 18:34:22.985 Hostname: EMS_SERVER_02
2018-07-31 18:34:22.985 Hostname IP address: 16.
2018-07-31 18:34:22.985 Hostname IP address: 16.
2018-07-31 18:34:22.985 Reading configuration from '/opt/tibco/CFS/AMX01/BPM_B8064/tibemsd_1178.conf'.
2018-07-31 18:34:22.985 Logging into file '/opt/tibco/CFS/AMX01/logs/ems_EMS_SERVER_02_8064_secondary.log'
2018-07-31 18:34:23.149 Java Version 1.7.0.01
2018-07-31 18:34:23.152 Server name: 'BPM_B8064'.
2018-07-31 18:34:23.152 Storage Location: '/opt/tibco/CFS/AMX01/BPM_B8064/datastore'.
2018-07-31 18:34:23.152 Routing is enabled.
2018-07-31 18:34:23.153 Flow Control is enabled.
2018-07-31 18:34:23.153 Authorization is enabled.
2018-07-31 18:34:24.333 Secure Socket Layer is enabled, using OpenSSL 0.9.8y-fips 5 Feb 2013
2018-07-31 18:34:24.357 WARNING: Unable to initialize fault tolerant connection, remote server returned 'connect failed: server not in active state'
2018-07-31 18:34:24.357 Continuing as active server.
2018-07-31 18:34:24.355 [BPM_B8064@EMS_SERVER_02]: connect failed: server not in active state
2018-07-31 18:34:24.358 Accepting connections on tcp://EMS_SERVER_02:8064.
2018-07-31 18:34:24.362 Accepting connections on ssl://EMS_SERVER_02:8065.
2018-07-31 18:34:24.362 Recovering state, please wait.
2018-07-31 18:34:26.239 Store '$QTCA01' locked by 'BPM_B8064'
2018-07-31 18:34:26.755 Recovered 5 messages.
2018-07-31 18:34:26.781 Server is active.
2018-07-31 18:34:29.936 Missing heartbeats from active server 'tcp://EMS_SERVER_02:8064'.
2018-07-31 18:34:29.941 Server activating on failure of 'tcp://EMS_SERVER_02:8064'.
2018-07-31 18:34:29.941 Server rereading configuration.
2018-07-31 18:34:30.387 Recovering state, please wait.
2018-07-31 18:34:30.389 SEVERE ERROR: Unable to open store [$QTCA01]: [ ESTATUS = 230, ERRSTR = java.lang.UnsatisfiedLinkError: no ocijdbc11 in java.library.path ]
2018-07-31 18:34:30.390 ERROR: Unable to open store file '/opt/tibco/CFS/AMX01/BPM_B8064/datastore/async-msgs.db', file may be locked.
2018-07-31 18:34:30.391 ERROR: Unable to open store file '/opt/tibco/CFS/AMX01/BPM_B8064/datastore/sync-msgs.db', file may be locked.
2018-07-31 18:34:30.392 ERROR: Unable to open store file '/opt/tibco/CFS/AMX01/BPM_B8064/datastore/meta.db', file may be locked.
2018-07-31 18:34:30.392 ERROR: Initialization failed: storage for '$QTCA01' not found.
2018-07-31 18:34:30.393 Server is re-entering standby state.
2018-07-31 18:34:30.394 Standby server 'BPM_B8064@EMS_SERVER_01' has connected.

Мне не хватает какой-то конфигурации? Или я что-то не так делаю?

Буду признателен за вашу помощь в этом.


person Community    schedule 31.07.2018    source источник
comment
ваш звонок в ./tibemsd64 .... > /dev/null 2>&1 & отбрасывает возможно важные сообщения об ошибках. Я бы перенаправил, как > /tmp/timbmscd64.log 2>&1, а затем изучил бы это. Основываясь на проблемах пути, перечисленных как ошибки, между двумя средами, в которых вы их запускаете, почти наверняка что-то различается. env > $HOSTNAME.env в верхней части сценария, а затем сравните файлы с обеих машин. Не уверен, что TIBCO поможет в решении подобной проблемы, но также стоит открыть заявку (если вы еще не пробовали). Просто общий совет, никакого опыта в tibco. Удачи.   -  person shellter    schedule 01.08.2018
comment
У ваших двух конфигураций установлен ft_active? Он должен указывать на IP-адрес «другого демона EMS» - также проверьте это руководство: tutorialspedia.com/   -  person Axel Podehl    schedule 01.08.2018
comment
@shellter спасибо за ваш комментарий, я перенаправил вывод в файл, а также понял, что переменные env разные в обоих сценариях   -  person    schedule 02.08.2018


Ответы (2)


Ошибка связана с хранилищем данных Oracle:

java.lang.UnsatisfiedLinkError: нет ocijdbc11 в java.library.path

А также хранилище файлов по умолчанию во втором журнале: просто убедитесь, что папка существует и доступна для записи пользователю Linux, запускающему EMS.

Вы должны знать, что обычно хранилище данных JDBC снижает производительность EMS. Это также добавляет уровень сложности, который, скорее всего, потерпит неудачу: например, tablespace full, oracle fs full. Как только EMS не может писать в хранилище, происходит переключение на другой экземпляр.

Несколько рекомендаций:

  • Поместите сценарии запуска в сценарий, например start-ems.sh
  • Удалите хранилище с помощью OCI JDBC и забудьте о нем, и пусть оно будет работать со стандартным хранилищем файлов. (Общий ресурс NFSv4 может выполнять эту работу, предпочтительно GFS)
  • исправить проблему с хранилищем файлов
  • Для amxbpm не используйте учетную запись администратора EMS, а создайте обычного пользователя с правильными настройками (см. Документацию по установке)
  • переименуйте tibemsd.conf следующим образом: tibemsd-AMXBPM-8064.conf, вот так, в «ps» вы знаете, для чего предназначен ems.
person Thomas    schedule 02.08.2018

Возможно, ваше общее хранилище данных повреждено из-за разрыва сети.

Итак - остановите все экземпляры ems - сделайте резервную копию файлов хранилища данных (.db) - удалите файл хранилища данных ( .db) - перезапустите экземпляры ems

person B2B    schedule 04.03.2020