Home » Developer & Programmer » Forms » Form Waiting on Client Input with client frozen (Forms 6i)
Form Waiting on Client Input with client frozen [message #315991] Wed, 23 April 2008 07:50 Go to next message
annagel
Messages: 220
Registered: April 2006
Senior Member
We are having an issue with a custom form which is causing locking problems in the database. The scenario is this:

We have a form which allows the user to edit a simple table, there is a system defined numeric field, two varchar2 fields and a CLOB.

When using the form for one thing like pulling up an editing a record and saving or creating a single new record we have no issues. We have an issue when the user tries to do two saves without completely closing and re-opening the form.

When this happens the first save goes fine, but the second freezes the client session, tracking this back to the database we see that the form has a Row lock on the table in question which we would expect since it is performing an insert or update and the session is waiting on 'SQL*Net more data from client'. At this point the user's forms session is completely locked so more data is not forthcoming. These sessions remain in this same wait state until we kill the OS process backing them, killing the oracle session does not release the wait.

So the question, is there some kind of clean-up process I should be doing once the insert/update (we don't allow delete) is complete that I am missing? At the moment we have no custom actions being performed post update/insert so we are depending exclusively on the standard functionality of the form.

Any ideas?

Thanks,
Andrew
Re: Form Waiting on Client Input with client frozen [message #316002 is a reply to message #315991] Wed, 23 April 2008 08:15 Go to previous messageGo to next message
annagel
Messages: 220
Registered: April 2006
Senior Member
Some more info, we have done a bit of investigating and it seems pretty clear that the issue at least involves the fact that we are using CLOB data-types in the DB which are represented as LONG data-types in the form, we have one other form which does the same thing and it also have this issue and another form which uses the same save functionality and no CLOB/LONGs and it does not have this issue.
Re: Form Waiting on Client Input with client frozen [message #316005 is a reply to message #316002] Wed, 23 April 2008 08:33 Go to previous messageGo to next message
annagel
Messages: 220
Registered: April 2006
Senior Member
And problem solved....or at least worked around since the problem appeared to be a LONG/CLOB one I changed the datatype in the form for the entry field from LONG with a length of 32000 to CHAR with a length of 32000. In this particular instance limiting to this value is not an issue because when the data in these columns is actually used it needs to be fetched into a varchar2(32000) anyway. Still curious to see if anyone knows of more than a work-around for this LONG/CLOB issue.

Andrew
Re: Form Waiting on Client Input with client frozen [message #316092 is a reply to message #316005] Wed, 23 April 2008 13:46 Go to previous messageGo to next message
annagel
Messages: 220
Registered: April 2006
Senior Member
Spoke too soon....looks like the issue was some kind of incompatibility between Forms 6i and the CLOB data-type. For some reason-and someone please fill me in if you know the reason-it looks like you can insert/update a table with a CLOB column once per form invocation, doing it twice causes the form to lock. Using a LONG column in the table instead and it works fine.

Now I can certainly see why Forms 6i would have trouble with a CLOB as they did not (so far as I know) exist when 6i was released, what puzzles me is why in the world it would work once for each time you open the form.

Any thoughts?
Andrew
Re: Form Waiting on Client Input with client frozen [message #316918 is a reply to message #316092] Mon, 28 April 2008 20:13 Go to previous message
djmartin
Messages: 10181
Registered: March 2005
Location: Surges Bay TAS Australia
Senior Member
Account Moderator
Have you looked in the online help for 'clob', then 'long'? I just went through the Forms 10g help and basically I don't think that 'clob' was supported until 10g (maybe 9i) and the fact that it works at all in 6i for a 'clob' was just good luck on your part.

I suggest you consider testing the length of the data that you put into your 'long' fields. We had a problem with one of our forms in which we define the item as 'long/65500'. To stop the form failing, we find the length of the old data, the length of the new data, and verify that when combined it will all fit into 65500. We usually add 80 characters at a time. Hence, when the field contains 65,420 characters we disable the 'add' facility.

David
Previous Topic: Using "macro substitution" in PL/SQL for D2000
Next Topic: Obtain tables from forms
Goto Forum:
  


Current Time: Mon Feb 03 04:59:29 CST 2025