分散トランザクション処理機能 TP1/Extension for .NET Framework 使用の手引
サービス定義から生成したクライアントスタブを使用する場合,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 |
なお,可変長構造体配列の場合,配列の最大要素数で見積もるようにしてください。
要求メッセージ長および応答メッセージ長の見積もりが完了したら,カスタムレコードクラスのprivate constフィールドの_lengthを参照して,見積もり後のメッセージ長を確認します。ただし,可変長構造体配列を使用している場合,この方法では確認できません。可変長構造体配列を使用している場合は,spp2cstubコマンドに-bオプションを指定してコマンドを実行し,標準出力に出力されたバッファサイズを参照して,メッセージ長を確認してください。
All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.