Interstage Application Server V7.0(Interstage V7.0)での変更内容を説明します。
システム資源について
共有メモリに対するシステムパラメタの計算式が変更されました。詳細は「チューニングガイド」を参照してください。
リクエストの振り分け方式について
以下に該当するプロセス多重のCORBAサーバに対するリクエストの振り分け方式が変更されました。
ワークユニット定義の「Request Assignment Mode」ステートメントに「FIFO」を指定したCORBAワークユニット
ワークユニットでない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を設定した際のクライアントの動作が変更されました。
HTTPトンネリングを使用しているクライアントは、リクエスト送信後に0秒で即時タイムアウトとなります。
HTTPトンネリングを使用していないクライアントは、リクエスト送信後にサーバから返信が来るまで無限待ちを行います。
HTTPトンネリングの使用・未使用にかかわらず、クライアントは、リクエスト送信後にサーバから返信が来るまで無限待ちを行います。
CORBA-Javaアプリケーションのメモリ使用改善について
CORBA-JavaアプリケーションでCORBAサービスが獲得する通信バッファの解放タイミングが、FullGC依存から通信ごとに変更されたため、アプリケーションのメモリ使用量が改善されました。
この改善効果を得るためには、IDLのコンパイルおよびJavaのコンパイルを再度実行してください。
Windows(R)のアプリケーションのコンパイルオプション変更について
CORBAサービスが提供しているライブラリの使用するランタイムがスタティックバージョンのライブラリ(Visual C++のコンパイルオプションで「マルチスレッド」を選択)からダイナミックバージョンのライブラリ(Visual C++のコンパイルオプションで「マルチスレッド(DLL)」を選択)に変更されました。
Windows(R)では一つのプロセス内で、スタティックバージョンとダイナミックバージョンのランタイムライブラリの混在が許されていないため、Visual C++のコンパイルオプションで「使用するランタイム」を「マルチスレッド」に設定して作成したInterstage V6.0以前のC/C++ユーザアプリケーションは、Interstage V7.0以降で使用することができません。そのため、ユーザアプリケーションを移行する場合は、ユーザアプリケーションのコンパイルオプションも変更してアプリケーションを再ビルドする必要があります。再ビルドを行わないとCORBAワークユニットアプリケーションの標準出力/標準エラー出力がstdoutファイル/stderrファイルに出力されません。また、アプリケーションの動作に異常が発生する可能性があります。
以下のような手順で表に示すVisual C++のオプションを設定してください。
[プロジェクト]-[プロパティ]-[構成プロパティ]-[C/C++]
カテゴリ | 項目 | 設定値 |
コード生成 | 使用するランタイム | マルチスレッド(DLL) (注) |
注) Interstage V6.0以前で「マルチスレッド」と設定されていた値を変更します。
プロセスモードクライアントの無通信監視切断時の動作について
無通信監視(configパラメタ「period_idle_con_timeout」で設定されるタイムアウト監視)によるコネクション切断が発生した際の、プロセスモードクライアントにおける動作が変更されました。
無通信監視切断発生後に再接続を行おうとすると、COMM_FAILURE例外が発生して接続に失敗します。
無通信監視切断発生後に再接続を行う場合、同期通信のときは接続に成功します。非同期通信のときは、Interstage V6.0以前と同様にCOMM_FAILURE例外が発生して接続に失敗します。
CORBAサービス資源ファイルの移入について
CORBAサービス資源ファイルの移入において、既存環境のインタフェースリポジトリサービス資源のデータベースの移入処理が変更されました。
CORBAサービス資源ファイルを移入する際、インタフェースリポジトリサービス資源のデータベースの格納先に、すでにインタフェースリポジトリサービス資源のデータベースファイルが存在している場合は、エラーメッセージod16271を出力し、移入処理を中止します。
そのため、移入する前に、必ずインタフェースリポジトリサービス資源のデータベースの格納先に存在するインタフェースリポジトリサービス資源のデータベースを削除しておく必要があります。
CORBAサービス資源ファイルを移入する際、インタフェースリポジトリサービス資源のデータベースの格納先に、すでにインタフェースリポジトリサービス資源のデータベースファイルが存在し、かつデータベースファイルが移入前のローカルホストのインタフェースリポジトリが使用しているファイルであった場合は、データベースファイルを削除して移入処理を続行します。データベースファイルが移入前のローカルホストのインタフェースリポジトリが使用しているファイルではなかった場合は、Interstage V6.0以前と同様にエラーメッセージod16271を出力し、移入処理を中止します。
したがって、移入前のローカルホストのインタフェースリポジトリを使用する環境に対して移入する場合、事前にインタフェースリポジトリサービス資源のデータベースを削除しておく必要はありません。
CORBA-Javaアプリケーションのオブジェクトリファレンス生成について
CORBA-Javaサーバアプリケーションでオブジェクトリファレンスを動的生成した場合、使用可能なオブジェクトID(oid)はシステム内で一意となります。
このため、デフォルトインスタンス方式のCORBA-Javaサーバアプリケーションをプロセス多重で動作させる場合、RequestProcessingポリシに「USE_DEFAULT_SERVANT」を指定していないPOA(rootPOAなど)を使用して動的に作成したオブジェクトリファレンスで、サーバアプリケーションを呼び出すと、システム例外OBJECT_NOT_EXISTが発生することがあります。
デフォルトインスタンス方式のCORBA-Javaサーバアプリケーションをプロセス多重で動作させる場合、アプリケーションプログラムにおいて以下のオブジェクトリファレンスを使用してください。
RequestProcessingポリシに「USE_DEFAULT_SERVANT」を指定したPOAを使用して動的生成したオブジェクリファレンス
事前生成方式で作成したオブジェクトリファレンス
デフォルトインスタンス方式の詳細については、「アプリケーション作成ガイド(CORBAサービス編)」の「インスタンス管理とアプリケーション形態」-「アプリケーション形態の種別」を参照してください。
CORBA-JavaアプリケーションのHelperクラスについて
Interstage V7.0以降では、Helperクラスの修飾子にabstarctが追加されました。
CORBA-Javaアプリケーションにおいて、Helperクラスをインスタンス化している場合は、アプリケーションのコンパイル時・実行時にエラーが発生します。アプリケーションにおいて、インスタンス化しないでHelperクラスのメソッドを使用するように修正してください。
Javaインタフェースについて(JDK/JRE1.3以前からの移行)
Interstage V7.0以降では、JDK/JREのサポートバージョンが変更されました。
JDK/JRE1.3以前のjavaコンパイラでコンパイルしたアプリケーションは、本製品で使用しているJDK/JREのjavaコンパイラで再度コンパイルする必要があります。JavaインタフェースのJDK/JRE1.3以前からの移行については、「アプリケーション作成ガイド(CORBAサービス編)」の「旧バージョンからの移行上の注意」-「Javaインタフェース(JDK/JRE1.3以前からの移行)」を参照してください。
コマンドの引数指定方法について
odlistnsコマンドおよびodimportnsコマンドのオプションの指定方法が変更されました。
odlistnsコマンドおよびodimportnsコマンドの実行時に、1つのオプションの要素に複数のオプションを指定した場合は、複数のオプションとして動作します。たとえば、「odlistns -lR」と実行すると、「odlistns -l -R」として動作します。ただし、推奨ではありません。
プラットフォーム間でコマンドの指定方法を統一したことにより、「リファレンスマニュアル(コマンド編)」の「形式」で説明している指定方法以外では動作しません。したがって、odlistnsコマンドおよびodimportnsコマンドの実行時に、1つのオプション要素に複数のオプションを指定した場合は、最初のオプションだけが有効となり、2つ目以降のオプションは無効となります。複数のオプションを指定する場合は、「リファレンスマニュアル(コマンド編)」の「形式」のとおり、 オプションごとに指定してください。