Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Extension for .NET Framework 使用の手引


4.5.4 サービス定義から生成したクライアントスタブを使用する場合のデータ長の見積もり

サービス定義から生成したクライアントスタブを使用する場合,Extension .NETがカスタムレコードと,送受信メッセージの間の変換をします。ただし,送受信メッセージがRPCメッセージの最大長を超えないように,要求メッセージ長および応答メッセージ長の値を見積もっておく必要があります。

要求メッセージ長および応答メッセージ長の見積もり式を次に示します

要求メッセージ長=データ型定義の各メンバのデータ長の合計値

応答メッセージ長=データ型定義の各メンバのデータ長の合計値

データ長の合計値には,データ型ごとのデータ長を合計した値を代入してください。各データ型のデータ長を次の表に示します。

表4‒7 各データ型のデータ長

データ型

データ長(バイト)

char

1

short

2

int

4

long

4

char[a]

1×a

byte[a]

1×a

short[a]

2×a

int[a]

4×a

long[a]

4×a

char[a][b

a×b

struct

構造体の各メンバのサイズの合計

struct[a]

構造体の各メンバのサイズの合計×a

(凡例)

a,b:配列の要素数

なお,可変長構造体配列の場合,配列の最大要素数で見積もるようにしてください。

要求メッセージ長および応答メッセージ長の見積もりが完了したら,カスタムレコードクラスのprivate constフィールドの_lengthを参照して,見積もり後のメッセージ長を確認します。ただし,可変長構造体配列を使用している場合,この方法では確認できません。可変長構造体配列を使用している場合は,spp2cstubコマンドに-bオプションを指定してコマンドを実行し,標準出力に出力されたバッファサイズを参照して,メッセージ長を確認してください。