業務共通制御をコンパイル、およびリンクし、デバッグします。
■ライブラリ格納ディレクトリの作成
サーバ上で、プレロードライブラリ格納ディレクトリ、およびダイナミックロードライブラリ格納ディレクトリと同じ階層に、新規ディレクトリを作成してください。
作成したディレクトリには業務共通制御のライブラリ、および定義ファイルを格納し、配備を行うときに使用されます。
ディレクトリの作成例を示します。
それぞれのディレクトリに格納するユーザ作成ライブラリ、および定義ファイルを、以下に示します。
ディレクトリ | 格納ファイル | 説明 |
---|---|---|
プレロードライブラリ格納ディレクトリ | プレロード対象のユーザ作成ライブラリ | 業務ロジックのライブラリを格納するディレクトリです。 |
ダイナミックロードライブラリ格納ディレクトリ | ダイナミックロード対象のユーザ作成ライブラリ | |
業務共通制御格納ディレクトリ | 業務共通制御のライブラリ、業務共通制御アプリケーションインタフェース定義ファイル、および制御アプリケーション定義ファイル | 業務共通制御のライブラリ、および定義ファイルを格納するディレクトリです。 |
注意
初期処理および終了処理を含むユーザ作成ライブラリは、業務共通制御ライブラリ格納ディレクトリ、またはプレロードライブラリ格納ディレクトリに格納してください。
アプリケーション配備で指定可能な関数、およびサーバアプリケーションの個数は、1~1000個までです。
プレロード、およびダイナミックロードの詳細については、“Interstage Business Application Server 解説書”の“ライブラリのロード”を参照してください。
業務共通制御アプリケーションインタフェース定義ファイル、および制御アプリケーション定義ファイルは、業務共通制御ライブラリと同じディレクトリに格納してください。
■コンパイルとリンク
プロセスモード版とスレッドモード版では、コンパイルオプションが異なります。なお、Linux版のコンパイルには、OSに含まれているコンパイラを使用してください。
注意
プロセスモードを使用できるのは、SolarisおよびLinuxだけです。
業務共通制御をリンクする際には、以下のライブラリを使用します。
プロセスモード版:libapfwcdr_nt.so
スレッドモード版:libapfwcdr.so
スレッドモード版:libapfwcdr.lib
業務共通制御APIをリンクする際には、以下のライブラリを使用します。
プロセスモード版:libapfwsctxt_nt.so
スレッドモード版:libapfwsctxt.so
スレッドモード版:libapfwsctxt.lib
また、作成した業務共通制御に応じて使用するライブラリを追加してください。
コンパイルおよびリンクの例を示します。例では、以下のファイルおよびパスを使用しています。
振分け制御:settarget.c
振分け制御用の実行基盤インタフェースソースファイル:APFW_SET_TARGET_apfwskel.c
業務共通制御の内部データ用ソースファイル:IDL_apfwcdr.c
作成するオブジェクト名
libsettarget.so
libsettarget.dll
インクルードファイルパス
/opt/FJSVibs/include
[Interstageのインストールディレクトリ]\BAS\include
ライブラリパス
/opt/FJSVibs/lib
[Interstageのインストールディレクトリ]\BAS\lib
業務共通制御実行基盤インタフェース生成ツール、および振分け制御のソースファイルは、同一ディレクトリに格納(ヘッダファイルも同一ディレクトリに格納されているため、インクルードファイルパス指定は“.”になる)
業務共通制御APIを使用
プロセスモード版
% cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -o settarget.o settarget.c % cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -o APFW_SET_TARGET_apfwskel.o APFW_SET_TARGET_apfwskel.c % cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -o IDL_apfwcdr.o IDL_apfwcdr.c % cc -G -xcode=pic32 -m64 -L/opt/FJSVibs/lib -lapfwcdr_nt -lapfwsctxt_nt -o libsettarget.so settarget.o APFW_SET_TARGET_apfwskel.o IDL_apfwcdr.o |
スレッドモード版
% cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -D_REENTRANT -o settarget.o settarget.c % cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -D_REENTRANT -o APFW_SET_TARGET_apfwskel.o APFW_SET_TARGET_apfwskel.c % cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -D_REENTRANT -o IDL_apfwcdr.o IDL_apfwcdr.c % cc -G -xcode=pic32 -m64 -D_REENTRANT -lpthread -L/opt/FJSVibs/lib -lapfwcdr -lapfwsctxt -o libsettarget.so settarget.o APFW_SET_TARGET_apfwskel.o IDL_apfwcdr.o |
プロセスモード版
% gcc -c -I/opt/FJSVibs/include -I. -fPIC -o settarget.o settarget.c % gcc -c -I/opt/FJSVibs/include -I. -fPIC -o APFW_SET_TARGET_apfwskel.o APFW_SET_TARGET_apfwskel.c % gcc -c -I/opt/FJSVibs/include -I. -fPIC -o IDL_apfwcdr.o IDL_apfwcdr.c % gcc -shared -lnsl -fPIC -L/opt/FJSVibs/lib -lapfwcdr_nt -lapfwsctxt_nt -o libsettarget.so settarget.o APFW_SET_TARGET_apfwskel.o IDL_apfwcdr.o |
スレッドモード版
% gcc -c -I/opt/FJSVibs/include -I. -fPIC -D_REENTRANT -o settarget.o settarget.c % gcc -c -I/opt/FJSVibs/include -I. -fPIC -D_REENTRANT -o APFW_SET_TARGET_apfwskel.o APFW_SET_TARGET_apfwskel.c % gcc -c -I/opt/FJSVibs/include -I. -fPIC -D_REENTRANT -o IDL_apfwcdr.o IDL_apfwcdr.c % gcc -shared -lpthread -lnsl -fPIC -D_REENTRANT -L/opt/FJSVibs/lib -lapfwcdr -lapfwsctxt -o libsettarget.so settarget.o APFW_SET_TARGET_apfwskel.o IDL_apfwcdr.o |
業務共通制御のライブラリは、任意の単位で作成することができます。各業務共通制御を1つのライブラリにまとめて作成することも、複数のライブラリに分けて作成することも可能です。
ただし、各業務共通制御と、それに対応した業務共通制御用の実行基盤インタフェースは、同一ライブラリ内に格納されるように作成してください。
以下に例を示します。
作成単位 | ソースファイル |
---|---|
各業務共通制御を1つのライブラリにまとめて作成 | 振分け制御ソースファイル(注1) |
各業務共通制御でライブラリを分けて作成 | 振分け制御ソースファイル |
業務前制御ソースファイル | |
業務後制御ソースファイル | |
結果編集制御ソースファイル |
注1)各制御ロジックをそれぞれ別のソースファイルに記述した場合の例です。
■デバッグ
業務共通制御をデバッグするには、以下の方法があります。
アプリケーションサーバに配備せずに単体実行する
アプリケーション連携実行基盤が出力する標準ログから異常を検出する
詳細は、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”の“システムログを使用した異常原因の調査方法”を参照してください。