TransactionTooLargeException クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインダー トランザクションが大きすぎたため失敗しました。
[Android.Runtime.Register("android/os/TransactionTooLargeException", DoNotGenerateAcw=true)]
public class TransactionTooLargeException : Android.OS.RemoteException
[<Android.Runtime.Register("android/os/TransactionTooLargeException", DoNotGenerateAcw=true)>]
type TransactionTooLargeException = class
inherit RemoteException
- 継承
-
TransactionTooLargeException
- 属性
注釈
バインダー トランザクションが大きすぎたため失敗しました。
リモート プロシージャ 呼び出し中に、呼び出しの引数と戻り値は、Binder トランザクション バッファーに格納されているオブジェクト Parcel として転送されます。 引数または戻り値が大きすぎてトランザクション バッファーに収まらない場合、呼び出しは失敗します。
TransactionTooLargeException は、トランザクションが大きいときにヒューリスティックとしてスローされ、失敗します。これは、トランザクション バッファーをオーバーフィルする可能性が最も高いトランザクションであるためです。
Binder トランザクション バッファーの固定サイズは制限されており、現在 1 MB であり、プロセスで進行中のすべてのトランザクションによって共有されます。 したがって、この例外は、個々のトランザクションの大部分が中程度のサイズの場合でも、進行中のトランザクションが多数ある場合にスローされる可能性があります。
リモート プロシージャコールが TransactionTooLargeExceptionをスローすると、2 つの結果が発生する可能性があります。 クライアントがその要求をサービスに送信できなかったか (多くの場合、引数が大きすぎてトランザクション バッファーに収まらない場合)、またはサービスが応答をクライアントに返すことができませんでした (ほとんどの場合、戻り値が大きすぎてトランザクション バッファーに収まらない場合)。 これらの結果のうち、実際に発生した結果を把握することはできません。 クライアントは、部分的なエラーが発生したと想定する必要があります。
TransactionTooLargeExceptionを回避する鍵は、すべてのトランザクションを比較的小さくすることです。 引数の Parcel とリモート プロシージャ 呼び出しの戻り値を作成するために必要なメモリ量を最小限に抑えるようにしてください。 文字列や大きなビットマップの膨大な配列を転送しないようにします。 可能であれば、大きな要求をより小さな部分に分割してみてください。
サービスを実装する場合は、クライアントが実行できるクエリにサイズまたは複雑さの制約を課すのに役立つ場合があります。 たとえば、結果セットが大きくなる可能性がある場合は、クライアントが一度に複数のレコードを要求することを許可しないでください。 または、使用可能なすべてのデータを一度に返す代わりに、最初に重要な情報を返し、後で必要に応じてクライアントに追加情報を要求します。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| TransactionTooLargeException() |
TransactionTooLargeException クラスの新しいインスタンスを初期化します。 |
| TransactionTooLargeException(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
| TransactionTooLargeException(String) |
TransactionTooLargeException クラスの新しいインスタンスを初期化します。 |
フィールド
| 名前 | 説明 |
|---|---|
| is_generated |
このスロー可能なオブジェクトがバインディングによって生成されたかどうかを示します。 (継承元 Throwable) |
プロパティ
| 名前 | 説明 |
|---|---|
| Cause |
原因が存在しないか不明な場合は、このスロー可能または |
| Class |
このスロー可能なランタイム クラスを取得します。 (継承元 Throwable) |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Throwable) |
| JavaStackTrace |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Throwable) |
| JniManagedPeerState |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| JniPeerMembers |
この型の JNI ピア メンバー メタデータを提供します。 |
| LocalizedMessage |
このスロー可能なローカライズされた説明を作成します。 (継承元 Throwable) |
| Message |
このスロー可能な詳細メッセージ文字列を返します。 (継承元 Throwable) |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Throwable) |
| StackTrace |
このスロー可能なスタック トレースの文字列形式を取得します。 (継承元 Throwable) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| AddSuppressed(Throwable) |
この例外を配信するために抑制された例外に、指定した例外を追加します。 (継承元 Throwable) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Throwable) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Throwable) |
| DisposeUnlessReferenced() |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| Equals(Object) |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| FillInStackTrace() |
実行スタック トレースを入力します。 (継承元 Throwable) |
| GetHashCode() |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| GetStackTrace() |
|
| GetSuppressed() |
この例外を配信するために、通常は |
| InitCause(Throwable) |
このスロー可能なを指定した値に初期化します。 (継承元 Throwable) |
| PrintStackTrace() |
このスロー可能とそのバックトレースを標準エラー ストリームに出力します。 (継承元 Throwable) |
| PrintStackTrace(PrintStream) |
このスロー可能なオブジェクトとそのバックトレースを、指定された印刷ストリームに出力します。 (継承元 Throwable) |
| PrintStackTrace(PrintWriter) |
このスロー可能ファイルとそのバックトレースを、指定された印刷ライターに出力します。 (継承元 Throwable) |
| RethrowAsRuntimeException() |
これは、チェックされていないランタイム例外として再スローします。 (継承元 RemoteException) |
| RethrowFromSystemServer() |
システム サーバーから発生したことがわかっている場合は、この例外を再スローします。 (継承元 RemoteException) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Throwable) |
| SetJavaStackTrace(JniObjectReference) |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| SetStackTrace(StackTraceElement[]) |
|
| ToString() |
この値を文字列に変換します。 (継承元 Throwable) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Throwable) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| IJavaPeerable.Finalized() |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| IJavaPeerable.JniObjectReferenceControlBlock |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
バインダー トランザクションが大きすぎたため失敗しました。 (継承元 JavaException) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
バインダー トランザクションが大きすぎたため失敗しました。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|