У меня есть программа COBOL, которая должна получать данные из веб-службы. Без использования CICS, каковы мои лучшие варианты? Я думал, что программа на C может прочитать веб-сервис и сохранить его в файл, тогда COBOL сможет прочитать этот файл. Может ли COBOL позвонить в веб-службу? Данные имеют размер около 300 МБ.Как z/OS может вызвать веб-сервис?
ответ
Возможно, посмотрите на this article. Он предлагает создать веб-службу обтекающую оболочку C/C++. Хотя эта статья предназначена для iSeries, вы можете реализовать что-то очень похожее в zSeries, используя BPXBATCH
В принципе, они предлагают использовать обертку C между кодом COBOL и кодом C++, который взаимодействует с веб-службой. Это решение позволяет COBOL вызывать функцию C относительно прямым способом. Функция C имитирует поведение C++, реализуя вызов веб-службы с использованием прокси-сервера C++.
Если вы можете использовать Java на своем сайте, вызывая Java из программы cobol для доступа к веб-службе, это может быть вариант. Предполагая, что вы используете Enterprise Cobol проверить раздел 6.44 из Java Stand-alone Applications on z/OS Volume II
Я стою, чтобы исправить это, но ... Я думаю, что можно вызвать подпрограммы COBOL (методы) из приложения Java, но не наоборот. Java должен запускаться под JNI, но COBOL ему нужен только при вызове с Java. Если процесс верхнего уровня, который не работает в JNI (т.е. Java), процессы нижнего уровня, требующие этого, не могут быть вызваны. Вот почему OO COBOL mainlines под z/os, ну, не существует (их можно вызывать только из Java-программы). – NealB
использования модулей в IBM TCP/IP 'EZASOKET'
Я работаю в компании с системой г/OS работает в основном COBOL, партия (JCL) и CICS. Чтобы вызвать веб-службы, мы написали модуль для реализации HTTP 1.0 с использованием TCP/IP. С модулями
- EZASOKET
- GETHOSTBYNAME
- СОКЕТОВ
- CONNECT
- WRITE
- FCNTL
- READ
- ЗАКРЫТЬ
- SELECTEX
дополнительные модули:
- EZACIC04 транслирует EBCDIC в ASCII
- EZACIC05 переводит ASCII в EBCDIC
- EZACIC06 преобразования символов в битовую маску
- EZACIC08 расшифровывает IP адрес
Поскольку я написал это для своей компании, я не могу просто выдать код. Но для справки мне потребовалось 3 дня, чтобы написать модуль, и это было с примером, чтобы начать с того, что сделал частичный хакерский способ сделать это.
Вам необходимо прочитать ссылки IBM, чтобы узнать, как использовать модули EZA.
можно назвать Java с COBOL программ по г/зева.
Мы сделали это в нашей компании.
- Вы должны указать, что это RECURSIVE
- Вы должны импортировать классы
Класс HelloJ является
"com.ibm.zos.batch.container.test.HelloJ"
Класс JavaException - «java.lang.Exception»
Класс BCDTranHelper -
«com.ibm.batch.spi.UserControlledTransactionHelper».
- Вы должны включить JNI. РАЗДЕЛ СВЯЗИ. COPY JNI
* * * После этого вы можете ссылаться на Java с COBOL в вашем PROCEDURE DIVISION с:
Invoke HelloJ "SayHello"
Также обратите внимание на Java Exception Check *, чтобы посмотреть, как обращаться исключения.
Это очень полезно, если вы хотите вызывать веб-сервис из вашей программы COBOL на z/os.
см. Эту ссылку для получения более подробной информации.
http://pic.dhe.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.iean500%2Fcodeexm.htm
Есть ли конкретная причина, почему CICS является Verboten здесь? Очень легко получить доступ к CICS-сервисам из пакетного задания. – zarchasmpgmr