Проблема запуска оболочки DB2 - PullRequest
0 голосов
/ 17 июня 2019

Когда я запускаю оболочку в экземпляре DB2.

VAR=`db2 CONNECT TO ${DBNAME} ${DBUSRSTR}`

if [ ! $? -eq 0 ]; then
  logErr ${MSG002E}
  logErr ${VAR}
  exit 2
fi
logInfo "【2】 DB2 connect " $?
logInfo ${VAR}


db2 set current schema TEST
if [ ! $? -eq 0 ]; then
  logErr ${MSG002E}
  exit 2
fi

2019-06-17 03:32:03,123 INFO [test.sh] 【2】 DB2 connect: 0
2019-06-17 03:32:03,124 INFO [test.sh] Database Connection Information Database server = DB2/LINUXX8664 10.5.5 SQL authorization ID = DB2INST1 Local database alias = TEST
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1024N  A database connection does not exist.  SQLSTATE=08003
2019-06-17 03:32:04,127 ERR [test.sh] 

Я не знаю, почему это связано с успехом ... но не могу выполнить sql?

Я пробую это в команде db2.

db2 =>

Работало нормально. Но в оболочке. это не удалось.

1 Ответ

0 голосов
/ 17 июня 2019

Результат ожидаемый.Процессор командной строки Db2 открывает новый интерфейсный процесс всякий раз, когда он вызывается.В зависимости от того, как он вызывается, используется один и тот же или другой внутренний процесс.Если он отличается, это будет другое соединение.

Поскольку вы оцениваете вызов Db2 в подпроцессе процесса сценария оболочки, каждый раз, когда задействован другой внутренний процесс.Следовательно, вам потребуется новое соединение с базой данных.

Попробуйте открыть соединение как часть процесса оболочки, а не как подпроцесс.Вам нужно изменить дизайн потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...