2012-04-04 4 views
2

У меня есть программа COBOL, которая должна получать данные из веб-службы. Без использования CICS, каковы мои лучшие варианты? Я думал, что программа на C может прочитать веб-сервис и сохранить его в файл, тогда COBOL сможет прочитать этот файл. Может ли COBOL позвонить в веб-службу? Данные имеют размер около 300 МБ.Как z/OS может вызвать веб-сервис?

+0

Есть ли конкретная причина, почему CICS является Verboten здесь? Очень легко получить доступ к CICS-сервисам из пакетного задания. – zarchasmpgmr

ответ

0

Возможно, посмотрите на this article. Он предлагает создать веб-службу обтекающую оболочку C/C++. Хотя эта статья предназначена для iSeries, вы можете реализовать что-то очень похожее в zSeries, используя BPXBATCH

В принципе, они предлагают использовать обертку C между кодом COBOL и кодом C++, который взаимодействует с веб-службой. Это решение позволяет COBOL вызывать функцию C относительно прямым способом. Функция C имитирует поведение C++, реализуя вызов веб-службы с использованием прокси-сервера C++.

0

Если вы можете использовать Java на своем сайте, вызывая Java из программы cobol для доступа к веб-службе, это может быть вариант. Предполагая, что вы используете Enterprise Cobol проверить раздел 6.44 из Java Stand-alone Applications on z/OS Volume II

+0

Я стою, чтобы исправить это, но ... Я думаю, что можно вызвать подпрограммы COBOL (методы) из приложения Java, но не наоборот. Java должен запускаться под JNI, но COBOL ему нужен только при вызове с Java. Если процесс верхнего уровня, который не работает в JNI (т.е. Java), процессы нижнего уровня, требующие этого, не могут быть вызваны. Вот почему OO COBOL mainlines под z/os, ну, не существует (их можно вызывать только из Java-программы). – NealB

5

использования модулей в 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.

2

можно назвать Java с COBOL программ по г/зева.
Мы сделали это в нашей компании.

  1. Вы должны указать, что это RECURSIVE
  2. Вы должны импортировать классы

Класс HelloJ является
"com.ibm.zos.batch.container.test.HelloJ"
Класс JavaException - «java.lang.Exception»
Класс BCDTranHelper -
«com.ibm.batch.spi.UserControlledTransactionHelper».

  1. Вы должны включить 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

 Смежные вопросы

  • Нет связанных вопросов^_^