TransactionTooLargeException Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The Binder transaction failed because it was too large.
[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
- Inheritance
- Attributes
Remarks
The Binder transaction failed because it was too large.
During a remote procedure call, the arguments and the return value of the call are transferred as Parcel
objects stored in the Binder transaction buffer. If the arguments or the return value are too large to fit in the transaction buffer, then the call will fail. TransactionTooLargeException
is thrown as a heuristic when a transaction is large, and it fails, since these are the transactions which are most likely to overfill the transaction buffer.
The Binder transaction buffer has a limited fixed size, currently 1MB, which is shared by all transactions in progress for the process. Consequently this exception can be thrown when there are many transactions in progress even when most of the individual transactions are of moderate size.
There are two possible outcomes when a remote procedure call throws TransactionTooLargeException
. Either the client was unable to send its request to the service (most likely if the arguments were too large to fit in the transaction buffer), or the service was unable to send its response back to the client (most likely if the return value was too large to fit in the transaction buffer). It is not possible to tell which of these outcomes actually occurred. The client should assume that a partial failure occurred.
The key to avoiding TransactionTooLargeException
is to keep all transactions relatively small. Try to minimize the amount of memory needed to create a Parcel
for the arguments and the return value of the remote procedure call. Avoid transferring huge arrays of strings or large bitmaps. If possible, try to break up big requests into smaller pieces.
If you are implementing a service, it may help to impose size or complexity contraints on the queries that clients can perform. For example, if the result set could become large, then don't allow the client to request more than a few records at a time. Alternately, instead of returning all of the available data all at once, return the essential information first and make the client ask for additional information later as needed.
Java documentation for android.os.TransactionTooLargeException
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Constructors
TransactionTooLargeException() | |
TransactionTooLargeException(IntPtr, JniHandleOwnership) |
A constructor used when creating managed representations of JNI objects; called by the runtime. |
TransactionTooLargeException(String) |
Fields
is_generated | (Inherited from Throwable) |
Properties
Cause |
Returns the cause of this throwable or |
Class | (Inherited from Throwable) |
Handle |
The handle to the underlying Android instance. (Inherited from Throwable) |
JniIdentityHashCode | (Inherited from Throwable) |
JniPeerMembers | |
LocalizedMessage |
Creates a localized description of this throwable. (Inherited from Throwable) |
Message |
Returns the detail message string of this throwable. (Inherited from Throwable) |
PeerReference | (Inherited from Throwable) |
StackTrace | (Inherited from Throwable) |
ThresholdClass |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
ThresholdType |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. |
Methods
AddSuppressed(Throwable) |
Appends the specified exception to the exceptions that were suppressed in order to deliver this exception. (Inherited from Throwable) |
Dispose() | (Inherited from Throwable) |
Dispose(Boolean) | (Inherited from Throwable) |
FillInStackTrace() |
Fills in the execution stack trace. (Inherited from Throwable) |
GetStackTrace() |
Provides programmatic access to the stack trace information printed by
|
GetSuppressed() |
Returns an array containing all of the exceptions that were
suppressed, typically by the |
InitCause(Throwable) |
Initializes the cause of this throwable to the specified value. (Inherited from Throwable) |
PrintStackTrace() |
Prints this throwable and its backtrace to the standard error stream. (Inherited from Throwable) |
PrintStackTrace(PrintStream) |
Prints this throwable and its backtrace to the specified print stream. (Inherited from Throwable) |
PrintStackTrace(PrintWriter) |
Prints this throwable and its backtrace to the specified print writer. (Inherited from Throwable) |
RethrowAsRuntimeException() |
Rethrow this as an unchecked runtime exception. (Inherited from RemoteException) |
RethrowFromSystemServer() |
Rethrow this exception when we know it came from the system server. (Inherited from RemoteException) |
SetHandle(IntPtr, JniHandleOwnership) |
Sets the Handle property. (Inherited from Throwable) |
SetStackTrace(StackTraceElement[]) |
Sets the stack trace elements that will be returned by
|
ToString() | (Inherited from Throwable) |
UnregisterFromRuntime() | (Inherited from Throwable) |
Explicit Interface Implementations
IJavaPeerable.Disposed() | (Inherited from Throwable) |
IJavaPeerable.DisposeUnlessReferenced() | (Inherited from Throwable) |
IJavaPeerable.Finalized() | (Inherited from Throwable) |
IJavaPeerable.JniManagedPeerState | (Inherited from Throwable) |
IJavaPeerable.SetJniIdentityHashCode(Int32) | (Inherited from Throwable) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from Throwable) |
IJavaPeerable.SetPeerReference(JniObjectReference) | (Inherited from Throwable) |
Extension Methods
JavaCast<TResult>(IJavaObject) |
Performs an Android runtime-checked type conversion. |
JavaCast<TResult>(IJavaObject) | |
GetJniTypeName(IJavaPeerable) |