Я работаю с подпружиненным загрузчиком данных.У меня есть 15000 файлов, и я обрабатываю только один файл с помощью многоресурсного разделителя. Кажется, что блокировка таблицы происходит при попытке вставить данные в таблицу. Здесь нет параллельного шага, определенного здесь.это очень медленно для обработки файлов.Ниже приведен фрагмент кода для устройства чтения и записи элементов чанка и вывод sql для блокировки таблицы.
Файл конфигурации Spring
<step id="filestep" xmlns="http://www.springframework.org/schema/batch" >
<tasklet allow-start-if-complete="true" transaction-manager="ratransactionManager" >
<chunk writer="jdbcItenWriter" reader="fileItemReader" processor="itemProcessor" commit-interval="500" retry-limit="2">
<retryable-exception-classes>
<include class="org.springframework.dao.DeadlockLoserDataAccessException"/>
</retryable-exception-classes>
</chunk>
<listeners>
<listener ref="customStepExecutionListener">
</listener>
</listeners>
</tasklet>
<end on ="FAILED"/>
</step>
Oracle Locks
select
object_name,
object_type,
session_id,
type, -- Type or system/user lock
lmode, -- lock mode in which session holds lock
request,
block,
ctime,
owner,
id1,id2 -- Time since current mode was granted
from
v$locked_object, all_objects, v$lock
where
v$locked_object.object_id = all_objects.object_id AND
v$lock.id1 = all_objects.object_id AND
v$lock.sid = v$locked_object.session_id
and all_objects.OBJECT_NAME like '%MSC%'
order by
session_id, ctime desc, object_name
OBJECT_NAME OBJECT_TYPE SESSION_ID TYPE LMODE REQUEST BLOCK CTIME OWNER ID1 ID2
STAGING_TABLE_MSC TABLE 137 TM 3 0 0 39 CDRR 9289370 0