cursors, transactions and timeouts

I have an applicaion that displays a scrollable list of products based on query criteria entered by the user. The results are shown in an HTML page. The user may scroll thru the resultset and select a product to edit. When this happens, we need to keep the current resultset page in a stack (stored in the user’s HTTP session) and display the product detail page for the chosen product. When the user is done, the detail page is closed and the previous product list page is re-displayed.

Would the user be able to scroll thru the same resultset (continue from where the user left off) ?.

My understanding is that the cursor may not be open (due to transaction timeout). This would force the user to issue the query again.

This works in the HTTP Client API.

I am not sure if this would be supported in the Tamino4J API.

If not, should we increase the transaction timeout.

Can the transaction timeout be overridden from the default value of 300 seconds ?.

Is it possible to keep the transaction active until the user is done just like HTTP sessions ?.


I’ll try to answer your question as I understood them:

1. If you want do display a details page, while keeping the product page alive (keeping the cursor as it is), you must open a second TConnection to the database.
2. The cursor is bound to the transaction, so the transaction timeout destroys the cursor. This is not the case, with the HTTP Client API, because it uses the (so called) old cursoring, which is not supported by the Tamino API for Java (Reason: it is not totally reliable). The old cursoring is not bound to a transaction.
3. You can change the transaction timeout in the server properties of the database. The default value is 300 seconds, the minimum is 20 seconds and the maximum is 2592000 seconds. Use Tamino Manager to change this property. You might need to stop and restart the database to make the change effective.

Hope this helps …