サーバアプリケーションのソースとスケルトンのコンパイル方法、およびリンク方法について説明します。
C++言語でアプリケーションを作成した場合について、コンパイルとリンクの手順の流れを以下に示します。
■Windows(R)の場合
サーバアプリケーション実行可能ファイルは、スケルトンとサーバアプリケーションが使用するライブラリで静的に結合します。データベース管理システムのライブラリ以外で、サーバアプリケーションのリンク時に指定するライブラリを以下に示します。
ライブラリ名 | 格納場所 | 用途 |
---|---|---|
fjotsld.obj | C:\Interstage\ots\lib | グローバルトランザクション連携用オブジェクト(必須) |
libservapl.lib | C:\Interstage\ots\lib | グローバルトランザクション連携用ライブラリ(必須) |
libservaplcpp.lib | C:\Interstage\ots\lib | グローバルトランザクション連携用ライブラリ(必須) |
libtdcurrent.lib | C:\Interstage\ots\lib | グローバルトランザクション連携用ライブラリ(通常時必須、中継サーバアプリケーション作成時不要) |
libtacebasent.lib | C:\Interstage\ots\lib | グローバルトランザクション連携用ライブラリ(必須) |
libfjots.lib | C:\Interstage\ots\lib | グローバルトランザクション連携用ライブラリ(必須) |
odsv.lib | C:\Interstage\odwin\lib | CORBAサービスランタイム(必須) |
odsvcpp.lib | C:\Interstage\odwin\lib | CORBAサービスランタイム(必須) |
odcnscpp.lib | C:\Interstage\odwin\lib | CORBAサービスランタイム(注) |
libtdtmapmcpp.lib | C:\Interstage\td\lib | TDランタイム(通常時必須、中継サーバアプリケーションのデータベースアクセスなしの場合は不要。libtdtmapmcntcpp.lib選択する) |
libtdtmapmcntcpp.lib | C:\Interstage\td\lib | TDランタイム(中継サーバアプリケーションのデータベースアクセスなしの場合)(注) |
libextpapmlibTD.lib | C:\Interstage\extp\lib | TDランタイム(通常時必須、中継サーバアプリケーションのデータベースアクセスなしの場合、libextpapmlibTDNORMCNT.lib選択) |
libextpapmlibTDNORMCNT.lib | C:\Interstage\extp\lib | TDランタイム(中継サーバアプリケーションのデータベースアクセスなしの場合)(注) |
libextpapiskl.lib | C:\Interstage\extp\lib | TDランタイム(必須) |
f3fmalcapi.lib | C:\Interstage\td\lib | TDランタイム(必須) |
f3fmapicpp.lib | C:\Interstage\td\lib | TDランタイム(必須) |
libextpapmcom.lib | C:\Interstage\extp\lib | TDランタイム(必須) |
libextpapmbase.lib | C:\Interstage\extp\lib | TDランタイム(必須) |
注)中継用サーバアプリケーションを作成するときに必要です。
注意
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
サーバアプリケーションとスケルトンをVisual C++でコンパイル後、リンクする場合のオプションの例を以下に示します。
以下の表に示すオプションを設定してください。
Microsoft(R) Visual C++(R) .NET Standard/Microsoft(R) Visual C++(R) .NET Standard 2003/ Microsoft(R) Visual Studio 2005 の場合は、[プロジェクト]-[プロパティ]-[構成プロパティ]-[C/C++]で設定画面を表示することができます。
カテゴリー | 項目 | 設定値 |
---|---|---|
コード生成 | 構造体メンバのアライメント | 4バイト |
使用するランタイム | マルチスレッド(DLL) | |
プリプロセッサ | プリプロセッサの定義 | "OM_PC","OM_WIN32_BUILD", "__STDC__" を追加 |
また、コンパイル時に利用するインクルードファイルおよびライブラリファイルの格納ディレクトリを登録してください。
Microsoft(R) Visual C++(R) .NET Standard/Microsoft(R) Visual C++(R) .NET Standard 2003の場合は、[ツール]-[オプション]-[Projects]-[VC++ ディレクトリ]の「インクルード ファイル」、「ライブラリ ファイル」で設定画面を表示することができます。
Microsoft(R) Visual Studio 2005の場合は、[ツール]-[オプション]-[プロジェクトおよびソリューション]- [VC++ ディレクトリ]の「インクルード ファイル」、「ライブラリ ファイル」で設定画面を表示することができます。
登録例)
(InterstageをC:\Interstageにインストールした場合)
インクルードファイル
C:\Interstage\odwin\include C:\Interstage\td\include C:\Interstage\extp\include C:\Interstage\ots\include
ライブラリファイル
C:\Interstage\odwin\lib C:\Interstage\td\lib C:\Interstage\extp\lib C:\Interstage\ots\lib
■Solarisの場合
注意
スレッドライブラリ(libthread.so)は、スレッドモードで作成する場合にのみ必要です。
サーバアプリケーション実行可能ファイルは、スケルトンとサーバアプリケーションが使用するライブラリで静的に結合します。データベース管理システムのライブラリ以外で、サーバアプリケーションのリンク時に指定するライブラリを以下に示します。
スレッドモードのアプリケーションのコンパイルとリンク
ライブラリ名 | 格納場所 | 用途 |
---|---|---|
libthread.so | /usr/lib | スレッドライブラリ(必須)(注1) |
libtdservapl_mt.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libservaplcpp50_mt.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libtdCurrent.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libCurrent_CPP50.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libtacebase.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libfjotsthr.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libsocket.so | /usr/lib | ソケットライブラリ(注2) |
libnsl.so | /usr/lib | Nslライブラリ(注2) |
libOM.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム |
libOMcncpp50.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(注2) |
libOMcpp50.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(必須) |
libtdtmapmcomcpp.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須。中継アプリケーションの場合、不要です) |
libtdtmapmorb50.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム。(必須。中継アプリケーションの場合も指定します) |
libtdtmapmcomcntcpp.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(中継アプリケーションを作成する場合に指定します。 |
libextpapmlibTD50.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(通常時必須、中継サーバアプリケーションのデータベースアクセスなしの場合、libextpapmlibTDNORMCNT.so選択) |
libextpapmlibTDNORMCNT50.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(グローバルトランザクションとローカルトランザクションが混在する場合) |
libextpapiskl.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdalcapi.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdapicpp50.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmcom50.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmbase50.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
注1)スレッドライブラリは必ず結合するライブラリの中で先頭に指定してください。
注2)中継用サーバアプリケーションを作成するときに必要です。
注意
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
サーバアプリケーションとスケルトンをコンパイル後、リンクする手順について例を以下に示します。
CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include -D_REENTRANT -o tdsample1_s.o -c tdsample1_s.C CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include -D_REENTRANT \ -o TD_TDSAMPLE1_INTF_skel_c++.o -c TD_TDSAMPLE1_INTF_skel_c++.C CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include -D_REENTRANT -o TD_tdsample1_c++.o -c TD_tdsample1_c++.C CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include -D_REENTRANT \ -o tdsample1_s tdsample1_s.o TD_TDSAMPLE1_INTF_skel_c++.o TD_tdsample1_c++.o \ -lthread -lsocket -lnsl /opt/FSUNots/lib/libotsxaora.o \ -L/opt/oracle8/lib -lclntsh -lclient8 -lsql8 -lcommon8 \ -lcore8 -lnls8 \ -L/opt/FSUNots/lib -ltdservapl_mt -lservaplcpp50 \ -ltdCurrent -ltacebase -lfjotsthr \ -L/opt/FSUNod/lib -lOMcpp50 -lOM -lOMcncpp50 \ -L/opt/FSUNextp/lib -lextpapiskl -lextpapmbase50 \ -lextpapmcom50 -lextpapmlibTDNORM50 -lextpapmTDNORM50 \ -lextpmomo -lextpmomo_sys \ -L/opt/FSUNtd/lib -ltdtmapmcomcpp -ltdtmapmorb50 -ltdalcapi -ltdapicpp50
注意
リンクオプションに「-lC」および「-lCrun」を指定しないでください。
プロセスモードのアプリケーションのコンパイルとリンク
アプリケーションをプロセスモードで動作させる場合は、以下のオプションは指定しないでください。
-mt -D_REENTRANT
ライブラリ名 | 格納場所 | 用途 |
---|---|---|
libservapl.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libservaplcpp50.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libCurrentnt.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libCurrent_CPP50.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libtacebasent.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libfjots.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libsocket.so | /usr/lib | ソケットライブラリ(注) |
libnsl.so | /usr/lib | Nslライブラリ(注) |
libOM.so | CORBAサービスのインストールディレクトリ/lib/nt | CORBAサービスランタイム |
libOMcncpp50.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(注) |
libOMcpp50.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(必須) |
libtdtmapmcomcpp_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須。中継サーバアプリケーションを作成する場合は不要です。) |
libtdtmapmorb50_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須。中継サーバアプリケーションの場合でも指定します。) |
libtdtmapmcomcntcpp_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(中継サーバアプリケーションを作成する場合に指定します) |
libextpapmlibTD50_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(通常時必須、中継サーバアプリケーションのデータベースアクセスなしの場合、libextpapmlibTDNORMCNT.so選択) |
libextpapmlibTDNORMCNT50_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(グローバルトランザクションとローカルトランザクションが混在する場合) |
libextpapiskl_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdalcapi_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdapicpp50_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmcom50_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmbase50_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
注)中継用サーバアプリケーションを作成するときに必要です。
注意
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
サーバアプリケーションとスケルトンをコンパイル後、リンクする手順について例を以下に示します。
CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include -o tdsample1_s.o -c tdsample1_s.C CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include \ -o TD_TDSAMPLE1_INTF_skel_c++.o -c TD_TDSAMPLE1_INTF_skel_c++.C CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include -o TD_tdsample1_c++.o -c TD_tdsample1_c++.C CC -I. -I/opt/FSUNod/include -I/opt/FSUNtd/include \ -I/opt/FSUNextp/include \ -o tdsample1_s tdsample1_s.o TD_TDSAMPLE1_INTF_skel_c++.o TD_tdsample1_c++.o \ -lsocket -lnsl /opt/FSUNots/lib/libotsxaora.o \ -L/opt/oracle8/lib -lclntsh -lclient8 -lsql8 -lcommon8 \ -lcore8 -lnls8 -L/opt/FSUNots/lib -lservapl -lservaplcpp50 \ -lCurrentnt -lCurrent -ltacebasent -lfjots \ -L/opt/FSUNod/lib -lOMcpp50 -lOM -lOMcncpp50 \ -L/opt/FSUNextp/lib -lextpapiskl_nt -lextpapmbase50_nt \ -lextpapmcom50_nt -lextpapmlibTDNORM50_nt -lextpapmTDNORM50_nt \ -lextpmomo_nt -lextpmomo_sys_nt \ -L/opt/FSUNtd/lib -ltdtmapmcomcpp_nt -ltdtmapmorb50_nt -ltdalcapi_nt -ltdapicpp50_nt
注)中継用サーバアプリケーションを作成するときに必要です。
注意
作成したアプリケーションライブラリにスレッドライブラリが結合されていないことを確認してください。
アプリケーションのコンパイルならびにリンクの手順に誤りがあった場合や、libthread.soがリンクされている場合、ワークユニット起動/停止処理またはクライアントとの通信が無応答状態となる可能性があります。その場合、以下の対処を行ってください。
当該ワークユニット配下で動作しているアプリケーションプロセスのプロセスIDを特定します。
ps -ef | grep ワークユニット名
当該ワークユニット配下で動作しているアプリケーションプロセスの強制停止
kill -9 プロセスID
■Linuxの場合
注意
スレッドライブラリ(libpthread.so)は、スレッドモードで作成する場合にのみ必要です。
サーバアプリケーション実行可能ファイルは、スケルトンとサーバアプリケーションが使用するライブラリで静的に結合します。データベース管理システムのライブラリ以外で、サーバアプリケーションのリンク時に指定するライブラリを以下に示します。
スレッドモードのアプリケーションのコンパイルとリンク
ライブラリ名 | 格納場所 | 用途 |
---|---|---|
libpthread.so | /usr/lib | スレッドライブラリ(必須)(注1) |
libC.so | /usr/lib | Cライブラリ(必須) |
libtdservapl_mt.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libservaplcpp_mt.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libtdCurrent.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libCurrent_CPP.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libtacebase.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libfjotsthr.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libnsl.so | /usr/lib | Nslライブラリ(注2) |
libOM.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム |
libOMcncpp.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(注2) |
libOMcpp.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(必須) |
libtdtmapmcpp.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdtmapmcntcpp.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(グローバルトランザクションとローカルトランザクションが混在する場合) |
libextpapmlibTD.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(通常時必須、中継サーバアプリケーションのデータベースアクセスなしの場合、libextpapmlibTDNORMCNT.so選択) |
libextpapmlibTDNORMCNT.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(グローバルトランザクションとローカルトランザクションが混在する場合) |
libextpapiskl.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdalcapi.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdapicpp.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmcom.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmbase.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
注1)スレッドライブラリは必ず結合するライブラリの中で先頭に指定してください。
注2)中継用サーバアプリケーションを作成するときに必要です。
注意
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
サーバアプリケーションとスケルトンをコンパイル後、リンクする手順について例を以下に示します。
g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include \ -I/opt/FJSVextp/include -D_REENTRANT -o tdsample1_s.o -c tdsample1_s.C g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include \ -I/opt/FJSVextp/include -D_REENTRANT \ -o TD_TDSAMPLE1_INTF_skel_c++.o -c TD_TDSAMPLE1_INTF_skel_c++.C g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include \ -I/opt/FJSVextp/include -D_REENTRANT -o TD_tdsample1_c++.o -c TD_tdsample1_c++.C g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include \ -I/opt/FJSVextp/include -D_REENTRANT \ -o tdsample1_s tdsample1_s.o TD_TDSAMPLE1_INTF_skel_c++.o TD_tdsample1_c++.o \ -lpthread -lnsl /opt/FJSVots/lib/libotsxaora.o \ -L/opt/oracle9i/lib -lclntsh -lclient9 -lsql9 -lcommon9 \ -lcore9 -lnls9 -L/opt/FJSVots/lib -ltdservapl_mt -lservaplcpp \ -ltdCurrent -ltacebase -lfjotsthr -L/opt/FJSVod/lib -lOMcpp -lOM -lOMcncpp \ -L/opt/FJSVextp/lib -lextpapiskl -lextpapmbase \ -lextpapmcom -lextpapmlibTDNORM -lextpapmTDNORM -lextpmomo -lextpmomo_sys \ -L/opt/FJSVtd/lib -ltdtmapmcpp -ltdalcapi -ltdapicpp -L/opt/SUNWspro/lib -lC
\:継続行
プロセスモードのアプリケーションのコンパイルとリンク
アプリケーションをプロセスモードで動作させる場合は、以下のオプションは指定しないでください。
-D_REENTRANT
ライブラリ名 | 格納場所 | 用途 |
---|---|---|
libC.so | /usr/lib | Cライブラリ(必須) |
libservapl.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libservaplcpp.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libCurrentnt.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libCurrent_CPP.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(中継サーバアプリケーション時不要) |
libtacebasent.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libfjots.so | データベース連携サービスのインストールディレクトリ/lib | グローバルトランザクション連携用ライブラリ(必須) |
libnsl.so | /usr/lib | Nslライブラリ(注) |
libOM.so | CORBAサービスのインストールディレクトリ/lib/nt | CORBAサービスランタイム |
libOMcncpp.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(注) |
libOMcpp.so | CORBAサービスのインストールディレクトリ/lib | CORBAサービスランタイム(必須) |
libtdtmapmcpp_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdtmapmcntcpp_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(グローバルトランザクションとローカルトランザクションが混在する場合) |
libextpapmlibTD_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(通常時必須、中継サーバアプリケーションのデータベースアクセスなしの場合、libextpapmlibTDNORMCNT.so選択) |
libextpapmlibTDNORMCNT_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(グローバルトランザクションとローカルトランザクションが混在する場合) |
libextpapiskl_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdalcapi_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libtdapicpp_nt.so | コンポーネントトランザクションサービスのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmcom_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
libextpapmbase_nt.so | EXTPのインストールディレクトリ/lib | コンポーネントトランザクションサービスランタイム(必須) |
注)中継用サーバアプリケーションを作成するときに必要です。
注意
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
サーバアプリケーションとスケルトンをコンパイル後、リンクする手順について例を以下に示します。
g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include \ -I/opt/FJSVextp/include -o tdsample1_s.o -c tdsample1_s.C g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include -I/opt/FJSVextp/include \ -o TD_TDSAMPLE1_INTF_skel_c++.o -c TD_TDSAMPLE1_INTF_skel_c++.C g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include -I/opt/FJSVextp/include \ -o TD_tdsample1_c++.o -c TD_tdsample1_c++.C g++ -I. -I/opt/FJSVod/include -I/opt/FJSVtd/include -I/opt/FJSVextp/include \ -o tdsample1_s tdsample1_s.o TD_TDSAMPLE1_INTF_skel_c++.o TD_tdsample1_c++.o \ -lnsl /opt/FJSVots/lib/libotsxaora.o \ -L/opt/oracle9i/lib -lclntsh -lclient9 -lsql9 -lcommon9 -lcore9 -lnls9 \ -L/opt/FJSVots/lib -lservapl -lservaplcpp -lCurrentnt -ltacebasent -lfjots \ -L/opt/FJSVod/lib/nt -lOM -L/opt/FJSVod/lib -lOMcpp -lOMcncpp \ -L/opt/FJSVextp/lib -lextpapiskl_nt -lextpapmbase_nt \ -lextpapmcom_nt -lextpapmlibTDNORM_nt -lextpapmTDNORM_nt -lextpmomo_nt -lextpmomo_sys_nt \ -L/opt/FJSVtd/lib -ltdtmapmcpp_nt -ltdalcapi_nt -ltdapicpp_nt -L/opt/SUNWspro/lib -lC
注)中継用サーバアプリケーションを作成するときに必要です。
注意
作成したアプリケーションライブラリにスレッドライブラリが結合されていないことを確認してください。
アプリケーションのコンパイルならびにリンクの手順に誤りがあった場合や、libpthread.soがリンクされている場合、ワークユニット起動/停止処理またはクライアントとの通信が無応答状態となる可能性があります。その場合、以下の対処を行ってください。
当該ワークユニット配下で動作しているアプリケーションプロセスのプロセスIDを特定します。
ps -ef | grep ワークユニット名
当該ワークユニット配下で動作しているアプリケーションプロセスを強制停止します。
kill -9 プロセスID