on 12-21-2010 5:21 PM
Hi we tried to run a transaction in workbench, after some time we got this error
ERROR_ON_LOAD [java.net.SocketTimeoutExecption: Read time out] (this error in red)
I have tried to use ctrl + F5 to find find out where the error could come from but the Transaction Execution page brought the same message without details.
When I look at the Transaction manager, this transaction run successfully, and i got the expected result.
I ran the transaction per http too. And the return message was Transaction executed sucessfully
any ide?
The workbench is set to time out after 5 minutes for any transaction ran within it. If you are interested in testing it, use runner...
Runner?Transaction=XXXXXXXXXXXXXXX&LogType=TRACEDEBUG
Regards,
Jamie
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Please export your transaction and all statically called transactions in the transaction chain. How many transactions are called total? Add all the sizes up. What is the total?
When you first open the workbench and load your transaction, how long does it take to open up?
What is the transaction designed to do?
What is the logging level set to in the workbench?
>
> Please export your transaction and all statically called transactions in the transaction chain. How many transactions are called total? Add all the sizes up. What is the total?
>
> When you first open the workbench and load your transaction, how long does it take to open up?
>
> What is the transaction designed to do?
>
> What is the logging level set to in the workbench?
Hi Michael
1 Transaction, no transaction chain
fast ... max 4 secs
getting data from different databases, update another database.
Log type none, logging disable
Probably is what Jamie said.... transaction time out that configured in Workbench.
From the sounds of it, the transaction should not be timing out. But you have eliminated the most obvious causes in my mind (in the MII transaction at least).
Does the transaction do a query or queries which are then fed into a repeater which then has one or more queries execute using the repeater output?
If the answer is yes, then the design needs to be looked at again to see if the queries can be performed once instead of many times under the repeater. Each time a query is executed, it needs to provide connection information to the database (login, pwd, etc.). This overhead can add up pretty quickly. And this is a very common design/performance issue.
A couple of options to change the transaction architecture (there are probably/poentially several more).
1. Bring more data (not too much more) back with a single query and then repeat against the entire query result. Depending upon the amount of data and how the query is structured, this may not work very well.
2. Dynamically create the script for the query (probably do this under the repeater) and then apply the script to a single query to bring back then entire dataset needed.
Other things to look at if the above scenario is not applicable.
How complex are your SQL scripts?
If you are joining a bunch (3 or more is a good starting point) tables together or have subqueries or have a lot of fliter parameters, you should take a look at creating custom views, user functions, or stored procedures to push the complexity back to the relational database (which is better designed for such things) instead of MII.
How well designed are your tables and other objects in the relational database? Are the keys properly built and linked between tables? How were your indexes built? Do updates, deletes, etc. cascade properly (so you do not have to delete child objects when deleting a parent object).
Regards,
Mike
User | Count |
---|---|
11 | |
6 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.