19.3.1 概要
JavaプログラムからCOBOLプログラムを呼び出せます。ここでは,JavaプログラムとCOBOLプログラムの連携の手順について説明します。
Javaアプリケーションサーバを利用して既存のCOBOLプログラムを使ったWeb環境を構築する場合は,Cosminexus連携機能,およびTP1サーバ用Cosminexus連携機能を使用します。これらの機能を使用すると,Java言語の他言語インタフェース機能(Java Native Interface)処理とデータ交換処理をラッピングするJavaクラスを自動生成できるため,開発期間を短縮できます。また,COBOLプログラムで発生したエラー情報などを取得する例外メソッドを用意しているので,このAPIを使って例外処理を備えた実行環境を構築できます。
Cosminexus連携機能の詳細については,マニュアル「COBOL2002 Cosminexus連携機能ガイド」を参照してください。
TP1サーバ用Cosminexus連携機能を使用するには,次の製品が必要です。
- JavaからTP1環境下のCOBOL SPP(Service Providing Program)のサービスを利用する場合(TP1サーバ用Cosminexus連携機能)に必要な製品
-
- 開発環境:
-
TP1/COBOL adapter for Cosminexus Version 2
- サーバ実行環境:
-
TP1/COBOL 拡張 Server Run Time System for Cosminexus Version 2
TP1サーバ用Cosminexus連携機能の詳細については,マニュアル「TP1/COBOL adapter for Cosminexus ユーザーズガイド」を参照してください。
なお,COBOLプログラムからJavaプログラムを直接呼び出せません。Javaプログラム呼び出し機能を使用してください。
Javaプログラム呼び出し機能の詳細については,マニュアル「COBOL2002 Javaプログラム呼び出し機能ガイド」を参照してください。
(1) 概要
JavaプログラムからCOBOLプログラムを呼び出すには,Java言語の他言語インタフェース機能(Java Native Interface)を利用します。したがって,Java言語の他言語インタフェース機能の制限に基づいて,Javaから呼び出されるCOBOLプログラムはstdcall呼び出し規約のDLL形式で作成する必要があります。
また,JavaプログラムからCOBOLプログラムを呼び出す場合には,COBOLプログラムの初期化,および終了処理するサービスルーチン(CBLGINT/CBLEND)を呼び出す必要があります。Javaプログラムからは直接サービスルーチンを呼び出せないため,サービスルーチンを呼び出すCプログラムを作成し,JavaプログラムからそのCプログラムを呼び出すようにします。
- 注意事項
-
Javaプログラムとのインタフェースは,Sun Microsystems, IncのJava Development Kit(JDK)のバージョン1.1以降を対象とします。
(2) Javaプログラムとのインタフェースを使ったプログラムの作成手順
Javaプログラムとのインタフェースを使ったプログラムの作成手順を次に示します。
-
Javaプログラムのソースファイルを作成する。
-
JavaソースファイルをコンパイルしてJavaバイトコードを生成する。
-
JavaバイトコードからC言語ヘッダファイルを生成する。
-
COBOLプログラムのソースファイルを作成する。
-
COBOLソースファイルをコンパイルしてCOBOLプログラム(DLL形式)を生成する。
-
サービスルーチン(CBLGINT/CBLEND)を呼び出すCプログラムのソースファイルを作成する。
-
CソースファイルをコンパイルしてDLLを生成する。
-
Javaプログラムを実行する。
なおこの節では,次のような構成でJavaプログラムとのインタフェースの利用手順を説明します。
- Java言語での作業
-
次の作業について説明します。
-
Java言語のmainメソッドを含むJavaプログラムの作成
-
COBOLプログラムを呼び出すJavaプログラムの作成
-
Cプログラムを呼び出すJavaプログラムの作成
-
- COBOL言語での作業
-
Javaプログラムから呼び出すCOBOLプログラムの作成方法について説明します。
- C言語での作業
-
COBOLプログラムの初期化・終了処理を呼び出すCプログラムの作成方法について説明します。
- Javaプログラムの実行
-
作成したJavaプログラムの実行方法について説明します。
- 制限事項
-
Javaプログラムとのインタフェースでの制限事項について説明します。