vscodeのdevcontainerでのcobol+oracleのモダン開発環境構築
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
biggner for lesson
gnu cobol document
cobol sample
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