COBOL2002 XML連携機能ガイド


6.1.3 マルチスレッドに対応したCOBOLプログラムの作成

マルチスレッド対応COBOLプログラムをコンパイルする場合は,-MultiThreadオプションを指定します。

指定するライブラリ

(AIX(32)の場合)

COBOL2002スレッド関数インターフェースライブラリ「-lcbl2kmp」,スレッド関数ライブラリ「-lpthreads」,およびスレッド対応システムライブラリ「-lC_r」

(AIX(64)の場合)

COBOL2002スレッド関数インターフェースライブラリ「-lcbl2kmp64」,スレッド関数ライブラリ「-lpthreads」,およびスレッド対応システムライブラリ「-lC_r」

(Linuxの場合)

COBOL2002スレッド関数インターフェースライブラリ「-lcbl2kmp」,およびスレッド関数ライブラリ「-lpthread」

実行可能プログラムの作成方法

(AIX(32)の場合)
ccbl2002 -Compile,NoLink -MultiThread subprog.cbl
xlC_r -o mainprog mainprog.o subprog.o
    -L/opt/HILNGcbl2k/lib -L/opt/HILNGcbl2k/lib/cblxml
    -lcblxmlrt -lcbl2k -lcbl2kml -lcbl2kmp -lpthreads -lC_r -lm
(AIX(64)の場合)
ccbl2002 -Compile,NoLink -MultiThread subprog.cbl
xlC_r -q64 -o mainprog mainprog.o subprog.o
    -L/opt/HILNGcbl2k64/lib -L/opt/HILNGcbl2k64/lib/cblxml
    -lcblxmlrt64 -lcbl2k64 -lcbl2kml64 -lcbl2kmp64 -lpthreads -lC_r
    -lm
(Linux(x86)の場合)
ccbl2002 -Compile,NoLink -MultiThread -UniObjGen subprog.cbl
g++ -o mainprog mainprog.o subprog.o
    -L/opt/HILNGcbl2k/lib
    -lcblxmlrt -lcbl2k -lcbl2kml -lcbl2kmp -lpthread -lm
(Linux(x86)の場合(x64向けLinux環境))
ccbl2002 -Compile,NoLink -MultiThread -UniObjGen subprog.cbl
g++ -m32 -o mainprog mainprog.o subprog.o
    -L/opt/HILNGcbl2k/lib
    -lcblxmlrt -lcbl2k -lcbl2kml -lcbl2kmp -lpthread -lm
(Linux(x64)の場合)
ccbl2002 -Compile,NoLink -MultiThread -UniObjGen subprog.cbl
g++ -o mainprog mainprog.o subprog.o
    -L/opt/HILNGcbl2k64/lib
    -lcblxmlrt -lcbl2k -lcbl2kml -lcbl2kmp -lpthread -lm
注意事項
  • XMLドキュメントの出力では排他制御しません。そのため,マルチスレッドでの動作時に,複数のスレッドから同じXMLドキュメントのファイルや同じXMLドキュメントのバッファへは,出力できません。