18 августа 2009 г.

SAP GUI for Java

Помимо SAP GUI для Windows, компания SAP поставляет клиентское место SAP GUI, работающее как апплет виртуальной машины Java. На данный момент есть одна версия SAP GUI for Java - 7.10. Скачать можно с официального ftp сервера SAP или с SAP Support Portal. Установив предварительно Sun Java VM, можно установить данное ПО на следующие ОС:
  • Windows
  • MAC OS X
  • Unix-like (AIX, HP-UX, Solaris, Linux)
Для тестирования я установил в качестве виртуальной машины на свой ноутбук Sun VirtualBox, скачал и установил на неё Ubuntu Linux. Установил пакеты с Sun Java, согласно требованиям SAP, которые указаны в документации, что идет к дистрибутиву с SAP GUI for Java. Надо заметить, что документация очень подробная и полезная. И установил собственно SAP GUI for Java 7.10 командой:

# java -jar PlatinGUILNX_9.JAR install


Если все рекомендации перед установкой выполнены, то запустится графическое приложение по установке клиентского места SAP GUI for Java. После установки в директории /home/user/SAPClients/ будут находиться файлы приложения. Запускаемым файлом является /home/user/SAPClients/SAPGUI7.10rev9/bin/guilogon. Это shell-скрипт, который и запускает SAPLogon:


Самое основное чем отличается эта версия SAP GUI от SAP GUI под Windows, и на какую тему часто задают вопросы - это создание записи соединения с системой SAP. Остановлюсь на этом поподробнее.
Есть два способа создания соединения. Первый - через файл настройки. Данный файл с названием connections находится в директории /home/user/.SAPGUI/. В Windows файл настройки находится в директории С:\Documents and Settings\user\SAPGUI\. Для примера содержимое файла с двумя записями выглядит следующим образом:



В первой записи TTM - это SID системы, 10.239.1.19 - IP адрес сервера приложений, 3200 - порт сервера (3200 + номер системы).
Сложнее конструкция при использовании SAP router и Message server-а с LOGON группами. Это вторая запись. Здесь. 10.239.1.1 и порт 3299 - координаты SAP router-а. 10.200.1.10 и 3600 - IP адрес и порт Message server-а центральной инстанции. ADMIN - LOGON группа данной системы. Я думаю, что разбора этих двух строчек будет достаточно, чтобы прописать большинство возможных соединений, которые будут у вас. Для детальной информации смотрите раздел документации 9. Technical Background -> 1. Connection Strings.
Кстати, данная документация входит в состав установленного клиентского места SAP GUI for Java и доступна через пункт меню Help -> Help Contents основного окна программы.

Второй способ - через меню Connection -> New... -> закладка Advanced, устанавливаете галочку Expert Mode. В поле Description вводите название системы (SID), а в открывшемся поле после "conn=" ту же строчку, что и в файле настроек соединений, описанном выше.

Окна системы в SAP GUI for Java выглядят следующим образом:




Данное клиентское место вполне работоспособно и почти ничем не отличается от SAP GUI для Windows. И это позволяет использовать на рабочих местах пользователей в качестве ОС Mac OS X, Linux и т.п.

Автор: Шиболов Вячеслав Анатольевич


6 августа 2009 г.

Тестирование соединения с SAP системой

Если вы хотите проверить наличие соединения с SAP системой, протестировать надежность и скорость канала связи, то, знакомьтесь, - полезная утилита niping.
На сервере приложений SAP утилиту можно найти в директории с SAP ядром. Для начала необходимо запустить серверную часть командой:
 # niping -s -I 0  

На клиентской машине, с которой вы хотите проверить соединение, тоже необходимо запустить эту утилиту, но с другими параметрами. Найти её можно в директории куда установлена программа SAP GUI - С:\Program Files\SAP\FrontEnd\SAPgui\.
Если хотите просто проверить соединение, то запускаете так - niping.exe -c -H 10.239.1.19 (после опции -H указываете IP адрес сервера приложений).
Если соединение есть, то вы увидите примерно такую картину:


А дальше можно использовать ряд опций:
-B - задает размер пакетов данных для обмена, в байтах;
-L - количество переданных пакетов данных;
-D - временные задержки между пакетами.

Вы можете играть этими параметрами. Если хотите протестировать скорость соединения - задавайте большой размер пакета данных. Если хотите протестировать надежность сети - большое количество относительно небольших пакетов данных. Информация после работы утилиты - задержки и скорость передачи данных. Подробности в SAP note # 500235.

И еще. Если вы работаете с системой через SAP router, то в качестве адреса сервера приложений используйте следующую конструкцию:
-H /H/IP_router/H/IP_server

Хороших вам выходных с близкими людьми! :)

Автор: Шиболов Вячеслав Анатольевич


29 июля 2009 г.

Введение в Unix


Набрел на днях в очередной раз на раздел, посвященный Unix, в библиотеке у Максима Мошкова. Ознакомиться можно тут. Есть информация общая по Unix и конкретно по HP-UX, Linux, SunOS, FreeBSD.
Мне кажется, ссылка будет полезна тем, кто только начинает знакомиться с Unix и ищущим "фишечки" определенной версии системы.

Автор: Шиболов Вячеслав Анатольевич


24 июля 2009 г.

Отказоустойчивый кластер MC/ServiceGuard

Если Вы попали на проект, где есть отказоустойчивый кластер на базе ПО HP MC/ServiceGuard, а Вы никогда с таким не сталкивались, то этот пост Вам поможет.
Отказоустойчивый кластер от HP абсолютно прозрачен. У вас есть 2 или более серверов, которые называются нодами или узлами кластера. У серверов общий дисковый массив (VolumeGroups переводятся в статус кластерных и активируются только кластером). Единицей кластера является пакет. В пакет входит ваше ПО (команды старта и останова), команды активации и монтирования файловых систем с общего дискового массива и виртуальный сетевой интерфейс, через который и работают пользователи с системой. Кластерное ПО отслеживает состояние всех нод кластера. Если основной узел целиком или частично(диски, сетевой интерфейс) теряет работоспособность, то пакет на нем останавливается (если это еще необходимо) и запускается на резервном узле кластера (см. рисунок). Этот процесс называется перетеканием. Пакетов в кластере может быть несколько.


Теперь от теории перейдем к практике. Куда смотреть:
  • Команда cmviewcl на любом узле кластера. Показывает информацию о названии и состоянии кластера, пакета и узлов.
  • Директория /etc/cmcluster - хранит все настройки кластера и пакетов.
  • В качестве журнала для сообщений кластерное ПО использует системный лог - /var/adm/syslog/syslog.log.
  • Журнал пакета следует искать в поддиректориях /etc/cmcluster. Имеет вид *.cntl.log.
  • Автостарт кластера настраивается в файле /etc/rc.config.d/cmcluster. В ручную запускается командой cmruncl.
  • Старт и останов пакета - командами cmrunpkg и cmhaltpkg. Подробности в руководстве man ОС.
Надеюсь, этот пост даст Вам начальные знания по данной теме. А дальше дело за Вами.
В учебном центре HP в Москве читают курс H6487S - HP ServiceGuard. Есть возможность - стоит сходить. Если к тому же попадете к Максиму Мошкову, как я в свое время, не пожалеете. :)

Автор: Шиболов Вячеслав Анатольевич


23 июля 2009 г.

Решение проблем с транспортной системой


Самое гениальное, что есть в системе SAP и что кочует практически неизменным из версии в версию, это транспортная система (TMS). И действительно, зачем менять прозрачный и отлаженный механизм? :)
Но время от времени и в такой идеальной системе возникают проблемы. Как у меня сегодня утром. Перестали импортироваться запросы в тестовую систему. Перелопатил всё что можно, пока докопался до причины. Решил написать памятку для коллег. И так,
  • Транзакция STMS. Входите в очередь нужной системы и там изучаете пункты меню "Перейти к". Особенно пункты "Монитор импорта" и системный журнал программы tp.
  • Таблица E070L. Содержит номер последнего запроса в системе. Можно сделать скачок в будущее :) Подробности в SAP Note # 12799.
  • Таблица TMSTLOCKR. Хранит блокировки импортируемых в данный момент запросов.
  • Таблицы TRBAT и TRJOB. Временные записи во время импорта.
  • Фоновые задания RDDIMPDP. Смотреть выполняются или нет, почему. Планирование заданием RDDNEWPP в 000 манданте. Подробности в SAP Note # 26966.
  • На уровне ОС файловая система /usr/sap/trans и поддиректории. Полномочия, права, свободное место.
  • Процессы tp на уровне ОС.
Есть хороший курс по транспортной системе (TMS) - ADM325. Рекомендуется минимум прочитать самостоятельно.

P.S. А моя проблема была в старой записи в табличке TRJOB. Кстати, очистить такую рабочую табличку от всех записей можно через транзакцию SE14. Вписываете имя объекта. Нажимаете кнопку "Edit" и, выбрав "Delete data", жмёте "Activate and adjust database". Опля! И табличка пустая.


Автор: Шиболов Вячеслав Анатольевич


15 июля 2009 г.

Журналы SAP-системы


Основной системный журнал SAP системы можно увидеть запустив транзакцию SM21 (Tools -> Administration -> Monitoring -> System Log). Отображаются сообщения с текущей SAP-инстанции. Записи журнала считываются из файла, который задан параметром rslg/local/file. По умолчанию, /usr/sap/<sid>/<Instance_name>/log/SLOG<instance_number>. Параметр rslg/max_diskspace/local задает размер файла системного журнала. По умолчанию, 500000. После заполнения - старые записи удаляются. Размер одной записи 192 байта. Можно собирать записи журналов со всех серверов приложений на центральной инстанции. Для этого необходимо выставить ряд параметров. Подробности на SAP Help Portal.

Транзакция ST22 - просмотр ABAP-дампов системы. Можно через меню "Перейти к -> Реорганизовать" установить срок хранения дампов. Величина срока хранения дампов зависит от частоты анализа Ваших систем. Обычно, 7 дней вполне достаточно. Дампы хранятся в таблице SNAP.

Можно включить Security Audit Log системы. Из данного журнала можно увидеть удачные и неудачные входы пользователей в систему, блокировку пользователей, запуск транзакций, отчетов, изменения основных записей пользователей. Временно включается в транзакции SM19. Постоянно параметром rsau/enable=1. Параметр rsau/local/file задает директорию где будут хранится журналы. По умолчанию, /usr/sap/<sid>/<Instance_name>/log/audit_<instance_number>. Через параметр rsau/max_diskspace/local задается размер аудит-файла за день. Просмотр журнала через транзакцию SM20. Удаление старых журналов - транзакция SM18.

Также есть возможность активировать аудит изменений в таблицах. В профиле прописать параметр rec/client = XXX (номер манданта). Можно задать несколько мандантов через запятую. Для нужных таблиц в SE11 в технических параметрах настройки включить "журнал изменений". Просмотр аудита - транзакция SCU3. Журнал аудита хранится в таблице DBTABLOG.

Я описал здесь не все журналы. Помните, что любое журналирование, особенно дополнительное, в той или иной степени уменьшает производительность системы.

Автор: Шиболов Вячеслав Анатольевич


10 июля 2009 г.

Особенность работы HP EVA-5000


Сегодня утром столкнулся с неприятной особенностью работы дискового массива HP EVA-5000. Перед выключением оборудования был сбой в батареях резервного питания кэша одного из контроллеров. После остановки массива и включения его вновь, оказалось, что теперь и на втором контроллере не работают батареи кэша. В результате такой коллизии - дисковый массив виден с управляющего сервера через CommandView EVA, но ни один из виртуальных дисков серверам не доступен. Что я только не пробовал (с) :) На массиве, кроме предупреждений, что батарея кэша на обоих контроллерах не доступна и система не сможет проработать ни минутки после отключения питания, ни одного сообщения об ошибках не было. Но ни старые виртуальные диски, ни новые не были видны извне.

И только после того, как инженер HP поменял батареи на одном из контроллеров дискового массива, диски появились на серверах, куда были презентованы.

Дело мне кажется в том, что кэши на контроллерах используются для записи и чтения. В режиме чтения внезапное прекращение подачи питания на дисковый массив совершенно не страшно. А вот для режима записи это черевато получением неконсистентных данных. Поэтому при отсутствии поддержки резервным питанием кэша одного из контроллеров этот контроллер работает только на чтение, а все операции записи производятся через второй рабочий контроллер. Потому что при таком предупреждении, как сбой в батареях резервного питания кэша одного из контроллеров, сильного провала производительности не наблюдается. А вот когда оба контроллера находятся в одинаковом плачевном состоянии, EVA просто перестает давать доступ к дискам, перестраховываясь на случай сбоя подачи питания и получения неконсистентности в данных на массиве. Это все мои домыслы, но практика показывает, что примерно так и есть. Так ли себя ведут дисковые массивы серий EVA 6XXX и 8XXX я не знаю, но есть подозрение, что так же.

Вывод один: держи ноги в тепле, а оборудование полностью работоспособным. :)

Автор: Шиболов Вячеслав Анатольевич