Тонкости туризма или почему я все еще не люблю SAP

Приходится мне иногда базисником подрабатывать. Системку поставить, подшаманить, то да се. Ничего сложного, так, разминка для мозгов. И САП стабильно меня ненавидит ответной ненавистью. Как и я его, впрочем. Стабильно эта *** раз в несколько лет не ставится на девственно чистую систему, будь то винда или линуха. В этот раз я купил сервер, поставил винду. Решил попробовать поставить MaxDB. До этого развлекался с Ораклом или MS SQL. Оракл капризный, но как танк. Мелкомягкий паинька, но скучный.

Так вот, MaxDB. Это какая-то хрень консольного типа с мордой на Eclipse. Поставилось молча, запустилось и пашет. Начал обновлять до последнего, как оно написало, что перевело базу в ADMIN потом в ONLINE режим и усе. ТИшина. Никаких признаков жизни, ничего. Ждал полдня — тишина. Ребутнул. Зря. Надо было ждать полдня и один час сверху, тогда оно бы обновилось. База на 100 гигов обновляется 5-10 часов. Это вам для справки, ибо в инете такой информации нет.

А чего я полез обновляться? Так я же САП не люблю, а он меня. Эта дрянь запустилась как отче наш с первого раза после установки. Сделал все рутиные операции, запустил SGEN и оно ушло в астрал. С тех пор уже неделю не поднимается. Не запускается шлюз, а из-за него диспетчер не хочет работать. И все.. Машинка на винде, висит на двух сетевых интерфейсах, хосты прописаны, резолвятся изнутри и снаружи. А шлюз не запускается, в логах тишина даже на rdisp/TRACE = 3. Сервис находит, порт тоже. А не биндится, и ничего про бинд не пишет. При этом других систем нет, порт никем не занят. Куда копать не знаю. Ненавижу САП. Ноты, форумы и прочее уже не помогают. Ядро самое последнее 7.45 510. База свежак.

Чушь какая-то. Поставил вторую систему рядом. Также один раз, самый первый запустилась, дошел до SGEN. Умерло. С тех пор и лежит. Зла не хватает.

Вылечилось. Оказывается MaxDB в отличие от правильных СУБД не умеет ругаться матом, когда ему места в базе не хватило. Он просто умирает. Оракл или MS SQL обматерили бы меня на всех языках. А этот ничего, терпит.


Устанавливаем соединение с внешним сервером

Привет.

В свое время мне нужно было сделать программу для вытаскивания данных из внешней базы данных в свои таблички. Оказалось, что это достаточно просто сделать.

В транзакции DBACOCKPIT создаем соединение с внешним сервером к базе данных.

А с помощью такого примера из ноты забираем данные:
EXEC SQL.
CONNECT TO ‘BSK’
ENDEXEC.
EXEC SQL.
SET CONNECTION ‘BSK’
ENDEXEC.
EXEC SQL.
SELECT db_name() INTO :DBN FROM SVERS
ENDEXEC.
WRITE: / ‘current database name’, DBN.
EXEC SQL.
SET CONNECTION DEFAULT
ENDEXEC.
EXEC SQL.
SELECT db_name() INTO :DBN FROM SVERS
ENDEXEC.
WRITE: / ‘current database name’, DBN.

Это обычный Native SQL в ABAP. Пара нот в помощь.

Note 178949 — MSSQL: Database MultiConnect
Note 323151 — Several DB connections with Native SQL