Search This Blog

SBL-DAT-00392: An error occurred trying to commit/rollback a database transaction

Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.1 [18306]
Database: Oracle 9.2.0.4
Application Server OS: Microsoft Windows 2000 Server
Database Server OS: Sun Solaris 2.8

This document was previously published as Siebel SR 38-1547366681.

Symptoms

We are upgrading our development envrionment to 7.7.2. We have tried to keep up with all the SupportWeb Alerts and Tech Notes on the upgrade. We have read and applied Alert 1011, Alert 848, Alert 369 and Alert 1067.

Yet when we ran the upgrep process we recieved some errors on the Oracle Alert log that say records could not be retrieved due to running out of temp space on the database.
> Sun Oct 10 20:46:26 2004
> ORA-01555 caused by SQL statement below (SCN: 0x0271.9c542beb):
> Sun Oct 10 20:46:26 2004
> SELECT /*+ ALL_ROWS */
>       T4.CONFLICT_ID,
>       T4.LAST_UPD,
>       T4.CREATED,....
The SiebDev.log file only has a vague reference to a problem with no indication whether it was fatal to the specific function. The log says:
"ObjMgrLog    Error    1    0    2004-10-10 20:46:26    (oracon.cpp (3033)) SBL-DBC-00104: Error retrieving next record from the database.
ObjMgrBusCompLog    Error    1    0    2004-10-10 20:46:26    (buscomp.cpp (16214)) SBL-DBC-00104: Error retrieving next record from the database."

The complete query is not displayed in the Oracle logs and the siebel tools log does not even give a hint, so we are not certain exactly what the query is trying to retrieve. But it appears it is trying to retrieve objects from the repository.

We have allocated a tremendously large amount of space to the undo and temp space and it should be sufficent for any reasonable query.
How can we determine if these failures have corrupted our upgrade process. Resolution to this issue is critical for our upgrade progress. I have attached the oracle alert log and the siebdev.log
Thanks.

Solution

Message 1

For the benefit of other users, the customer encountered the following error during the upgrade to V7.7 in merge process.

!!ERROR::MergeType. Type - Column - exiting with error An error has occurred executing a Sql statement.

Please continue or ask your systems administrator to check your application configuration if the problem persists.(SBL-DBC-00105)--
ORA-00600: internal error code, arguments: [2662], [625], [2622834456], [625], [2624492610], [4194306], [], []

at the same time siebdev.log file has the following error

ObjMgrLog    Error    1    0    2004-10-12 04:09:11    (oracon.cpp (3033)) SBL-DAT-00392: An error occurred trying to commit/rollback a database transaction

DBCLog    DBCLogError    1    0    2004-10-12 04:09:11    OCITransCommit

ObjMgrBusCompLog    Error    1    0    2004-10-12 04:09:11    (oracon.cpp (2957)) SBL-DBC-00107: An Oracle database error has occurred.

As it can be seen here, this is purely a database specific error. The customer’s DBA researched further on this error message and re-applied some temp table space commands.

The customer ran the merge process again but it still failed with the following errors.

ORA-1650: unable to extend rollback segment R03 by 1920 in tablespace RBS01"

"CommitCopyInstance exited with Error.!!ERROR::CommitCopyInstance EXITING with error - 'Name' is a required field. Please enter a value for the field.
(SBL-DAT-00498).
!!ERROR::INSERTION FAILED. Type Control, NamePath - FINCORP Product Line Pick AppletCancelQuery"

Cont...

Message 2

Continued ..

"Name is a required field, please enter a value for the field”

These errors occurred while the merge process was at ‘Control merge’. When the merge tries to insert a record in New Customer Repository on a custom control, it fails because the ‘Type’ property is null on the database column and when it tries to undo the record, the customer encounters rollback segment out of space error. Also, the ‘initial extent’ of the rollback segment was set high ‘32M’.

The customer was suggested the following.

a)    Set the initial and next extent of big rollback segment to only 10 MB each.
b)    Take only one big rollback segment and keep all other small ones offline.
c)    Run the following query to find those controls that have ‘Type’ column set to null

        SELECT COUNT(*) FROM S_CONTROL WHERE TYPE IS NULL

On the prior customer repository, the above query yields 128 records by default.

The Type column is a physical column and is not required by the application and is internally used. Hence, there is no harm in setting this field to ‘TextBox’ property on all Controls with a single SQL statement which is in the following lines

UPDATE S_CONTROL SET TYPE = 'TextBox' where TYPE IS NULL AND NAME = 'PositionOnRow' and REPOSITORY_ID = ‘ID of Prior Customer Repository’;

Then issue a ‘commit’ if it is Oracle.

The above should be done before running the merge process, so that it will not produce the errors on ‘Type’ column.

Thank you,
-Siebel Support.


No comments:

Post a Comment