Interstage Application Server/Interstage Web Server 移行ガイド |
目次 索引 |
第7章 OLTP機能の移行 | > 7.3 CORBAサービスの移行 |
Interstage Application Server V7.0(Interstage V7.0)での変更内容を説明します。
共有メモリに対するシステムパラメタの計算式が変更されました。詳細は“チューニングガイド”を参照してください。
以下に該当するプロセス多重のCORBAサーバに対するリクエストの振り分け方式が変更されました。
Interstage V7.0以降でのリクエストの振り分け方式では、振り分け先の対象となるサーバプロセスの中で最も長い時間リクエストが振り分けられていないサーバプロセスにリクエストを振り分けます。
リクエストを振り分けたサーバプロセスからリクエスト処理用の空きスレッドがなくなった場合、振り分け先の対象から外れます。
振り分け先の対象から外れていたサーバプロセスに空きスレッドができた場合、振り分け先の対象に含めます。
サーバのプロセス多重度を3、スレッド多重度を2とした場合(多重度はOD_impl_instコマンドで指定します。)
HTTPトンネリングは以下の製品で利用可能です。
gwconfigファイルの以下のパラメタについて指定範囲が変更されました。詳細については“チューニングガイド”を参照してください。
パラメタ名
Interstage V6.0以前
Interstage V7.0以降
timeout_response
1〜3600
0〜100000000
timeout_session
1〜900
0〜2147483647
timeout_connection
1〜600
0〜2147483647
Interstage V7.0.1、V7.0L11では、C言語およびC++言語のサンプルプログラムのサーバの動作モードがCOMPATIBLEからSYNC_ENDに変更されました。Interstage管理コンソールを使用してサンプルのサーバアプリケーションをCORBAワークユニットに配備する場合、動作モードにSYNC_ENDを指定する必要があります。
configパラメタ“period_receive_timeout”に0を設定した際のクライアントの動作が変更されました。
CORBA-JavaアプリケーションでCORBAサービスが獲得する通信バッファの解放タイミングが、FullGC依存から通信ごとに変更されたため、アプリケーションのメモリ使用量が改善されました。
この改善効果を得るためには、IDLのコンパイルおよびJavaのコンパイルを再度実行してください。
なお、JDK1.3以前を使用する場合は、ネーミングサービスへのアクセスに使用しているクラスをorg.omg.CosNaming.NamingContextから、org.omg.CosNaming.NamingContextExtに変更して、ネーミングサービスへアクセスする必要があります。
Interstage V6.0でのプログラム記述例
-------------------------------------------------------------------------------
org.omg.CORBA.Object tmpObj =
Orb.resolve_initial_referneces("NamingService");
org.omg.CosNaming.NamingContext Cos =
org.omg.CosNaming.NamingContextHelper.narrow(tmpObj);
-------------------------------------------------------------------------------
Interstage V7.0でのプログラム記述例
-------------------------------------------------------------------------------
org.omg.CORBA.Object tmpObj =
Orb.resolve_initial_referneces("NamingService");
org.omg.CosNaming.NamingContextExt Cos =
org.omg.CosNaming.NamingContextExtHelper.narrow(tmpObj);
-------------------------------------------------------------------------------
CORBAサービスが提供しているライブラリの使用するランタイムがスタティックバージョンのライブラリ(Visual C++のコンパイルオプションで“マルチスレッド”を選択)からダイナミックバージョンのライブラリ(Visual C++のコンパイルオプションで“マルチスレッド(DLL)”を選択)に変更されました。
Windows(R)では一つのプロセス内で、スタティックバージョンとダイナミックバージョンのランタイムライブラリの混在が許されていないため、Visual C++のコンパイルオプションで“使用するランタイム”を“マルチスレッド”に設定して作成したInterstage V6.0以前のC/C++ユーザアプリケーションは、Interstage V7.0以降で使用することができません。そのため、ユーザアプリケーションを移行する場合には、ユーザアプリケーションのコンパイルオプションも変更してアプリケーションを再ビルドする必要があります。再ビルドを行わないとCORBAワークユニットアプリケーションの標準出力/標準エラー出力がstdoutファイル/stderrファイルに出力されません。また、アプリケーションの動作に異常が発生する可能性があります。
以下のような手順で表に示すVisual C++のオプションを設定してください。
カテゴリ
項目
設定値
コード生成
使用するランタイム
マルチスレッド(DLL) (注)
注) Interstage V6.0以前で“マルチスレッド”と設定されていた値を変更します。
無通信監視(configパラメタ“period_idle_con_timeout”で設定されるタイムアウト監視)によるコネクション切断が発生した際の、プロセスモードクライアントにおける動作が変更されました。
CORBAサービス資源ファイルの移入において、既存環境のインタフェースリポジトリサービス資源のデータベースの移入処理が変更されました。
CORBA-Javaサーバアプリケーションでオブジェクトリファレンスを動的生成した場合、使用可能なオブジェクトID(oid)はシステム内で一意となります。
このため、デフォルトインスタンス方式のCORBA-Javaサーバアプリケーションをプロセス多重で動作させる場合、RequestProcessingポリシに“USE_DEFAULT_SERVANT”を指定していないPOA(rootPOAなど)を使用して動的に作成したオブジェクトリファレンスで、サーバアプリケーションを呼び出すと、システム例外OBJECT_NOT_EXISTが発生することがあります。
デフォルトインスタンス方式のCORBA-Javaサーバアプリケーションをプロセス多重で動作させる場合、アプリケーションプログラムにおいて以下のオブジェクトリファレンスを使用してください。
デフォルトインスタンス方式の詳細については、“アプリケーション作成ガイド(CORBAサービス編)”の“アプリケーションの開発(Java言語)”−“インスタンス管理とアプリケーション形態”−“アプリケーション形態の種別”を参照してください。
Interstage Application Server V7.0以降では、標準インストールでインストールされるJDK/JREのバージョンがJDK/JRE1.4以降に変更されました。
JDK/JRE1.3以前で動作していたCORBA-JavaアプリケーションをJDK/JRE1.4以降へ移行する場合は、JDK1.4以降のjavaコンパイラで再度アプリケーションをコンパイルする必要があります。JavaインタフェースのJDK/JRE1.3以前からJDK/JRE1.4以降への移行については、“アプリケーション作成ガイド(CORBAサービス編)”の“Javaインタフェース(JDK/JRE1.3以前からJDK/JRE1.4以降への移行)”を参照してください。
odlistnsコマンドおよびodimportnsコマンドのオプションの指定方法が変更されました。
目次 索引 |