A Oracle Jolt Exceptions

This appendix describes all the Oracle Jolt exceptions that you may encounter. Keep in mind that the Jolt Class Library returns both Oracle Jolt and Oracle Tuxedo exceptions.

The Jolt Class Library exceptions are listed for each class, constructor, and method listed in the Oracle Jolt API Reference.

The following table lists the Oracle Jolt and Oracle Tuxedo exceptions that you may encounter while running Oracle Jolt. Each exception includes a possible cause (or causes) and a recommended action (wherever possible) to help resolve the situation.

Exceptions Description
1.TPEABORT A transaction could not commit
  Cause This exception occurs because a transaction could not commit on the server side. This exception may also occur if the JSH performs a message resend for a commit that has timed out due to a previous blocking condition. In Oracle Tuxedo, you can get this exception if tpcommit() is called with outstanding replies or open conversation connections.
  Action Check transaction failures on the server side. Oracle Jolt clients should resend the request after the transaction problem has been fixed on the server side.
2.TPEBADDESC This exception should not occur in Oracle Jolt.
  Cause In Oracle Tuxedo, this exception usually occurs when an invalid caller descriptor is given to tpgetrply() or tpsend().
  Action None.
3. TPEBLOCK A blocking condition has occurred and the TPNOBLOCK flag is specified in Oracle Tuxedo.
  Cause This exception occurs because the server is backed up.
  Action You may need to re-examine and re-architect the application to handle extreme load cases.
4.TPEINVAL Invalid arguments were given by the application.
  Cause This exception occurs if a new JoltSession class is processed before performing the security protocol. In Jolt’s URL handler routine, this exception occurs when a invalid challenge response is received by the openConnection() method. The TPEINVAL exception can also occur if you specified a hexadecimal address for the JSL -H option without a leading “0x” , or if you entered a wrong address in UBBCONFIG file. In addition, the GETREC(), DELREC() and GETSVC() services in JREPSVR can return TPEINVAL if the REPNAME is missing. Also, the ADDREC() service in JREPSVR can return TPEINVAL if the REPVAL is not specified.
  Action This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.
5.TPELIMIT The maximum number of outstanding requests or subscriptions has been reached.
  Cause The maximum number of outstanding requests has been reached. This exception could also mean that the Oracle Tuxedo System Event Broker's maximum number of subscriptions (50 internally defined for now) has been reached.
  Action You may need to re-examine and re-architect the application to handle load extreme cases.
6.TPENOENT The requested service is not available.
  Cause Usually, the requested service is not booted or advertised on the Oracle Tuxedo server side. It is also possible that the requested service is not defined in the Oracle Tuxedo Service Metadata Repository. This exception could also indicate that you could not access the Oracle Tuxedo System Event Broker.
  Action You need to check the server side to see if the service is booted or advertised. Otherwise, check to see if the requested service is defined in the Oracle Tuxedo Service Metadata Repository. After the service is available on the server side, Jolt clients should resend the request.
7.TPEOS An operating system exception has occurred.
  Cause The exact nature of the problem is described in the ULOG file. Typically, you can get this exception due to the memory allocation failures, wrong network address, or failure to attach to the Bulletin Board for the JSL.
  Action Try fixing the problem as described in the ULOG file. Jolt clients might need to reconnect or resend the request after the problem has been fixed.
8.TPEPERM There is a permission problem when attempting to join a session.
  Cause In the JoltSession class, this exception occurs because the Jolt client does not have the permission to join the application. Permission may be denied based on an invalid application password, failure to pass application specific authentication, or the use of restricted client names. In the Jolt URL handler routing, this exception occurs when a bad challenge response is received on the openConnection() method. If the Oracle Tuxedo Service Metadata Repository is set to read-only, the ADDREC() and DELREC() services, or the GARBAGECOLLECT() service in JREPSVR, also return the TPEPERM exception.
  Action This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.
9.TPEPROTO A function was called in an improper context.
  Cause For this exception, an improper context could include a rollback() or commit() method called by a participant, an unsubscribe event that is called while “unsubscribe all” is in progress, or when the caller is not a client.
  Action This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.
10.TPESVCERR A service routine has encountered an exception during tpreturn() or tpforward() in Oracle Tuxedo.
  Cause The service routine is returning application-level failures, which may include any of the following: an application calls tpreturn() or tpforward() with invalid flags, the caller descriptor is no longer valid, or there are invalid return values.
  Action This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.
11.TPESVCFAIL The service routine sending the caller's reply called tpreturn() with TPFAIL.
  Cause The service routine is returning application-level failures.
  Action This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.
12.TPESYSTEM An Oracle Tuxedo system exception has occurred.
  Cause The exact nature of the exception is written to the ULOG file. For example, when performing the Diffie-Hellman encryption, this exception occurs if the JSH is unable to send negotiation parameters. The JSL fails to send the reply challenge call to the Jolt client. The Jolt client sends an incorrect timestamp value, an incorrect number of encrypted bits value, an incorrect ticket value, or timestamp mismatches in reconnect protocol. The JSL fails to initialize network protocol information, or could not establish a listening address on a network. The JSH receives a network message with an unknown context or receives a message with a different connection.
  Action In most cases, you need to find out the exact nature of the exception from the ULOG file on the server side. In case of hardware or network failures, you can try to reconnect if a hardware or network failover is available.
13.TPETIME A transaction timeout has occurred.
  Cause There is a transaction timeout on the server side.
  Action This type of exception should be addressed on the application server side. Jolt clients should resend the request after the server side problem has been resolved.
14.TPETRAN The requested service belongs to a server that does not support transactions and TPNOTRAN is not set.
  Cause A transaction is not supported for the requested service.
  Action This type of exception should be addressed on the application server side. Jolt clients should resend the request after the server side problem has been resolved.
15.TPGOTSIG An unexpected signal was received
  Cause A signal was received and the TPSIGSTRT flag was not specified.
  Action None.
16.TPERMERR A resource manager failed to open or close correctly on the server side
  Cause The resource manager might not be available; or all the resource might not be released or committed before close.
  Action Check the ULOG file for reasons why the resource manager failed to open or close on the server side.
17.TPEITYPE For the JoltRemoteService class, the requested Oracle Tuxedo service does not recognize the type and subtype of the input data.
  Cause The type and subtype of input data is not defined in the Oracle Tuxedo Service Metadata Repository.
  Action The type and subtype of input data should be defined in the Oracle Tuxedo Service Metadata Repository. This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.
18. TPEOTYPE For the JoltRemoteService class, the Oracle Tuxedo caller does not recognize the type and the subtype of the reply data.
  Cause The type and subtype of output data is not defined in the Oracle Tuxedo Service Metadata Repository.
  Action The type and subtype of output data should be defined in the Oracle Tuxedo Service Metadata Repository. This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.
19.TPERELEASE This exception should not occur in Oracle Jolt.
  Cause Usually, this exception occurs when an unsolicited notification message is sent from a server with the TPACK flag set, and the target is a Jolt client from an older release of Oracle Jolt that does not support the acknowledgment protocol.
  Action Verify that the correct version of Oracle Jolt is installed on your machine. This type of exception should have been handled during the application development cycle. You should not receive this exception in an production environment.
20.TPEHAZARD Due to some failure, the work done on behalf of the transaction may have been heuristically completed.
  Cause Check the ULOG file on the server side for details.
  Action None.
21.TPEHEURISTIC Due to a heuristic decision, the work done on behalf of the transaction was partially committed and partially aborted.
  Cause Check the ULOG file on the server side for details.
  Action None.
22.TPEEVENT This exception should not occur in Oracle Jolt.
  Cause Usually, this exception means that an event has occurred when sending or receiving a message in a conversational connection in Oracle Tuxedo. However, conversational server connections are not available in Oracle Jolt.
  Action None.
23. TPEMATCH The JoltUserEvent class has implemented a subscription to an asynchronous notification event, but the subscription has failed because it matches an existing subscription.
  Cause The subscription failed because it matched one already listed with the Oracle Tuxedo System Event Broker.
  Action None.
24.TPEDIAGNOSTIC This exception should not occur in Oracle Jolt.
  Cause Usually, this exception occurs when enqueuing or dequeuing a message from the specified queue fails in Oracle Tuxedo. However, enqueing and dequeing of messages is not available in Oracle Jolt.
  Action None.
25.TPEMIB This exception should not occur in Oracle Jolt.
  Cause Usually, this exception occurs when an administrative request via tpadmcall() has failed in Oracle Tuxedo. However, TMIB calls are not available in Oracle Jolt.
  Action None.
26.TPEJOLT This exception indicates there is a problem in Oracle Jolt.
  Cause The TPEJOLT exception could occur for any of the following reasons:
  • JoltSession class—the send(), recv() or cancel() methods throw TPEJOLT if the session object or message ID is invalid.
  • JoltSession class—throws TPEJOLT when TPINIT data conversion fails.
  • bea.jolt.pool.connection class—throws TPEJOLT when a run-time exception occurs.
  • JoltRemoteService—the call() method throws TPEJOLT when the buffer conversion between Oracle Jolt and Oracle Tuxedo fails, the requested service is not defined in the Oracle Tuxedo Service Metadata Repository, the requested service does not the right version, or the reply data conversion fails.
  • JoltUserEvent class—throws TPEJOLT when event name conversion fails, an invalid message ID is encountered, or unsolicited message data conversion fails.
  Action This type of exception should have been handled during the application development cycle. You should not receive this exception in a production environment.