分散トランザクション処理機能 TP1/Connector for .NET Framework 使用の手引
RPC要求にクライアントスタブを使用する場合,入出力パラメタやカスタムレコードクラスと,入出力メッセージの間の変換をConnector .NETが行うため,Connector .NETのアプリケーションは直接バッファ長を意識する必要はありません。しかし,バッファプーリング機能使用時のバッファサイズとプール数を適切に設定するために,入力メッセージ長および応答メッセージ長の値を見積もっておく必要があります。
次に示す計算式を用いて,入力および出力で使用するデータ型ごとの合計値を計算してください。
計算式に代入する値を,次の表に示します。
表1-7 計算式に代入する値(.NETインタフェース定義)
パラメタのデータ型 | メッセージ上のサイズの最大値(バイト) |
---|---|
System.Byte | 1 |
System.Int16 | 3 |
System.Int32 | 7 |
System.Int64 | 15 |
System.String | 格納された文字数×2+13 |
System.Byte[] | a+11 |
System.Int16[] | 2×a+11 |
System.Int32[] | 4×a+11 |
System.Int64[] | 8×a+11 |
System.String[] | Σ(格納された文字数×2+13)+11 |
TP1ユーザ構造体 | 各メンバの最大長の合計+4 |
TP1ユーザ構造体配列 | Σ(各メンバの最大長の合計+4)+11 |
Client .NETのトラブルシュート機能であるデータトレースを使用して,実際に送受信されたメッセージ長を確認できます。データトレースの詳細については,マニュアル「TP1/Client for .NET Framework 使用の手引」を参照してください。
次に示す計算式を用いて,入力および出力で使用するデータ型ごとの合計値を計算してください。
計算式に代入する値を,次の表に示します。
表1-8 計算式に代入する値(サービス定義)
データ型定義のメンバのデータ型 | メッセージ上のサイズ(バイト) |
---|---|
char | 1 |
short | 2 |
int | 4 |
long | 4 |
char[a] | 1×a |
char[a][b] | a×b |
short[a] | 2×a |
int[a] | 4×a |
long[a] | 4×a |
byte[a] | 1×a |
struct | 構造体の各メンバのサイズの合計 |
struct[a] | 構造体の各メンバのサイズの合計×a |
カスタムレコードクラスのソースコードのprivate constフィールド_lengthを参照して,計算後のメッセージ上のサイズが確認できます。
カスタムレコードクラスごとに必要なバッファサイズは,クライアントスタブ生成コマンド(サービス定義用)(spp2cstub)に-bオプションを指定して実行することで確認できます。運用コマンドの詳細については,「4. 運用コマンド」の「spp2cstub(クライアントスタブ生成コマンド(サービス定義用))」を参照してください。
All Rights Reserved. Copyright (C) 2006, 2009, Hitachi, Ltd.