Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第2章 CORBAアプリケーション開発時の留意事項> 2.2 コンパイル・リンク> 2.2.5 サーバアプリケーションのコンパイル・リンク例 (Solaris OE)

2.2.5.4 COBOLサーバアプリケーション(スレッドモード/Sun 日本語COBOL使用)の場合

odsvapl.cbl:主プログラムソース(初期化処理部)
odsvapl_sub.cbl:副プログラムソース(I/F実装部)
IDL_A_B_skel.cbl:スケルトンソース
IDL_cdr.cbl:CDRソース
odsvapl:サーバアプリケーション実行可能ファイル
libA-B.so: サーバアプリケーション共有オブジェクト

% cat IDL.idl
module A {
  interface B {
    :
  }
}
% IDLc -cobol IDL.idl
% CORBA=/opt/FSUNod/include/COBOL
% export CORBA
% cobol -c -M odsvapl.cbl
% ld -lthread -lc -ldl -L/opt/FJSVCOBop/lib -lrcobol -lFJBASE -L/opt/FSUNod/lib -lOMcbl -o odsvapl odsvapl.o \
/opt/SUNWnsun/lib/cblstr.o /opt/SUNWnsun/lib/crti.o /opt/SUNWnsun/lib/crt1.o /opt/SUNWnsun/lib/crtn.o
% cobol -G -o libIDL_cdr.so IDL_cdr.cbl
% cobol -G -o libIDL_A_B_skel.so IDL_A_B_skel.cbl
% cobol -G -L/opt/FJSVCOBop/lib -lrcobol -L/opt/FSUNod/lib -lOMcbl -lIDL_cdr -lIDL_A_B_skel -o libA-B.so odsvapl_sub.cbl

「Sun日本語COBOL」によりスレッドモードのアプリケーションを作成する場合は、別途「COBOL拡張オプション 2.0」が必要です。

COBOLで作成するCORBAアプリケーションは、動的リンク構造である必要があります。動的プログラム構造は動作保証されないため、翻訳オプションとして“DLOAD”は指定しないでください

COBOLソースをコンパイルする際、"-dy"オプションは指定しないでください。誤って指定していた場合、アプリケーション実行時にCORBAサービスが提供するCOBOL用ライブラリ("libOMcbl.so","libOMircbl.so")の呼び出しに失敗し、"BAD_OPERATION"例外が発生します。

スレッドライブラリ(libthread.so)は、他のライブラリ群の中で必ず先頭にくるよう指定してください。リンク後、lddコマンドによりシステムライブラリ"libc.so" より上方に"libthread.so" がリンクされていることを確認してください。"libthread.so" が"libc.so" より下方にリンクされている場合、スレッドライブラリが正常に機能せず、アプリケーション誤動作の要因となるため、注意が必要です。


% ldd libA-B.so
libthread.so.1 =>   /usr/lib/libthread.so.1
     :         :
libc.so.1 =>     /usr/lib/libc.so.1
     :         :


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005