🙌

vscodeのdevcontainerでのcobol+oracleのモダン開発環境構築

2022/06/13に公開約2,700字

40代男性SE「COBOLのプロジェクト参加はやめたほうがいいよ...」
50代男性PM「あれはヤバイよヤバイ!」
20代女性PG「COBOLを書いてるときにふと空を見るとね...暗く曇ってるんですよ...」

なぜやめたほうがいいのか...?
限界集落の村の掟の如く皆が多くは語らない言語、COBOLのモダン環境構築について書きます。

構成

今回はOracle LinuxをCobolアプリケーション用サーバー、
OracleをDBサーバーとして環境構築していきます。

COBOLのプロジェクトをOracle+javaにリプレイスすることは
多いので割と実践的な構築です。

COBOLは日立やIBMなどのCOBOLはライセンスがあり、簡単に手に入りません。
また、COBOLは方言がキツイので、本番は必ずドキュメントに目を通してから使うこと。
また、gnucobolで動いたからと行って他のCOBOLでは動かない可能性もあるので注意してください。

  • GNUCOBOL(OPENCOBOL) 無料版のCOBOLです。厳密にはCOBOLコンパイラでなくて、cobolのソースコードを読んでcppに変換して実行しているcppコンパイラです。
  • Pro COBOL COBOLにOracleのSQLを埋め込める機能です。COBOL独自のデータをOracleのテーブルに移行するときに必要になる可能性があるので、いれてます。OTNライセンスなので再配布禁止。
  • Oracle XE 無料版のOracleです。OTNライセンスなので再配布禁止。
  • schemaspy ER図作成用ツール
  • Oracle java schemaspyに必要。schemayspyはoracle java 8でないと動かないので注意。

準備

クライアントPCに下のものを予めインストールしてください。

  • docker
  • vscode

vscode extension

install to client vscode.

  • ms-azuretools.vscode-docker

download from oracle site

oracle java8
download jre-8u333-linux-x64.tar.gz to .devcontainer/ directory

pro cobol client
download oracle-instantclient-precomp-21.6.0.0.0-1.el8.x86_64.rpm to .devcontainer/ directory

how to launch

Click on the >< symbol in the lower left corner,
.devcontainer launch from vscode

The oracle database takes time to start up, so please wait 20 minutes.

上の準備をした後、vscodeの左下の><をクリックするとReopen in container
と出るのでビルド

compile

# compile and output executable binary file.
cobc -x src/hello.cob
# compile and output executable binary file(specific output folder).
cobc -x src/hello.cob -o out/bin/hello
# compile and output linux share library.
cobc src/hello.cob -o out/lib/hello.so

procob

Info procob is not support on rhel.

# output .lis and .cob for inernal output. build
procob src/hello.cob 

oracle procob document

biggner for lesson

gnu cobol document
cobol sample

cobol example opensource

create er figure

# execute in same folder exits schemaspy.peroperties
java8 -jar /home/vscode/schemaspy.jar
java8 -jar /home/vscode/schemaspy.jar -dbhelp

install sample development data

Run the following in the vscode workspace.

enable_sampleschema

まとめ

疲れた...

ソースコード

最新のソースコードはgithubにあります
cobol

Discussion

ログインするとコメントできます