tpMethodReq
CallDescriptor tpMethodReq(TypedBuffer data,
Objinfo objinfo,
MethodParameters methodParms,
TuxedoCorbaConnection corbaConn,
int flags,
TuxRply trp,
javax.transaction.xa.Xid tid,
int trantime,
TuxedoConnection tuxUser)
throws TPException
- Parameters:
data
- The TGIOP buffer to send to the CORBA object.
cannot be NULL.
objinfo
- Objinfo object containing routing information
from the ObjectKey contained in the CORBA object's IOR
methodParms
- invokation info saved from previous Inbound
invokation on object calling tpMethodReq
flags
-
- TPNOTRAN If the caller is in transaction mode and this
flag is set, then when svc is invoked, it is not performed
on behalf of the caller's transaction. If svc belongs to
a server that does not support transactions, then this
flag must be set when the caller is in transaction mode.
Note that svc may still be invoked in transaction mode but
it will not be the same transaction: a svc may have as a
configuration attribute that it is automatically invoked
in transaction mode. A caller in transaction mode that sets
this flag is still subject to the transaction timeout (and
no other). If a service fails that was invoked with this
flag, the caller's transaction is not affected.
- TPNOREPLY Informs tpMethodReq() that a reply is not expected.
When TPNOREPLY is set, the function returns 0 on success,
where 0 is an invalid descriptor. When the caller is in
transaction mode, this setting cannot be used unless
TPNOTRAN is also set.
- TPNOBLOCK The request is not sent if a blocking condition
exists (for example, the internal buffers into which the
message is transferred are full). When TPNOBLOCK is not
specified and a blocking condition exists, the caller
blocks until the condition subsides or a timeout occurs
(either transaction or blocking timeout).
- TPNOTIME This flag signifies that the caller is willing to
block indefinitely and wants to be immune to blocking
timeouts. Transaction timeouts may still occur.
trp
- The Tuxedo Reply object upon which the reply to this
request will be enqueued
tid
- The transaction id to be used with this request
trantime
- The transaction timeout (in seconds) to be used
with this call (only used if tid is non-null)
- Returns:
- Upon successful completion, tpMethodReq() returns a
CallDescriptor that can be used to receive the reply of the
request sent.
- Throws:
TPException
- Upon failure, tpMethodReq() returns a
TPException exception to indicate the error condition.
tperrno in TPException will be set to one of the following
values:
- TPEINVAL Invalid arguments were given (for example, svc is null,
or flags are invalid).
- TPENOENT Cannot send to svc because it does not exist or is a
conversational service.
- TPEITYPE The type and sub-type of data is not one of the allowed
types and sub-types that svc accepts.
- TPELIMIT The caller's request was not sent because the maximum
number of outstanding asynchronous requests has been reached.
- TPETRAN svc belongs to a server that does not support
transactions and TPNOTRAN was not set.
- TPETIME A timeout occurred. If the caller is in transaction
mode, then a transaction timeout occurred and the transaction
is marked abort-only; otherwise, a blocking timeout occurred
and neither TPNOBLOCK nor TPNOTIME was specified. If a
transaction timeout occurred, then with one exception, any
attempts to send new requests or receive outstanding replies
will fail with TPETIME until the transaction has been aborted.
The exception is a request that does not block, expects no
reply, and is not sent on behalf of the caller's transaction
(that is, tpMethodReq() with TPNOTRAN, TPNOBLOCK, and
TPNOREPLY set).
- TPEBLOCK A blocking condition exists and TPNOBLOCK wasx
specified.
- TPEPROTO tpMethodReq() was called improperly.
- TPESYSTEM A BEA Tuxedo system error has occurred. The exact
nature of the error is written to a log file.
- TPEOS An operating system error has occurred. If a message
queue on a remote location is filled, TPEOS may be returned
even if tpMethodReq() returned successfully.
- Excluded in public API Reference.
- routine for sending a TGIOP buffer to a CORBA object.
calls _tpacall_internal under the covers.