- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 17 anos, 8 meses atrás por
DanielB.
-
AutorPosts
-
3 de julho de 2007 às 10:27 pm #79926
Anônimo
— Estou com esse erro ao executar o Forms ( Nao acontece frequentemente) entrei em contato com um DBA e ele falou que minha aolicacao deve estar setando o SERIALIZE p/ TRUE. mas nao sei o que pode ser isso, haja vista que todos os meus FORMS estao construidos iguais e nunca setei este SERIALIZE, alguem pode me ajudar nisso???
4 de julho de 2007 às 7:33 am #79929DanielB
Participantea ver si es esto lo que sucede
Problem Description
Consider a Form which contains a timer. This timer fires for example
every 10 seconds. The action of this timer is to keep a screen
always up to date, based on a regular data refresh.To do so, you define a timer which fires the WHEN-TIMER-EXPIRED
trigger. This trigger opens a cursor, fetches data from a table, assigns
data to visible items on the Form and eventually closes the cursor.This works fine.
Now, you let your Forms application run and open a SQLPlus session.
In this SQLPlus session, you update data in the table queried by the
cursor and commit changes. You can see changed data in SQLPlus with
a simple SELECT statement. Data changes are really committed because you
can see the changes as well in another SQLPlus session.
However, the changed data do not get refreshed in Forms: it seems that
Forms reads the old data, although the cursor is opened, fetched and
closed everytime the timer expires.You can also get from time to time the ORA-8177 error message:
Error: ORA 8177Text: cannot serialize access for this transaction
Cause: Oracle encountered data changed by an operation that occurred after
the start of this serializable transaction
Action: In read/write transactions, retry the intended operation or
transaction.Solution Description
This sitatuation can happen if the Form-level property “Isolation Mode”
is set to “Serializable”.Change it back to the default value “Read Committed” and the data is properly
displayed and refreshed in the Form.Explanation (from the Forms Builder online help)
The “Isolation Mode” Form-level property specifies whether or not transactions
in a session will be serializable. If Isolation Mode has the value Serializable,
the end user sees a consistent view of the database for the entire length of the
transaction, regardless of updates committed by other users from other sessions.
If the end user queries and changes a row, and a second user updates and commits
the same row from another session, the first user sees Oracle error
(ORA-08177: Cannot serialize access.).
Serializable mode is best suited for an implementation where few users are
performing a limited number of transactions against a large database; in other
words, an implementation where there is a low chance that two concurrent
transactions will modify the same row, and where long-running transactions are
queries.
For transaction-intensive implementations, leave Isolation Mode set to Read
Committed (the default). Serializable mode is best used in conjunction with the
block-level property Locking Mode set to Delayed. -
AutorPosts
- Você deve fazer login para responder a este tópico.