[GeoNetwork-users] batch import - 500 files at once problem

Hi,

I'm using "Batch import" to insert many xml files at once (500 files). The
problem is that every time when I import 500 files, for the first time I get
oracle error: ORA-08177 - can't serialize access for this transaction. When
try once more everything is OK. Do you know how to deal with that and what
cause this problem ??
I read about this error and it is caused when transaction isolation level is
set as "serializable" and it is enough to change isolation level on "read
commited". I tried to change it in oracle, wrote trigger on session to set
isolation level but none of this helped. I was looking in geonetwork sources
for possibility to change this but I also didn't found anything. I was even
looking for some information about jeeves because I thought it is defined
there, but I didn't found any documentation.
I would be appreciated for any suggestions.

2007-08-02 14:40:30,638 DEBUG [geonetwork.datamanager] - Extracted UUID
'6940' for schema 'tomek'
2007-08-02 14:40:34,216 ERROR [jeeves.service] - Exception when executing
service
2007-08-02 14:40:34,216 ERROR [jeeves.service] - (C) Exc :
java.sql.SQLException: ORA-08177: can't serialize access for this
transaction

2007-08-02 14:40:34,216 DEBUG [jeeves.service] - Raised exception while
executing service
<error id="error">
  <message>ORA-08177: can't serialize access for this transaction</message>
  <class>SQLException</class>
  <stack>
    <at class="oracle.jdbc.driver.DatabaseError" file="DatabaseError.java"
line="125" method="throwSqlException" />
    <at class="oracle.jdbc.driver.T4CTTIoer" file="T4CTTIoer.java"
line="305" method="processError" />
    <at class="oracle.jdbc.driver.T4CTTIoer" file="T4CTTIoer.java"
line="272" method="processError" />
    <at class="oracle.jdbc.driver.T4C8Oall" file="T4C8Oall.java" line="626"
method="receive" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="182" method="doOall8" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="630" method="execute_for_rows" />
    <at class="oracle.jdbc.driver.OracleStatement"
file="OracleStatement.java" line="961" method="execute_maybe_describe" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="532" method="execute_maybe_describe"
/>
    <at class="oracle.jdbc.driver.OracleStatement"
file="OracleStatement.java" line="1037" method="doExecuteWithTimeout" />
    <at class="oracle.jdbc.driver.OraclePreparedStatement"
file="OraclePreparedStatement.java" line="2905" method="executeInternal" />
  </stack>
  <request>
    <language>en</language>
    <service>util.import</service>
  </request>
</error>

--

Cheers,
Łukasz Sobotowski

--
View this message in context: http://www.nabble.com/batch-import---500-files-at-once-problem-tf4205967s18419.html#a11963961
Sent from the geonetwork-users mailing list archive at Nabble.com.

Hi Łukasz,

you have to change Jeeves to change the isolation level. Jeeves is always aligned
to the latest version of geonetwork. So, do a svn checkout and change the file:

trunk/src/jeeves/resources/dbms/Dbms.java

Cheers,
Andrea

Hi,

I'm using "Batch import" to insert many xml files at once (500 files). The
problem is that every time when I import 500 files, for the first time I get
oracle error: ORA-08177 - can't serialize access for this transaction. When
try once more everything is OK. Do you know how to deal with that and what
cause this problem ??
I read about this error and it is caused when transaction isolation level is
set as "serializable" and it is enough to change isolation level on "read
commited". I tried to change it in oracle, wrote trigger on session to set
isolation level but none of this helped. I was looking in geonetwork sources
for possibility to change this but I also didn't found anything. I was even
looking for some information about jeeves because I thought it is defined
there, but I didn't found any documentation.
I would be appreciated for any suggestions.

2007-08-02 14:40:30,638 DEBUG [geonetwork.datamanager] - Extracted UUID
'6940' for schema 'tomek'
2007-08-02 14:40:34,216 ERROR [jeeves.service] - Exception when executing
service
2007-08-02 14:40:34,216 ERROR [jeeves.service] - (C) Exc :
java.sql.SQLException: ORA-08177: can't serialize access for this
transaction

2007-08-02 14:40:34,216 DEBUG [jeeves.service] - Raised exception while
executing service
<error id="error">
  <message>ORA-08177: can't serialize access for this transaction</message>
  <class>SQLException</class>
  <stack>
    <at class="oracle.jdbc.driver.DatabaseError" file="DatabaseError.java"
line="125" method="throwSqlException" />
    <at class="oracle.jdbc.driver.T4CTTIoer" file="T4CTTIoer.java"
line="305" method="processError" />
    <at class="oracle.jdbc.driver.T4CTTIoer" file="T4CTTIoer.java"
line="272" method="processError" />
    <at class="oracle.jdbc.driver.T4C8Oall" file="T4C8Oall.java" line="626"
method="receive" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="182" method="doOall8" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="630" method="execute_for_rows" />
    <at class="oracle.jdbc.driver.OracleStatement"
file="OracleStatement.java" line="961" method="execute_maybe_describe" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="532" method="execute_maybe_describe"
/>
    <at class="oracle.jdbc.driver.OracleStatement"
file="OracleStatement.java" line="1037" method="doExecuteWithTimeout" />
    <at class="oracle.jdbc.driver.OraclePreparedStatement"
file="OraclePreparedStatement.java" line="2905" method="executeInternal" />
  </stack>
  <request>
    <language>en</language>
    <service>util.import</service>
  </request>
</error>

--

Cheers,
Łukasz Sobotowski

Hi Andrea,

Thank you for your response. I changed the file that you mentioned and now
everything works fine.

Andrea Carboni-2 wrote:

Hi Łukasz,

you have to change Jeeves to change the isolation level. Jeeves is always
aligned
to the latest version of geonetwork. So, do a svn checkout and change the
file:

trunk/src/jeeves/resources/dbms/Dbms.java

Cheers,
Andrea

Hi,

I'm using "Batch import" to insert many xml files at once (500 files).
The
problem is that every time when I import 500 files, for the first time I
get
oracle error: ORA-08177 - can't serialize access for this transaction.
When
try once more everything is OK. Do you know how to deal with that and
what
cause this problem ??
I read about this error and it is caused when transaction isolation level
is
set as "serializable" and it is enough to change isolation level on "read
commited". I tried to change it in oracle, wrote trigger on session to
set
isolation level but none of this helped. I was looking in geonetwork
sources
for possibility to change this but I also didn't found anything. I was
even
looking for some information about jeeves because I thought it is defined
there, but I didn't found any documentation.
I would be appreciated for any suggestions.

2007-08-02 14:40:30,638 DEBUG [geonetwork.datamanager] - Extracted UUID
'6940' for schema 'tomek'
2007-08-02 14:40:34,216 ERROR [jeeves.service] - Exception when executing
service
2007-08-02 14:40:34,216 ERROR [jeeves.service] - (C) Exc :
java.sql.SQLException: ORA-08177: can't serialize access for this
transaction

2007-08-02 14:40:34,216 DEBUG [jeeves.service] - Raised exception while
executing service
<error id="error">
  <message>ORA-08177: can't serialize access for this
transaction</message>
  <class>SQLException</class>
  <stack>
    <at class="oracle.jdbc.driver.DatabaseError"
file="DatabaseError.java"
line="125" method="throwSqlException" />
    <at class="oracle.jdbc.driver.T4CTTIoer" file="T4CTTIoer.java"
line="305" method="processError" />
    <at class="oracle.jdbc.driver.T4CTTIoer" file="T4CTTIoer.java"
line="272" method="processError" />
    <at class="oracle.jdbc.driver.T4C8Oall" file="T4C8Oall.java"
line="626"
method="receive" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="182" method="doOall8" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="630" method="execute_for_rows" />
    <at class="oracle.jdbc.driver.OracleStatement"
file="OracleStatement.java" line="961" method="execute_maybe_describe" />
    <at class="oracle.jdbc.driver.T4CPreparedStatement"
file="T4CPreparedStatement.java" line="532"
method="execute_maybe_describe"
/>
    <at class="oracle.jdbc.driver.OracleStatement"
file="OracleStatement.java" line="1037" method="doExecuteWithTimeout" />
    <at class="oracle.jdbc.driver.OraclePreparedStatement"
file="OraclePreparedStatement.java" line="2905" method="executeInternal"
/>
  </stack>
  <request>
    <language>en</language>
    <service>util.import</service>
  </request>
</error>

--

Cheers,
Łukasz Sobotowski

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
GeoNetwork-users mailing list
GeoNetwork-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-users
GeoNetwork OpenSource is maintained at
http://sourceforge.net/projects/geonetwork

--
View this message in context: http://www.nabble.com/batch-import---500-files-at-once-problem-tf4205967s18419.html#a11996193
Sent from the geonetwork-users mailing list archive at Nabble.com.