Апликативная часть - PL/I. Доступ к системным функциям, недоступным в LE, рутины различные, и собственная база данных на VSAMовских файлах (включая шифрование) - ассемблер.
Ну так вот то-то и оно. Пока вы пилите шифрование в своей кастомной БД, оно давно присутствует в большинстве современных БД из коробки. И, естественно, криптоалгоритмы поддерживаются у всех современных процессорных архитектур. Доступ к системным функциям из PL/I через роутины на автокоде - это не анахронизм? Но легких путей мы не ищем. Когда для миграции пэйрола разбор начинается с поиска монстрообразного сервера на i64 с похожими на мэйнфрейм характеристиками, у меня только один вопрос: где ваш архитектор? Или решают все админы мэйнфрейма?
Пэйрол - это задача из OLAP. Она отлично горизонтально масштабируется и решается на кластере из типовых серверов. Как я уже говорил, надо просто определить ваши требования и дать любому из присутствующих на рынке постащиков. Они вам ответят необходимой конфигурацией. Уверяю, никакой суперкомпьютер строить не придется :-).
Вот когда вы сможете давать такие же производительность и функциональность своими БД из коробки, которые даём мы - тогда и поговорим. На данный момент, для наших целей, тот же DB2 требует на порядок больше ресурсов и делает ту же работу на порядок дольше, требуя серьёзного знания SQL для получения того, что мы даём очень простым интерфейсом.
Когда Microfocus изучили наши системы в контексте перевода с майнфрейма, они выдвинули два условия - бабло(немалые), и мы обязаны переписать кучу нашего функционала, потому что имеющийся они перевести не могут. Предложенное нам решение от Attunity было ещё более убогим и несерьёзным (но не менее дорогим). И это при том, что у нас не сверх-навороченная система. Когда требования одной из контор, в которой я работал, были чётко сформулированы не только любому, но всем присутствующим на рынке поставщикам подобных услуг (а у нас проблем типа санкций нету, так что речь фактически о всех серьёзных мировых поставщиках/производителях), то только один проиявил заинтересованность написать подобное. Начальная минимальная сумма для разработки, которая была озвучена - миллиард баксов. И все права на созданное (на базе того, что разрабатывалось в той конторе многим годами). И минимум пять лет. Все остальные даже не брались.
Вы забываете, что тут сидят не лохи, которым вы впариваете свои решения, убеждая, что мейнфрем это пассе, и которые понимают во всём этом, как свиньи в апельсинах. Я знаю не один пример того, как разные фирмы у "слезали" с мейнфреймов на другие платформы, наслушавшись умников, вроде вас, впаривающих свою лажу. И не знаю ни одного примера успешного перехода - в итоге все случаи приводили к финансовым убыткам, к потере возможностей и знаний, снижению уровня услуг. Последние проблемы обычно затыкаются с помощью увеличения первой. Примерно через год после перехода текущие расходы всегда превышали те, которые были необходимы до того. Плюс к этому огромные одноразовые расходы на сам переход. Плюс большинство этих контор всё равно были вынуждены оставить мейнфрейм (в "замороженном" состоянии).
Да я никому ничего не впариваю, успокойтесь. У меня полно своей работы. Я просто делаю проекты по миграции с i. Вы говорили про пэйрол. Вот эта типичная задача. И я такие проекты успешно мигрировал. Из недавнего - благополнучно переехали в SAP/ODBEE/RHEL/VMWare/amd64. Вы просто очевидно не архитектор и не компетентны в вопросе. Я знаю задачи которые трудно переводить с мэйнфреймов. Но пэйрол ... Не смешите мои тапки.
Я знаю задачи которые трудно переводить с мэйнфреймов. Но пэйрол ... Не смешите мои тапки.
Это говорит только о том, что вы сталкивались искоючительно с тривиальными системами. Ну или вы круче всех на свете, раз то, от чего отказались фактически все серьёзные фирмы, разрабатывающие соответствующие системы, для вас - тапочкам на смех. СА лярд, пять лет и в обязательном порядке все права требовали. А вы - в одно рыло, пачками, пивко попивая!.. Феномен! Гений! Брин и Кум нервно курят в сторонке, глядя на вас! Но что-то мне нашептывает, что скорее уж вы просто не понимаете, о каких системах идёт речь. Мои кроксы с удовольствием поржали бы, наблюдая, как вы упомянутую систему мигрировали бы, с сохранением всей функциональности. Помню, пришёл один такой умник, вроде вас - пальцы веером, у меня опыта по таким переходам, как волос у Анжелы Девис... Ему одну, самую простую функцию подкинули, чтобы продемонстрировал, как он с этим справится. Через три недели мы его не видели и не слышали...
Не подскажете как заставить эмулятор терминала понимать русские буквы в СВМ 4.10 при запуске ее в Геркулесе? Я использую программу wc3270
http://ipic.su/img/img7/fs/cbm2.1606149332.jpg
Насколько я правильно понимаю, зарубежный эмулятор терминала просто не знаком с кодировкой русских букв? И если я использую реальный "железный" советский терминал, где аппаратный знакогенератор изначально поддерживает кодировку, они отобразятся сразу нормально?
Добрый день! Подскажите как отправить команду через Http сервер в Геркулес, отключить-подключить ридер.
Дело в том, что по не понятной для меня причине, периодически зависает ридер в геркулесе, и после этого находится в состоянии занят.
Через Http сервер можно посмотреть статус устройства http://ххх.ххх.ххх.ххх:8081/cgi-bin/debug/device/list Вручную на HTTP сервере можно вводить команды, отключить-подключить устройство и др. Но как сделать это удаленно? например из другой системы? или это возможно сделать как-то через linux в которой установлен геркулес? например надо отключить-подключить: detach 0001 attach 0001 3505ххх.ххх.ххх.ххх:3505 sockdev ascii trunc eof
можно использовать традиционный способ имитации интерактивной сессии броузера: curl.exe -o "output.txt" -u hercules:password -d "@detach.txt" http://localhost:8080/cgi-bin/tasks/syslog где файл detach.txt содержит: command=detach%20AAA т.е. выполняемая команда здесь detach AAA http://localhost:8080/cgi-bin/tasks/syslog предполагает, что это та же машина. curl поддерживается всюду, так что запрос может быть отправлен хоть с мобильного телефона.
Альтернативно: 1. выполнить задание с PGM=HOSTCMD через FTP (https://www.cbttape.org/cbtdowns.htm File 845) 2. выполнить команду используя HAO (если возможно "привязаться" к какому-то сообщению)
Ну и, наконец, выяснить причину зависания и устранить ее))
Сообщение отредактировал Gregory - Чт, 16.09.2021, 00:28
покурил и решил, что нужно прокомментировать написанное выше). Чтобы написать требуемый запрос, открываем исходный текст страницы hercules hhtp (в данном случае http://localhost:8080) и рассматриваем ее: - видим там фреймы. отсюда URL http://localhost:8080/cgi-bin/tasks/syslog - видим там форму, отсюда command=detach%20aaa (URL encoded), command - имя поля формы вообще, используя программу типа curl и какой-нибудь скриптовый язык, можно имитировать практически любой интерактивный сеанс броузера, хоть иногда это и не так просто
можно использовать традиционный способ имитации интерактивной сессии броузера:curl.exe -o "output.txt" -u hercules:password -d "@detach.txt" http://localhost:8080/cgi-bin/tasks/syslog где файл detach.txt содержит: command=detach%20AAA т.е. выполняемая команда здесь detach AAA http://localhost:8080/cgi-bin/tasks/syslog предполагает, что это та же машина. curl поддерживается всюду, так что запрос может быть отправлен хоть с мобильного телефона.
Спасибо большое!
С помощью CURL всё работает, подключает-отключает.
ЦитатаGregory ()
Ну и, наконец, выяснить причину зависания и устранить ее))
Не знаю как выяснить, могу предположить, что если в один момент отправить в геркулес на ридер сразу несколько файлов-заданий, и если геркулес не успел принять первый файл, а ему уже пришел второй, то в этом случае не знаю как поведет себя геркулес, может причина в этом. Если причина в этом, то выход не отправлять одновременно несколько заданий, а отправлять с промежутком времени. Надо будет попробовать поиграться на тестовом сервере.
По поводу "зависания" ридера нужно больше информации: - выдаются ли какие-то сообщения об ошибке устройства? если да, то какие именно? - какой статус у устройства в системе при этом? (если это z/OS то D U,,,0001,1)
detach/attach это эквивалент следующего: "это устройство сломалось, принесите новое". м.б. все же можно имеющееся привести в чувство? - что происходит после V 0001,ONLINE в z/OS? - что происходит после DEVINIT 0001 в Hercules?
и вот еще что - устройство 0001 как-то описано в IODF (опять же, предполагаю, что guest у Вас z/OS)?
Сообщение отредактировал Gregory - Ср, 15.09.2021, 20:19
- какой статус у устройства в системе при этом? (если это z/OS то D U,,,0001,1)
У нас система СВМ 4.13
В Геркулесе при зависании светится зелёным, в обычном рабочем состоянии светится серым
Подобное зависание происходит, если в 1С при записи файла-задания не указана кодировка ANSI, в таком случае программа HercRDR не может определить кодировку и пытается подставить кодировку EBCDIC.
В системе СВМ можно посмотреть статус устройства командой "Q V UR"
Видно состояние READY
Далее отправляем файл с заданием с кодировкой Юникод
на веб-сервере статус поменялся с незаполненного на "open"
При обычном отправлении задания в логе видно, что происходит сначала "Connected" потом Disconnected, а при неправильном файле происходит только Connected.
В системе СВМ при вводе комманды "Q V UR", статус ридера не меняется, также и остался "READY"
Пытаемся отправить файл с кодировкой ANSI. На веб сервере лог:
Код
HHCSD016E Client <namePC> (10.2.66.31) connection to device 0001 (10.2.199.9:3505) rejected: client <namePC> (10.2.66.31) still connected
Далее на Веб-сервере ввожу команду "detach 0001'
Далее на Веб-сервере ввожу команду "attach 0001 350510.2.199.9:3505 sockdev ascii trunc eof"
Ридер появляется в списке устройств. Отправляю тестовое задание для проверки "HercRdr.exe 10.2.199.9:3505 C:\1\JOB_HELLO.TXT" , файл в кодировке ANSI JOB_HELLO.TXT
Код
ID BATCH /* /JOB OPERATOR 61000630 HELLO CP M BMAVAS01 HELLO
/*
На веб сервере лог:
Код
HHCSD018I Client <namePC> (10.2.66.31) connected to device 0001 (10.2.199.9:3505) HHCRD012I 10.2.66.31 (<namePC>) disconnected from device 0001 (10.2.199.9:3505)
Файл задания прошел через Геркулес и задание выполнилось на СВМ.
ЦитатаGregory ()
и вот еще что - устройство 0001 как-то описано в IODF (опять же, предполагаю, что guest у Вас z/OS)?
У нас СВМ 4.13. В файле конфигурации "hercules.cnf" на сервере он описан, как "0001 3505 10.2.199.9:3505 sockdev ascii trunc eof"
на ВМ системного программиста SYSPRG файл: DMKRIO ASSEMBLE
Понятно, я отвечал предполагая, что у Вас z/OS. Отлично, Вы всю нужную информацию привели.
Цитата
Подобное зависание происходит, если в 1С при записи файла-задания не указана кодировка ANSI, в таком случае программа HercRDR не может определить кодировку и пытается подставить кодировку EBCDIC.
насколько я понял, анализируется первые 160 байт, и если там только символы с кодами x'20' - x'7f', а также CR, LF то подразумевается, что файл в ASCII. Хотел бы отметить, что ASCII, EBCDIC и особенно UNICODE это несколько неточно. Под ASCII и EBCDIC следует понимать конкретные кодовые страницы, определенные в инструкции CODEPAGE конфигурационного файла hercules. По умолчанию там подразумевается 819/1047 т.е. Latin1/Open system latin1, и кириллицы там нет. Что касается UNICODE, то это общее название для совершенно разных систем кодировок - UTF8 (переменная длина кода для символа), UCS-2 (2 байта) и т.д. но это в данном случае неважно, какой именно там у Вас UNICODE, я понимаю что Вы таким образом просто отправляете некорректный файл. По идее, такие же проблемы вызовет и кириллица в тексте (т.е. файл в кодировке 1251) но это надо бы проверить.
Цитата
В системе СВМ можно посмотреть статус устройства командой "Q V UR"
Это Вы статус виртуального устройства смотрите, а в данном случае интересен статус "реального", т.е. Q 0001
Посмотрите, что происходит если после ошибки выполнить в VM команды VARY OFF 0001 / VARY ON 0001 А вообще, как я понимаю, основную причину Вы сами нашли - некорректные символы) Для большей чистоты экспериментов я бы вместо hercrdr использовал netcat
Код
nc -N 127.0.0.1 3505 < файл.jcl
так как неизвестно, как именно hercrdr обрабатывает файл, а netcat совершенно точно ничего с ним не делает и передает все так, как есть, без каких-либо преобразований.
BTW. Я тут еще обнаружил программу sysrdr - gui эквивалент hercrdr) могу выложить, если хотите)