Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Monday, October 22, 2012

oracle loadjava error: Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x8077E76

After installing latest updates for Windows 7 64-bit recently, I've found out Oracle's loadjava is now giving me this error:



Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x8077E76
Function=[Unknown.]
Library=C:\oracle\product\10.2.0\client_1\jdk\jre\bin\client\jvm.dll

...

Current Java thread:
at oracle.jdbc.driver.T2CConnection.t2cCreateState(Native Method)
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:346)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:131)
at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:77)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
- locked <0x141ae388> (a java.lang.Class)
at java.sql.DriverManager.getConnection(DriverManager.java:140)
- locked <0x141ae388> (a java.lang.Class)
at oracle.aurora.server.tools.loadjava.DatabaseOptions.getConnection(DatabaseOptions.java:180)
at oracle.aurora.server.tools.loadjava.DatabaseOptions.connect(DatabaseOptions.java:123)
at oracle.aurora.server.tools.loadjava.LoadJavaState.getConnection(LoadJavaState.java:409)
at oracle.aurora.server.tools.loadjava.LoadJavaState.getOldMD5(LoadJavaState.java:696)
at oracle.aurora.server.tools.loadjava.ClientSchemaObject.getOldMD5(ClientSchemaObject.java:52)
at oracle.aurora.server.tools.loadjava.SchemaObject.doCreate(SchemaObject.java:172)
at oracle.aurora.server.tools.loadjava.SchemaObject.process1(SchemaObject.java:215)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:532)
at oracle.aurora.server.tools.loadjava.LoadJava.addObject(LoadJava.java:513)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:451)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:380)
at oracle.aurora.server.tools.loadjava.LoadJava.addJar(LoadJava.java:727)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:432)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:380)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:349)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:652)
at oracle.aurora.server.tools.loadjava.LoadJava.processDeferredFiles(LoadJava.java:617)
at oracle.aurora.server.tools.loadjava.LoadJava.process(LoadJava.java:818)
at oracle.aurora.server.tools.loadjava.LoadJava.command(LoadJava.java:251)
at oracle.aurora.server.tools.loadjava.LoadJavaMain.run(LoadJavaMain.java:103)
at oracle.aurora.server.tools.loadjava.LoadJavaMain.main(LoadJavaMain.java:28)

Dynamic libraries:
0x00400000 - 0x0040B000 C:\oracle\product\10.2.0\client_1\jdk\jre\bin\java.exe
0x77C80000 - 0x77E00000 C:\Windows\SysWOW64\ntdll.dll
...

Heap at VM Abort:
Heap
 def new generation   total 576K, used 391K [0x10010000, 0x100b0000, 0x104f0000)
...

#
# HotSpot Virtual Machine Error : EXCEPTION_ACCESS_VIOLATION
# Error ID : 4F530E43505002EF
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2_08-b03 interpreted mode)
#

As the solution to this problem I found to be installing Oracle 11g (v. 11.1.0) client instead of existing 10g (v. 10.2.0) one, specifically win32_11gR1_client. Funnily enough, I wasn't even able to quickly find the client distributive on Oracle website so here's the link for you: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html

Monday, January 31, 2011

JDBC & ORA-01555: snapshot too old: rollback segment number with name "" too small

I've encountered this Oracle error while trying to update CLOB column from Java app (using JDBC):

ORA-01555: snapshot too old: rollback segment number  with name "" too small
ORA-22924: snapshot too old

All of the stuff I was able to google on the subject was concerning reading of the data and not writing it (e.g. exporting LOBs). From what I've learned, 'name ""' part means that the problem is related specifically to the LOB tablespace/undo segment.

I've tried to localize the problem and found out that the problem seems to be in the JDBC part.
I was copying CLOB values from one DB to another like this:

Clob clob = rs.getClob(i + 1);
updateCLOBs.setClob(i + 1, clob);

Replacing it with this:
String clobStr = rs.getString(i + 1);
updateCLOBs.setString(i + 1, clobStr);

helped to resolve the problem.

I've tested the second approach of copying the CLOB with values of over 4000 chars length and it works.