サーバアプリケーションをコンパイル、およびリンクし、デバッグします。
■ライブラリ格納ディレクトリの作成
サーバ上で、任意のディレクトリに、以下の構成で新規ディレクトリを作成してください。
これらのディレクトリにはユーザライブラリが格納され、配備を行うときに使用されます。
ディレクトリの作成例を示します。
それぞれのディレクトリに格納するユーザ作成ライブラリを、以下に示します。
ディレクトリ | 格納ファイル | 説明 |
---|---|---|
プレロードライブラリ格納ディレクトリ | プレロード対象のユーザ作成ライブラリ | どちらかのディレクトリに、1つ以上のライブラリを配置する必要があります。 |
ダイナミックロードライブラリ格納ディレクトリ | ダイナミックロード対象のユーザ作成ライブラリ |
注意
初期処理および終了処理を含むユーザ作成ライブラリは、業務共通制御ライブラリ格納ディレクトリ、またはプレロードライブラリ格納ディレクトリに格納してください。
アプリケーション配備で指定可能な関数、およびサーバアプリケーションの個数は、1~1000個までです。
プレロード、およびダイナミックロードの詳細については、“Interstage Business Application Server 解説書”の“ライブラリのロード”を参照してください。
■コンパイルとリンク
◆Solaris、Linuxの場合
以下ではLinux、およびSolarisでのコンパイル、およびリンクの方法を示します。
プロセスモード版とスレッドモード版では、コンパイルオプションが異なります。なお、Linuxのコンパイルには、OSに含まれているコンパイラを使用してください。
サーバアプリケーションをリンクする際には、以下のライブラリを使用します。
プロセスモード版:libapfwcdr_nt.so
スレッドモード版:libapfwcdr.so
また、作成したサーバアプリケーションに応じて使用するライブラリを追加してください。
コンパイルおよびリンクの例を示します。例では、以下のファイルおよびパスを使用しています。
業務処理:serverapl.c
C言語実行基盤インタフェースソースファイル:IDL_apfwskel.c
C言語実行基盤インタフェース内部データ用ソースファイル:IDL_apfwcdr.c
作成するオブジェクト名:libserverapl.so
インクルードファイルパス:/opt/FJSVibs/include
ライブラリパス:/opt/FJSVibs/lib
C言語実行基盤インタフェース生成ツール、および業務処理のソースファイルは、同一ディレクトリに格納(ヘッダファイルも同一ディレクトリに格納されているため、インクルードファイルパス指定は“.”になる)
プロセスモード版
% cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -o serverapl.o serverapl.c % cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -o IDL_apfwskel.o IDL_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 -o libserverapl.so serverapl.o IDL_apfwskel.o IDL_apfwcdr.o |
スレッドモード版
% cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -D_REENTRANT -o serverapl.o serverapl.c % cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -D_REENTRANT -o IDL_apfwskel.o IDL_apfwskel.c % cc -c -I/opt/FJSVibs/include -I. -xcode=pic32 -m64 -D_REENTRANT -o IDL_apfwcdr.o IDL_apfwcdr.c % cc -G -D_REENTRANT -xcode=pic32 -m64 -lpthread -L/opt/FJSVibs/lib -lapfwcdr -o libserverapl.so serverapl.o IDL_apfwskel.o IDL_apfwcdr.o |
プロセスモード版
% gcc -c -I/opt/FJSVibs/include -I. -fPIC -o serverapl.o serverapl.c % gcc -c -I/opt/FJSVibs/include -I. -fPIC -o IDL_apfwskel.o IDL_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 -o libserverapl.so serverapl.o IDL_apfwskel.o IDL_apfwcdr.o |
スレッドモード版
% gcc -c -I/opt/FJSVibs/include -I. -fPIC -D_REENTRANT -o serverapl.o serverapl.c % gcc -c -I/opt/FJSVibs/include -I. -fPIC -D_REENTRANT -o IDL_apfwskel.o IDL_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 -o libserverapl.so serverapl.o IDL_apfwskel.o IDL_apfwcdr.o |
前処理、後処理、エラー処理、およびトランザクション後メッセージ編集処理を使用する際に、サーバアプリケーションと別ソースファイルに記述している場合、業務処理のソースファイルと合わせてコンパイルを行い、同一ライブラリ内に格納されるように作成してください。
初期処理、および終了処理は、サーバアプリケーションとは異なるライブラリとして作成します。
初期処理、および終了処理のライブラリを作成するには、業務処理のコンパイル、リンク処理と同様のオプションを指定して作成してください。
ライブラリは、以下に示す単位で作成してください。
ライブラリ | ソースファイル |
---|---|
サーバアプリケーション ライブラリ | 業務処理ソースファイル |
初期処理ライブラリ | 初期処理ソースファイル |
終了処理ライブラリ | 終了処理ソースファイル |
注1)各出口処理を使用する場合で、かつ業務処理と別ソースファイルに記述する場合にだけ指定が必要です。
注2)C実行基盤インタフェースは、以下のソースファイルから構成されます。
C言語実行基盤インタフェースソースファイル:XXX_apfwskel.c
C言語実行基盤インタフェース内部データ用ソースファイル:XXX_apfwcdr.c
◆Windowsの場合
サーバがWindowsの場合は“Interstage Business Application Server システム設計ガイド”に記載のVisual Studioを使用して、コンパイル、リンク、およびデバッグを行ってください。
インクルードファイルパスには、以下を指定してください。
インクルードファイルパス:[Interstageのインストールディレクトリ]\BAS\include
ライブラリパスには、以下を指定してください。
ライブラリパス:[Interstageのインストールディレクトリ]\BAS\lib
サーバアプリケーションをリンクする際には、以下のライブラリを使用します。
スレッドモード版:libapfwcdr.lib
また、作成したサーバアプリケーションに応じて使用するライブラリを追加してください。
コンパイルを実行する場合は、以下のオプションを設定してください。
カテゴリ | 項目 | 設定値 |
---|---|---|
コード生成 | 構造体メンバのアライメント | 8バイト |
使用するランタイム | マルチスレッド(DLL) | |
最適化 |
| デフォルトを推奨 |
プリプロセッサ | プリプロセッサの定義 | "APFW_WIN_BUILD","OM_PC","OM_WIN32_BUILD", |
言語 | wchar_tをビルトメイン型として扱う | いいえ |
詳細 | 呼び出し規約 | _cdecl |
注1)"__STDC__"を設定することにより、Microsoft拡張機能を前提とする処理でコンパイルエラーが発生する場合があります。この場合、CORBAアプリケーション用の処理とMicrosoft拡張機能を前提とする処理のソースを分けて、Microsoft拡張機能を前提とする処理のソースの先頭に「#undef __STDC__」を追加する対処を行ってください。
注意
Visual Studioを使用してコンパイル、リンクした場合は、対応するバージョンのVisual C++再頒布可能パッケージを実行環境にインストールしてください。
■デバッグ
サーバアプリケーションをデバッグするには、以下の方法があります。
アプリケーションサーバに配備せずに単体実行する
アプリケーション連携実行基盤が出力する標準ログから異常を検出する
詳細は、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”の“システムログを使用した異常原因の調査方法”を参照してください。