We are experiencing a TPETIME - timeout error in our system. We are executing a long process, which in DB2 database takes approx 2 mins to complete. On the screen end user is getting 'Web Server not responding error' when the end user refresh his screen the work is actually been done. All the SQLS underneath the process are completed. In the logs we encountered the following error:
2011-12-09 08:11:21,338 INFO [Portal] Retrieving Navigation Link Language Info, language='ENG'
2011-12-09 09:41:13,351 WARN [XSLT] Missing Field Meta Data 'GOTO_TOOLTIP_DESCR'
2011-12-09 10:17:02,289 ERROR [Jolt] Jolt Error in CILPEVTP
bea.jolt.pool.ServiceException: TPETIME - timeout occured
The reason you are encountering this error is that you have in your UBBCONFIG file:
This means that Tuxedo will wait up to 60 seconds for a blocking call. So if you have a service that is going to take 2 minutes to execute, it will always timeout and the caller will received TPETIME.
You can fix this at least three different ways. You can increase the value of BLOCKTIME in your UBBCONFIG file, although this will affect the timeout of all services. Alternatively you can add a *SERVICES section to your UBBCONFIG file if you don't have one, list the service that is long running, and add the BLOCKTIME parameter to the service with a larger value. Finally you can change the blocking timeout time on a per context or per call basis using the tpsblktime() API in the client before making the call.
Oracle Tuxedo Chief Architect
just wondering if you may answer a follow-up-question ?
We're having trouble understanding how to measure this blocking timeouts. We do have SCANUNIT set to 10 and BLOCKTIME to 12 in ubbconfig. tpgblktime returns 120, that makes us belive that the effective blocktime is a multiple of BLOCKTIME and SCANUNIT. If you explicitly use tpsblktime and set the value 13, tpgblktime returns 13, so it doesn't seem to be a multiple of SCANUNIT then. It's a bit confusing but there might be some documentation somewhere explaining this ?
Whenever we perform a call to a service after using tpsblktime with the value 13, it seems like the client receives TIMEOUT randomly after 20-30 seconds. If we use tpsblktime with the value of 4, it seems like a TIMEOUT occurs randomly after 10-20 seconds
Reading the documentation (http://docs.oracle.com/cd/E18050_01/tuxedo/docs11gr1/rf3c/rf3c.html#wp2437258), we should receive TIMEOUT after 20 seconds with tpsblktime set to 13 and after 10 seconds with tpsblktime set to 4, but that does not seem to be the case
Are there any explanations to this behaviour or is the documentation wrong ?