Вызов системной функции или скрипта REXX из сервлета на JAVA
|
|
liks | Дата: Пт, 13.08.2010, 18:18 | Сообщение # 16 |
Рядовой
Группа: Проверенные
Сообщений: 16
Статус: Offline
| Feature pack for modern batch. Оно?
|
|
| |
kag46 | Дата: Пт, 27.08.2010, 15:27 | Сообщение # 17 |
Рядовой
Группа: Проверенные
Сообщений: 11
Статус: Offline
| пытаюсь пока с этим разобраться, но пока безуспешно - там вроде написано что можно вызывать, а как я не разобрался еще(. Есть еще вопрос - что такое Quote вызывать RACF через JNI ?? и чем это может помочь?
|
|
| |
EHabarov | Дата: Пн, 30.08.2010, 10:35 | Сообщение # 18 |
Майор
Группа: Доверенные
Сообщений: 86
Статус: 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
Статус: 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 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| API RACF для C не существует. Посему: 1. Из Си создаем TSO среду(IKJEFT01) и вызываем RACF TSO команды или 2. Пишем сразу на асме, благо там все просто(RACROUTE) и в книгах есть примеры. (что нетипично обычно для IBM) зы: но мне кажется лучше использовать тот заточенный жава класс указанный выше.
|
|
| |
EHabarov | Дата: Ср, 01.09.2010, 14:46 | Сообщение # 21 |
Майор
Группа: Доверенные
Сообщений: 86
Статус: 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 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Интересно. А почему в книге говорится, что этот сервис для Тиволи? У вас работает без Тиволи в системе?
|
|
| |
EHabarov | Дата: Чт, 02.09.2010, 13:39 | Сообщение # 23 |
Майор
Группа: Доверенные
Сообщений: 86
Статус: 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 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: 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 |
Майор
Группа: Доверенные
Сообщений: 86
Статус: Offline
| Ага, увидел. Причем эта строка присутствует даже в книжке по OS/390 V2.10, и похоже с тех пор не менялась. Что имели в виду, внося в таблицу такую запись, совершенно непонятно. В описании самой функции никаких ссылок на Tivoli нет. Сама по себе функция не зависит от продуктов линейки Tivoli. Видимо изначально ввели эту функцию чтобы обеспечить работоспособность какого-то из Тиволевых продуктов. Самый простой способ убедиться что это работает - скачать двоичный модуль утилиты "rac", скопировать его в USS, и выполнить допустимую команду RACF с помощью этой утилиты. По описанию в ReadMe, сам модуль не изменялся с 2000 года, когда впервые был выложен в доступ.
|
|
| |
XOpen | Дата: Чт, 02.09.2010, 19:15 | Сообщение # 26 |
Генерал-майор
Группа: Администраторы
Сообщений: 325
Статус: Offline
| Кстати, а купить готовый продукт по управлению купить не дешевле, быстрее, надежнее?
|
|
| |
EHabarov | Дата: Пт, 03.09.2010, 09:46 | Сообщение # 27 |
Майор
Группа: Доверенные
Сообщений: 86
Статус: Offline
| Quote (XOpen) Кстати, а купить готовый продукт по управлению купить не дешевле, быстрее, надежнее? Где-то на первой странице было упоминание, что тема топика - это ТЗ на практику. А так - вполне резонный вопрос.
|
|
| |
kag46 | Дата: Сб, 04.09.2010, 14:49 | Сообщение # 28 |
Рядовой
Группа: Проверенные
Сообщений: 11
Статус: 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 |
Майор
Группа: Доверенные
Сообщений: 86
Статус: 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
Статус: Offline
| опять вопросы java на нашем мф по ходу версии 1.4. это раз. пакет вроде есть(/usr/lpp/java/J1.4/lib/ext/ibmjzos.jar), но не могу скачать его - при передаче из unix в zos пишет что строки обрезаются - не могу найти какой нд нужно делать, что бы без изменений передать - моя терминальная программа(vista tn3270) только из z/os может забирать данные - не могу проверить, есть ли там необходимый класс. А скачать пакет необходимо, что бы потом в сервлете использовать и упаковать его для вебсферы. Ну и так же вопрос - нужно ли будет обновлять java?
|
|
| |