HI ALL,
these days, i got some problem.
the client called the service, but didn't get reply. in the app log, i found the service have got the require, and processed it.
In the ULOG, i found that
144150.coresys1!CadAccount.2212082.1328558134.0: gtrid x0 x4ecc5abb x174847IBTUX_CAT:6029: ERROR: tpreturn called outside the original service thread
144150.coresys1!CadAccount.2212082.1328558134.0: gtrid x0 x4ecc5abb x174847IBTUX_CAT:518: ERROR: Service 'CADSysBnkCwd' failed to call tpreturn or tpforward
and only way to work around it is rebooting the according server.
now, i want know LIBTUX_CAT:6029 when and why the error comes out, could anybody show me a example?
Hi,
I'm guessing you have a multi-threaded server and tried to perform a tpreturn() in a different thread than was executing the service. This would explain both error messages as the first message just indicates the wrong thread did the tpreturn(), and the second message says that your service routine returned to the Tuxedo main dispatching loop without ever performing a tpreturn() or tpforward(). The function that is called to handle a service request must eventually perform either a tpreturn() or tpforward().
If your server is single-threaded then I'd have to guess you have a memory corruption problem or something similar.
Regards,
Todd Little
Oracle Tuxedo Chief Architect
thank you for your reply.
our server is single-thread, and we also think the server memory was messed up by someone sevice.
now problem we meet is how to find out which service did that ?
is there better way to trace the server ?
Hi,
If it is just Tuxedo-trace you're looking for, the easiest to turn on the trace-facility (example if you wanna have some basic trace for every service in every server in a group)
$tmadmin
\>chtr -g MY_GROUP on
\>quit
do your stuff and when you're done
$tmadmin
\>chtr -g MY_GROUP off
\>quit
Check out tmtrace for more details and how to get more fine grained trace
Best regards,
Kristian
Edited by: Kristian Ivarsson on 2011-dec-08 01:59
Hi,
It may be corrupted memory, but those are weird errors to get for it. What platform are you on and what language are your services written in?
There are a number of tools available to help find memory leaks and/or memory corruption. Ones to consider are Purify, Insure++, Electric Fence, and Valgrind. If you are on Solaris, Solaris Studio also has some analysis tools that might help in tracking down this problem.
Regards,
Todd Little
Oracle Tuxedo Chief Architect
--转自搜狗