Parallel DML on a Partitioned Table in RO Tablespace Causes Ora-00372: File XXX Cannot Be Modified At This Time (Doc ID 749038.1)

Last updated on MARCH 27, 2014

Applies to:

Oracle Server - Enterprise Edition - Version: 10.2.0.4 to 11.2.0.2 - Release: 10.2 to 11.2
Information in this document applies to any platform.
***Checked for relevance on 29-Sep-2011***

Symptoms

Parallel DML on a partitioned table, one partition of which resided in a read-only tablespace but did not load data to the partition in the read only tablespace, failed upon commit:

ORA-00372: file 216 cannot be modified at this time
ORA-01110: data file 216: '+POBED_PBI_DISK_GROUP3/tbi/datafile/test_part1.371.666762825'

An errorstack for event 372 showed the following:

kxfxgs
        calling kxfxmdmp
        dequeued:
        MSG( <--, KXFXORtrans )
          kxfxmh at addr: 7000000233d8a68
          kxfxmh->kxfxmhh.kxfmhtyp: KXFMHFSX
          kxfxmh->kxfxmhmsz: 48
          kxfxmh->kxfxmhflg: 0x6
          kxfxmh->kxfxmhotyp: , KXFXORtrans
.
*** 2008-10-03 00:12:00.465
ksedmp: internal or fatal error
ORA-372: file 5 cannot be modified at this time
ORA-1110: data file 5: '/testcases/tar7203658.992/test_part1.dbf'
Current SQL statement for this session:
commit
----- Call Stack Trace -----
kgesev <- ksesec2 <- kcbchg1_main <- kcbchg <- ktecgetsh <- ktecgshx <- ktsstrm_segment <- ktsmg_icmt_prepare <- ktcifc <- ktucmt <- ktpcmt <- ktcrcm <- ktdcmt <- k2lcom <- k2send <- xctctl <- xctcom_with_options <- kksExecuteCommand <- opiexe <- kpoal8 <- opiodr <- ttcpip <- opitsk <- opiino <- opiodr <- opidrv <- sou2o <- opimai_real <- main <- start

After applying <>, the call stack showed this:

kgesev <- ksesec2 <- kcbchg1_main <- kcbchg1 <- ktbchgro <- kteclck <- ktsptrn_fixbmbs <- ktelrwi <- kdblihe <- qerpxInsLatches <- qerpx_rowsrc_start <- qerpxStart <- insExecSubQueryIni <- insExecStmtExecIniEngine <- insexe <- opiexe <- opipls <- opiodr <- rpidrus <- skgmstack <- rpidru <- rpiswu2 <- rpidrv <- psddr0 <- psdnal <- pevm_EXECC <- pfrinstr_EXECC <- pfrrun_no_tool <- pfrrun <- plsql_run <- peicnt <- kkxexe <- opiexe <- kpoal8 <- opiodr <- ttcpip <- opitsk <- opiino <- opiodr <- opidrv <- sou2o <- opimai_real <- main <- start

After applying <>, the ORA-372 was seen again with the following call stack:

kcbchg1_main <- kcbchg <- ktecgetsh <- ktecgshx <- ktelrwi <- kdblihe <- qerpxInsLatches <- qerpx_rowsrc_start <- qerpxStart <- insExecSubQueryIni

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms