ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(データベース連携サービス編)
Interstage

I.4.2 サーバアプリケーションのコンパイル・リンク

サーバアプリケーションのソースとスケルトンのコンパイル方法、およびリンク方法について説明します。

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にインストールした場合)

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がリンクされている場合、ワークユニット起動/停止処理またはクライアントとの通信が無応答状態となる可能性があります。その場合、以下の対処を行ってください。

  1. 当該ワークユニット配下で動作しているアプリケーションプロセスのプロセスIDを特定します。

    ps -ef | grep ワークユニット名
  2. 当該ワークユニット配下で動作しているアプリケーションプロセスの強制停止

    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がリンクされている場合、ワークユニット起動/停止処理またはクライアントとの通信が無応答状態となる可能性があります。その場合、以下の対処を行ってください。

  1. 当該ワークユニット配下で動作しているアプリケーションプロセスのプロセスIDを特定します。

    ps -ef | grep ワークユニット名
  2. 当該ワークユニット配下で動作しているアプリケーションプロセスを強制停止します。

    kill -9 プロセスID