2010-04-12 3 views
3

나는 모든 조직 작업에 COBOL을 사용하는 병원에서 일자리를 얻었으며, 전체 (현재 20 테라 바이트) 데이터베이스 (COBOL은 집에서 만든 것이고, COBOL은 추측했다.)의 데이터로 채워진다. 환자는 지난 45 년 이래로소켓과 COBOL

내 이야기였습니다. 이제 내 질문에 :

현재 모든 소켓은 COBOL 프로그램에서 데이터를 파일로 작성하여 구현 한 것입니다. 이 파일들은 C++ 프로그램 (1980 년대 후반에 추가 된 추가 모듈)에 의해 읽혀졌고 데이터베이스로 보내진 C++ 소켓을 사용했다.

이제이 솔루션은 COBOL에서 COBOL로 데이터베이스를 이동할 때 작동을 멈추었습니다. 예를 들어 MySQL을 사용하지 않았거나 COBOL에서 새 데이터베이스를 구현했습니다. 나는 저에게 일한 사람에게 물어 보았습니다. (지금 70 세 정도입니다.) 왜 다른 사람이 그 일을 할 것이고 그는 다른 언어로 쓰고 싶지 않다는 것을 COBOL에 매우 잘한다고 말해 줬습니다.

지금까지 너무 좋아 지금 내 질문 :

  • 가 어떻게 COBOL에서 소켓 연결을 구현할 수있다? 예를 들어 192.168.1.23:283에있는 외부 COBOL 데이터베이스에 대한 인터페이스를 만들어야합니다.
+1

당신은 정말로 내 동정심을 가지고 있습니다. 누군가 여기서 큰 실수를 저질렀다면, 그 데이터를 그곳으로 옮겨서 70 명의 노인을 우아하게 퇴직시켜야합니다. 그것들을 버리는 데는 그것들을 길게 남겨 두는 것이 행운입니다. –

+0

문제는 ... COBOL이 실존에서 사라 졌다는 것입니다 ... 모두가 자신의 눈에서 그것을 꺼내기를 원했던 것처럼 말입니다. 나는 심지어 공식적인 문서를 찾지도 못한다. 소켓을 구현하는 방법을 몰라서 나는 무기력하다. – kati

+1

나는 내가 도울 수 있다고 생각한다. 그러나 나는 더 많은 정보가 필요하다. COBOL 프로그램은 어디에서 호스팅됩니까? 실행 환경 (Micro Focus, IBM OS/2상의 IMS, zOS상의 CICS), 컴파일러 등은 무엇입니까?하지만 여기에있는 주요 정보는 다음과 같습니다. 여러분은 가능한 한 많이 cobol에 소켓을 구현할 수 없습니다. C/C++로 구현하지 마십시오. 그렇게하기 위해서는 자신의 환경에 의존해야합니다. –

답변

0

대부분의 COBOL 컴파일러는 개체 모듈이나 DLL을 연결하고 호출 할 수 있습니다. 카티가 말했듯이 나는 도움이 될 수 있지만 추가 정보가 필요하다는 것을 알고있다. 이전에 Windows에서 DEC로 해본 결과 DEC이 완료 될 수 있음을 알았습니다.

0

Google이 귀하의 친구임을 상기하십시오.

대답은 실행 환경에 크게 달려 있습니다.

IBM은 z/OS 용 CICS의 일부로 COBOL에서 Sockets API 호출 가능하다고 주장합니다.

마이크로 포커스가있는 것으로 보입니다.

+0

COBOL에서 (거의) 항상 외부 서브 루틴을 호출 할 수 있습니다. OP가 환경을 언급 할 수 있다면 나는 여기 누군가가 도움이 될 것이라고 확신한다. –

1

IBM 메인 프레임에는 COBOL 형식으로 사용할 수있는 두 개의 소켓 API가 있습니다. CICS 프로그램 (특별한 스레드 안전성 및 환경 고려 사항이있는 곳) 및 일반 일괄 처리 또는 IMS 프로그램에서 사용하기위한 것 중 하나입니다.

완벽한 TCP/IP 기능이 구현되어 있으며 신용 카드 프로토콜을 MVA 표준에 맞게 처리 할만큼 충분히 안정적입니다 ('잘 알고 있습니다').

4

OS와 컴파일러에 대한 자세한 정보가 필요합니다.

언어 환경 지원 컴파일러가있는 IBM z/OS를 사용하는 경우 z/OS 통신 서비스에서 EZASOCK 기능을 호출하면됩니다. 전화는 참고 문헌에 잘 설명되어 있으며 Cobol의 좋은 예가 있습니다.

다른 플랫폼에는 다른 옵션이 있습니다.

대부분의 경우, 필요한 언어로 작성된 외부 모듈을 "호출"할 수 있지만 DLL이나 sharedLib 등은 무엇이든 사용할 수 있습니다.

환경에 대한 자세한 정보를 제공 할 수 있습니까?

왜 Cobol 프로그램에서 데이터베이스에 직접 쓰지 않으시겠습니까?