[
https://issues.apache.org/jira/browse/JCR-1250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552668
]
Thomas Mueller commented on JCR-1250:
-------------------------------------
Hi,
I got this problem when using the old driver: in this case the property is
silently ignored. What version of MS SQL Server, and JDBC driver do you use?
What is the exact database URL? Maybe the wrong driver is in the classpath.
Could you set the log level to 'info' for
org.apache.jackrabbit.core.persistence.bundle.util? In this case the database
and driver versions are logged (see ConnectionRecoveryManager, line 336).
> When adding a large (100MB) binary to the DbDataStore, it fails with an
> insufficient memory exception
> -----------------------------------------------------------------------------------------------------
>
> Key: JCR-1250
> URL: https://issues.apache.org/jira/browse/JCR-1250
> Project: Jackrabbit
> Issue Type: Bug
> Components: jackrabbit-core
> Environment: Windows XP x64 client, SQL Server 2005
> Reporter: Esteban Franqueiro
> Assignee: Thomas Mueller
> Fix For: 1.4
>
> Attachments: BigBinaryTest.java
>
>
> Attached is a small test case. It fails during save(). I think this is
> related to what I mentioned in
> http://mail-archives.apache.org/mod_mbox/jackrabbit-dev/200711.mbox/[EMAIL
> PROTECTED]
> The full stacktrace is the following:
> javax.jcr.RepositoryException: /: unable to update item.: failed to write
> property state: cafebabe-cafe-babe-cafe-babecafebabe/{}bin: failed to write
> property state: cafebabe-cafe-babe-cafe-babecafebabe/{}bin
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1252)
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:858)
> at
> org.apache.jackrabbit.core.data.BigBinaryTest.testBigBinary(BigBinaryTest.java:16)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at
> org.apache.jackrabbit.test.AbstractJCRTest.run(AbstractJCRTest.java:404)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: org.apache.jackrabbit.core.state.ItemStateException: failed to
> write property state: cafebabe-cafe-babe-cafe-babecafebabe/{}bin
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:487)
> at
> org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:75)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:282)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:687)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:856)
> at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
> at
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
> at
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
> ... 21 more
> Caused by: org.apache.jackrabbit.core.data.DataStoreException: Can not read
> identifier a2ada2d96d0b05214288efa03be9005a5bb98c9b: Memoria insuficiente.
> Utilice cursores del servidor para result sets grandes:Java heap space.
> Tamaño de result set:104.857.723. Tamaño memoria total JVM:66.650.112.:
> Memoria insuficiente. Utilice cursores del servidor para result sets
> grandes:Java heap space. Tamaño de result set:104.857.723. Tamaño memoria
> total JVM:66.650.112.
> at
> org.apache.jackrabbit.core.data.db.DbDataStore.convert(DbDataStore.java:438)
> at
> org.apache.jackrabbit.core.data.db.DbDataStore.getInputStream(DbDataStore.java:481)
> at
> org.apache.jackrabbit.core.data.db.DbDataRecord.getStream(DbDataRecord.java:61)
> at
> org.apache.jackrabbit.core.value.BLOBInDataStore.getStream(BLOBInDataStore.java:93)
> at
> org.apache.jackrabbit.core.persistence.util.Serializer.serialize(Serializer.java:198)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:476)
> ... 30 more
> Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Memoria
> insuficiente. Utilice cursores del servidor para result sets grandes:Java
> heap space. Tamaño de result set:104.857.723. Tamaño memoria total
> JVM:66.650.112.
> at
> com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown
> Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PreparedStatementExecutionRequest.executeStatement(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Unknown
> Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Unknown
> Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(Unknown
> Source)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:362)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:292)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:257)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:237)
> at
> org.apache.jackrabbit.core.data.db.DbDataStore.getInputStream(DbDataStore.java:474)
> ... 34 more
> org.apache.jackrabbit.core.state.ItemStateException: failed to write property
> state: cafebabe-cafe-babe-cafe-babecafebabe/{}bin
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:487)
> at
> org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:75)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:282)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:687)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:856)
> at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
> at
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
> at
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
> at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:858)
> at
> org.apache.jackrabbit.core.data.BigBinaryTest.testBigBinary(BigBinaryTest.java:16)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at
> org.apache.jackrabbit.test.AbstractJCRTest.run(AbstractJCRTest.java:404)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: org.apache.jackrabbit.core.data.DataStoreException: Can not read
> identifier a2ada2d96d0b05214288efa03be9005a5bb98c9b: Memoria insuficiente.
> Utilice cursores del servidor para result sets grandes:Java heap space.
> Tamaño de result set:104.857.723. Tamaño memoria total JVM:66.650.112.:
> Memoria insuficiente. Utilice cursores del servidor para result sets
> grandes:Java heap space. Tamaño de result set:104.857.723. Tamaño memoria
> total JVM:66.650.112.
> at
> org.apache.jackrabbit.core.data.db.DbDataStore.convert(DbDataStore.java:438)
> at
> org.apache.jackrabbit.core.data.db.DbDataStore.getInputStream(DbDataStore.java:481)
> at
> org.apache.jackrabbit.core.data.db.DbDataRecord.getStream(DbDataRecord.java:61)
> at
> org.apache.jackrabbit.core.value.BLOBInDataStore.getStream(BLOBInDataStore.java:93)
> at
> org.apache.jackrabbit.core.persistence.util.Serializer.serialize(Serializer.java:198)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:476)
> ... 30 more
> Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Memoria
> insuficiente. Utilice cursores del servidor para result sets grandes:Java
> heap space. Tamaño de result set:104.857.723. Tamaño memoria total
> JVM:66.650.112.
> at
> com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown
> Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PreparedStatementExecutionRequest.executeStatement(Unknown
> Source)
> at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Unknown
> Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Unknown
> Source)
> at
> com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(Unknown
> Source)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:362)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:292)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:257)
> at
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:237)
> at
> org.apache.jackrabbit.core.data.db.DbDataStore.getInputStream(DbDataStore.java:474)
> ... 34 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.