Воскресенье, 19.11.2017, 02:02
Приветствую Вас Гость | RSS
Главная | Вызов системной функции или скрипта REXX из сервлета на JAVA - Страница 2 - Форум | Регистрация | Вход
Форма входа
Логин:
Пароль:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 3«123»
Форум » Технические форумы » MVS (OS/390, zOS) » Вызов системной функции или скрипта REXX из сервлета на JAVA
Вызов системной функции или скрипта REXX из сервлета на JAVA
liksДата: Пятница, 13.08.2010, 18:18 | Сообщение # 16
Рядовой
Группа: Проверенные
Сообщений: 16
Репутация: 0
Статус: Offline
Feature pack for modern batch. Оно?
 
kag46Дата: Пятница, 27.08.2010, 15:27 | Сообщение # 17
Рядовой
Группа: Проверенные
Сообщений: 11
Репутация: 0
Статус: Offline
Quote
Добрый день!
Если еще актуально, то смотреть в сторону JZOS, который встроен в IBM JDK for z/OS
Корневая ссылка: http://www-03.ibm.com/systems....ew.html
Javadoc: http://www.ibm.com/developerworks/java/zos/javadoc/jzos/index.html

Добраться до RACF нужно пробовать через com.ibm.jzos.Exec
Работать это естественно будет только в среде z/OS.

Если нужен полностью самописный вариант, то вызывать RACF через JNI.

пытаюсь пока с этим разобраться, но пока безуспешно - там вроде написано что можно вызывать, а как я не разобрался еще(.

Есть еще вопрос - что такое

Quote
вызывать RACF через JNI
?? и чем это может помочь?
 
EHabarovДата: Понедельник, 30.08.2010, 10:35 | Сообщение # 18
Майор
Группа: Доверенные
Сообщений: 85
Репутация: 7
Статус: Offline
Quote (kag46)
Quote (EHabarov)

вызывать RACF через JNI

?? и чем это может помочь?

JNI - Java Native Interface.
Позволяет Java-программе вызывать программы, написанные на платформенных языках программирования.
Т.е. в Java-программе мы обращаемся к двоичной библиотеке (самостоятельно написанной, например на C), в которой реализован код, вызывающий функции RACF.

Да, вот ссылки на Redbook-и по теме. Там и про JZOS, и про JNI и про многое другое.
Java Stand-alone Applications on z/OS, Volume I
Java Stand-alone Applications on z/OS, Volume II

 
kag46Дата: Понедельник, 30.08.2010, 16:04 | Сообщение # 19
Рядовой
Группа: Проверенные
Сообщений: 11
Репутация: 0
Статус: Offline
EHabarov
спасибо! буду изучать.

Добавлено (30.08.2010, 16:04)
---------------------------------------------
сразу же вопрос на засыпку - как вызвать из c/c++ ( желательно ++) функции RACF.и вообще возможно ли это - на картинке в методичке http://twitpic.com/2jn87o нет самого RACF
Правда JNI использовать в JEE IBM не рекомендует...

 
XOpenДата: Вторник, 31.08.2010, 20:11 | Сообщение # 20
Генерал-майор
Группа: Администраторы
Сообщений: 322
Репутация: 4
Статус: Offline
API RACF для C не существует. Посему:
1. Из Си создаем TSO среду(IKJEFT01) и вызываем RACF TSO команды
или
2. Пишем сразу на асме, благо там все просто(RACROUTE) и в книгах есть примеры. (что нетипично обычно для IBM)

зы: но мне кажется лучше использовать тот заточенный жава класс указанный выше.

 
EHabarovДата: Среда, 01.09.2010, 14:46 | Сообщение # 21
Майор
Группа: Доверенные
Сообщений: 85
Репутация: 7
Статус: Offline
Появилась пара свободных минут, решил поэкспериментировать.

У класса com.ibm.jzos.Exec есть метод main, что позволяет его попробовать без написания собственного кода.
С помощью этого класса можно выполнить практически любую команду OMVS. Однако, команды RACF являются командами TSO.
Пробовал варианты на команде LISTUSER.


  • Запуск напрямую "LISTUSER" дал IOException, ибо нет такой программы в OMVS.
  • Запуск через "/bin/tso LISTUSER" дал ошибку, ошибка такая:
    IKJ56652I You attempted to run an authorized command or program. This is not supported under the Dynamic TSO Environment.
  • Запуск через "rac" (The rac command) отлично сработал.

Вот команда для выполнения в Shell:
Code
/usr/lpp/java/J5.0/bin/java com.ibm.jzos.Exec /bin/rac LISTUSER

PS: Если нужно, могу дать JCL задание на запуск этой же команды через JZOS Launcher, к сообщению прикрепить файл не получилось.

Добавлено (01.09.2010, 14:46)
---------------------------------------------

Quote (kag46)
сразу же вопрос на засыпку - как вызвать из c/c++ ( желательно ++) функции RACF.и вообще возможно ли это

Напрямую - никак.
JNI умеет взаимодействовать с C/C++, а вот из него уже можно вызывать практически любой модуль системы.
Т.е. путь будет примерно такой для данного случая:


  • Java-класс, который обращается к функции на C.
  • Модуль на C, который будет вызываться через JNI и в свою очередь вызывать ассемблерный модуль.
  • Небольшой модуль на ассемблере, который получает параметры по соглашениям LE, вызывает системный сервис RACF R_admin(IRRSEQ00), передает текст команды, получает результаты и коды возврата, и возвращает результаты по соглашениям LE.

PS : OMVS-команда "rac" по сути является "враппером" системного сервиса RACF R_admin.


Сообщение отредактировал EHabarov - Среда, 01.09.2010, 14:47
 
XOpenДата: Четверг, 02.09.2010, 11:50 | Сообщение # 22
Генерал-майор
Группа: Администраторы
Сообщений: 322
Репутация: 4
Статус: Offline
Интересно. А почему в книге говорится, что этот сервис для Тиволи? У вас работает без Тиволи в системе?
 
EHabarovДата: Четверг, 02.09.2010, 13:39 | Сообщение # 23
Майор
Группа: Доверенные
Сообщений: 85
Репутация: 7
Статус: Offline
Quote (XOpen)
Интересно. А почему в книге говорится, что этот сервис для Тиволи? У вас работает без Тиволи в системе?

Вопрос про R_admin ?
В книге "z/OS Security Server RACF Callable Services" (SA22-7691), где описан "R_admin (IRRSEQ00): RACF administration API", такого не нашел.
Единственным пререквизитом R_admin, судя по документации, является наличие запущенной подсистемы RACF.
 
XOpenДата: Четверг, 02.09.2010, 14:22 | Сообщение # 24
Генерал-майор
Группа: Администраторы
Сообщений: 322
Репутация: 4
Статус: Offline
Именно в этой книге в топике 2.0 Chapter 2. Callable services descriptions
есть табличка и там:
Callable service : "R_admin (IRRSEQ00): RACF
For use by : Tivoli⌐

В то время как у нормальных людей там же - For use by : MVS BCP, z/OS UNIX и так далее...

 
EHabarovДата: Четверг, 02.09.2010, 14:58 | Сообщение # 25
Майор
Группа: Доверенные
Сообщений: 85
Репутация: 7
Статус: Offline
Ага, увидел. biggrin
Причем эта строка присутствует даже в книжке по OS/390 V2.10, и похоже с тех пор не менялась.
Что имели в виду, внося в таблицу такую запись, совершенно непонятно.
В описании самой функции никаких ссылок на Tivoli нет. Сама по себе функция не зависит от продуктов линейки Tivoli.
Видимо изначально ввели эту функцию чтобы обеспечить работоспособность какого-то из Тиволевых продуктов.

Самый простой способ убедиться что это работает - скачать двоичный модуль утилиты "rac", скопировать его в USS, и выполнить допустимую команду RACF с помощью этой утилиты.
По описанию в ReadMe, сам модуль не изменялся с 2000 года, когда впервые был выложен в доступ.

 
XOpenДата: Четверг, 02.09.2010, 19:15 | Сообщение # 26
Генерал-майор
Группа: Администраторы
Сообщений: 322
Репутация: 4
Статус: Offline
Кстати, а купить готовый продукт по управлению купить не дешевле, быстрее, надежнее? dry
 
EHabarovДата: Пятница, 03.09.2010, 09:46 | Сообщение # 27
Майор
Группа: Доверенные
Сообщений: 85
Репутация: 7
Статус: Offline
Quote (XOpen)
Кстати, а купить готовый продукт по управлению купить не дешевле, быстрее, надежнее?

Где-то на первой странице было упоминание, что тема топика - это ТЗ на практику.
А так - вполне резонный вопрос.

 
kag46Дата: Суббота, 04.09.2010, 14:49 | Сообщение # 28
Рядовой
Группа: Проверенные
Сообщений: 11
Репутация: 0
Статус: Offline
Quote
EHabarov
У класса com.ibm.jzos.Exec есть метод main, что позволяет его попробовать без написания собственного кода.
С помощью этого класса можно выполнить практически любую команду OMVS. Однако, команды RACF являются командами TSO.
Пробовал варианты на команде LISTUSER.

Запуск через "rac" (The rac command) отлично сработал.


правильно ли понимаю, что пакет com.ibm.jzos.* должен быть на мф и все программы так же на нем нужно компилировать? И rac запускался через Exec?
 
EHabarovДата: Понедельник, 06.09.2010, 10:07 | Сообщение # 29
Майор
Группа: Доверенные
Сообщений: 85
Репутация: 7
Статус: Offline
Quote (kag46)
правильно ли понимаю, что пакет com.ibm.jzos.* должен быть на мф и все программы так же на нем нужно компилировать? И rac запускался через Exec?

1. Да, пакет com.ibm.jzos.* идет в составе IBM JDK for z/OS.
Функционал появился в JDK 1.4.2, начиная с SR6, в JDK 5.0, начиная с SR3, в JDK 6.0 изначально. JZOS Function now available in IBM SDK 1.4.2 SR6 and 5.0 SR3
2. Java-программы МОЖНО компилировать в среде z/OS, но это не является обязательным.
Откомпилировать java-код можно на любой другой платформе, скопировав и добавив в Classpath компиляции архив ibmjzos.jar ($JAVA_HOME/lib/ext/ibmjzos.jar), содержащий классы пакета com.ibm.jzos.*. Понятно, что ИСПОЛНЯТЬСЯ код должен в среде z/OS.
3. Да, rac запускался через класс Exec, что вообще то видно из приведенной команды.
 
kag46Дата: Вторник, 07.09.2010, 15:19 | Сообщение # 30
Рядовой
Группа: Проверенные
Сообщений: 11
Репутация: 0
Статус: Offline
опять вопросы
java на нашем мф по ходу версии 1.4. это раз. пакет вроде есть(/usr/lpp/java/J1.4/lib/ext/ibmjzos.jar), но не могу скачать его - при передаче из unix в zos пишет что строки обрезаются - не могу найти какой нд нужно делать, что бы без изменений передать - моя терминальная программа(vista tn3270) только из z/os может забирать данные - не могу проверить, есть ли там необходимый класс. А скачать пакет необходимо, что бы потом в сервлете использовать и упаковать его для вебсферы.
Ну и так же вопрос - нужно ли будет обновлять java?
 
Форум » Технические форумы » MVS (OS/390, zOS) » Вызов системной функции или скрипта REXX из сервлета на JAVA
Страница 2 из 3«123»
Поиск: