Hello Armin,
thanks for your spend time. I have found the failure, it was in the
repository.xml, there I configured varchar instead of clob :o/
Next time, the first thing I will do is mailing the repository infos. So
a simply failure :o/
Thanks
Josef
Armin Waibel schrieb:
> Josef Wagner wrote:
>> Hello Armin,
>> The problem width my outOfMemory apears also width 1.0.5
>> I have written a small test code an now I know, why I'm getting the
>> outOfMemory width OJB. I think it is a "bug" in OJB, because you read
>> the data from ResultSet width getString() instead of getClob(). Width
>> getString(), i get the outOfMemory
>
> can you post more details. I checked the code ResultSet.getString(...)
> is only called for Varchar and Char columns.
>
> If the log_data_export field in class Log is of type String, OJB
> materialize the Clob and transforms the Clob value to a
> string-representation.
> If you use Clob as type in Log class, OJB only wraps the Clob object -
> the Clob value will not be materialized (if your jdbc-driver implement
> LOB's as pointer objects to the real data).
> See LOB test case:
> http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/lob/LOBTest.java?view=markup
>
>
> regards,
> Armin
>
>>
>> Here my test
>> -----------
>> public void clobTest() {
>> PersistenceBroker pb = getBroker();
>> JdbcAccess jdbcAccess = pb.serviceJdbcAccess();
>> ClassDescriptor logClassDesc =
>> pb.getClassDescriptor(de.on_ergy.lakon.data.model.Log.class);
>> ResultSetAndStatement rs = jdbcAccess.executeSQL("Select *
>> from Log", logClassDesc, false);
>> ResultSet r = rs.m_rs;
>> Vector logDataExpVec = new Vector();
>> Vector logDataDefaultVec = new Vector();
>> try {
>> while(r.next()) {
>> logDataExpVec.addElement(r.getClob("log_data_export"));
>>
>> logDataDefaultVec.addElement(r.getClob("log_data_default"));
>> }
>> } catch(SQLException ex) {
>> _log.error(ex);
>> }
>> _log.info("Fertig!!!");
>> }
>>
>> -----
>>
>> How can we get a quick solution?
>> Thanks a lot for your spend time!
>>
>> regards, josef
>>
>>
>>
>> Armin Waibel schrieb:
>>>
>>> by the way, do your test pass if you set the
>>> 'proxy-prefetching-limit' of the relevant class-descriptor or
>>> reference/collection-descriptor's to '0'? Then OJB shouldn't
>>> prefetch the references.
>>>
>>> regards,
>>> Armin
>>>
>>>
>>>
>>> Armin Waibel wrote:
>>>> Hi Josef,
>>>>
>>>> Josef Wagner wrote:
>>>>> Hello Armin,
>>>>>
>>>>> no, I have allready replaced all CGLib classes width JDK classes. My
>>>>> problem is, that i can't debug the following issue: -------- Caused
>>>>> by: java.lang.NullPointerException at
>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.access$000(QueryReferenceBroker.java:64)
>>>>>
>>>>>
>>>>
>>>> I think this is the access from the inner class
>>>> PBMaterializationListener to the private field 'pb' in class
>>>> QueryReferenceBroker.
>>>> Decompiled code for QueryReferenceBroker:
>>>> ...
>>>> static org.apache.ojb.broker.core.PersistenceBrokerImpl
>>>> access$000(org.apache.ojb.broker.core.QueryReferenceBroker);
>>>> Code:
>>>> 0: aload_0
>>>> 1: getfield #4; //Field
>>>> pb:Lorg/apache/ojb/broker/core/PersistenceBrokerImpl;
>>>> 4: areturn
>>>>
>>>>
>>>>>
>>>>> at
>>>>> org.apache.ojb.broker.core.QueryReferenceBroker$PBMaterializationListener.addThisListenerTo(QueryReferenceBroker.java:990)
>>>>>
>>>>>
>>>>>
>>>>> -------- <code> Line 990: _listenedHandler =
>>>>> pb.getProxyFactory().getIndirectionHandler(owner); </code>
>>>>>
>>>>> pb is != null
>>>>>
>>>>> I have no idea :o/. Are there any no features, that I have to keep in
>>>>> mind?
>>>>>
>>>>
>>>> I remember that I got a similar ".access$000" error some weeks ago.
>>>> But I can't remember the reason. I thought it was a proxy issue (do
>>>> you get the same error when using CGLIB-proxy classes?) - but seems
>>>> this isn't the reason.
>>>>
>>>> Could you describe or post the test source code to reproduce the
>>>> issue?
>>>>
>>>> regards,
>>>> Armin
>>>>
>>>>
>>>>> regards, Josef
>>>>>
>>>>>
>>>>>
>>>>> Armin Waibel schrieb:
>>>>>> Hi Josef,
>>>>>>
>>>>>> could this be a proxy issue? Please check the settings in
>>>>>> OJB.properties file - do you need CGLib based proxies?
>>>>>>
>>>>>> regards, Armin
>>>>>>
>>>>>> Josef Wagner wrote:
>>>>>>> Hi Armin, i tried to starting my application width 1.0.5, but
no
>>>>>>> success. I can`t get any informations when looking into the log.
>>>>>>> I think, it`s an Java Reflection Problem: Hier is the log output,
>>>>>>> have you any idee ?
>>>>>>>
>>>>>>> java.lang.reflect.InvocationTargetException at
>>>>>>> org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:357)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.jface.operation.ModalContext.run(ModalContext.java:291)
>>>>>>> at
>>>>>>> org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:447)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> de.on_ergy.lakon.rcp.dialog.LoginDialog.buttonPressed(LoginDialog.java:114)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:556)
>>>>>>> at
>>>>>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
>>>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
at
>>>>>>> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3125)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2758)
>>>>>>> at org.eclipse.jface.window.Window.runEventLoop(Window.java:809)
>>>>>>> at org.eclipse.jface.window.Window.open(Window.java:787) at
>>>>>>> de.on_ergy.base.ui.OnErgyDialog.open(OnErgyDialog.java:132) at
>>>>>>> de.on_ergy.lakon.rcp.LakonWorkbenchWindowAdviser.postWindowOpen(LakonWorkbenchWindowAdviser.java:209)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(WorkbenchWindow.java:1070)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow.java:701)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.busyOpenWorkbenchWindow(Workbench.java:677)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.doOpenFirstTimeWindow(Workbench.java:1282)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbench.java:1223)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWindow(WorkbenchConfigurer.java:190)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:706)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at org.eclipse.ui.internal.Workbench.init(Workbench.java:1034)
at
>>>>>>> org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1636)
at
>>>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
>>>>>>>
>>>>>>> at
>>>>>>> de.on_ergy.lakon.rcp.RcpApplication.run(RcpApplication.java:44)
>>>>>>> at
>>>>>>> org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>>>>> at java.lang.reflect.Method.invoke(Unknown Source) at
>>>>>>> org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
at
>>>>>>> org.eclipse.core.launcher.Main.basicRun(Main.java:278) at
>>>>>>> org.eclipse.core.launcher.Main.run(Main.java:973) at
>>>>>>> org.eclipse.core.launcher.Main.main(Main.java:948) Caused by:
>>>>>>> org.apache.ojb.broker.PersistenceBrokerException:
>>>>>>> java.lang.NullPointerException at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:290)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1597)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:393)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:393)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> de.on_ergy.base.provider.OnErgyDataProviderOjb.select(OnErgyDataProviderOjb.java:518)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> de.on_ergy.lakon.data.DataProviderOjb.select(DataProviderOjb.java:1486)
>>>>>>>
>>>>>>> at
>>>>>>> de.on_ergy.lakon.data.DataProviderOjb.select(DataProviderOjb.java:1473)
>>>>>>>
>>>>>>> at
>>>>>>> de.on_ergy.base.provider.OnErgyDataProviderOjb.select(OnErgyDataProviderOjb.java:480)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> de.on_ergy.lakon.data.DataProvider.select(DataProvider.java:248)
at
>>>>>>> de.on_ergy.lakon.bp.stammdaten.LakonBP.select(LakonBP.java:131)
at
>>>>>>> de.on_ergy.lakon.rcp.dialog.LoginDialog$1.run(LoginDialog.java:97)
>>>>>>> at
>>>>>>> org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:346)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ... 36 more Caused by: java.lang.NullPointerException at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.access$000(QueryReferenceBroker.java:64)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker$PBMaterializationListener.addThisListenerTo(QueryReferenceBroker.java:990)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker$PBPrefetchingListener.<init>(QueryReferenceBroker.java:1048)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker$PBMaterializationListener.<init>(QueryReferenceBroker.java:985)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReference(QueryReferenceBroker.java:413)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReferences(QueryReferenceBroker.java:495)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:490)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:280)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:143)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:277)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ... 47 more
>>>>>>>
>>>>>>>
>>>>>>> thanks for your help! regrads Josef
>>>>>>>
>>>>>>> Armin Waibel schrieb:
>>>>>>>> Hi Josef,
>>>>>>>>
>>>>>>>> Josef Wagner wrote:
>>>>>>>>> Hello List,
>>>>>>>>>
>>>>>>>>> I have a problem width loading large data from tables
width
>>>>>>>>> clob-culumns. db: oracle 9.2.0.8 ojb: 1.0.4 driver: thin
>>>>>>>>>
>>>>>>>>> When i load 15000 rows, my applikation gets an
>>>>>>>>> OutOfMemoryError. I have ensure, that Oracle width clobs
is
>>>>>>>>> the problem, width HSQLDB, all works fine. The data in
the
>>>>>>>>> clob-culumns are texts width AKTUALLY no more then 100
>>>>>>>>> charakters.
>>>>>>>>>
>>>>>>>>> I have checked out the trunk of ojb and I see, that in
the
>>>>>>>>> platform package are some wrapper-classes for clob und
blob?
>>>>>>>>
>>>>>>>> yep, I reworked the LOB-support a bit and add Blob/Clob
>>>>>>>> java-types support (before OJB converts all LOB's to byte[]).
>>>>>>>>
>>>>>>>>
>>>>>>>>> Unforunatelly, I can't test if this is the solution of
my
>>>>>>>>> problem, because I get lots of errors when starting my
>>>>>>>>> application width a jar from the trunk version.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Don't use the trunk it's the alpha OJB 2.x. Please check
out
>>>>>>>> the OJB_1_0_RELEASE branch it's the stable upcoming OJB 1.0.5
>>>>>>>> version.
>>>>>>>>
>>>>>>>>
>>>>>>>>> Can anybody tell me, if the source in the trunk is the
>>>>>>>>> solution for such problems I have?
>>>>>>>>
>>>>>>>> Don't know - give it a try.
>>>>>>>>
>>>>>>>>
>>>>>>>>> Or is the solution to switch to oralce 10g?
>>>>>>>>
>>>>>>>> I run the LOB-test against OracleXE 10.2.0.1 and
>>>>>>>> classes12_g_10.2.0.2.jar driver.
>>>>>>>> http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/lob/LOBTest.java?view=markup
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> The tests handle CLOB's up to 5000 characters.
>>>>>>>>
>>>>>>>>> Or should I use OCI instead of THIN driver?
>>>>>>>>>
>>>>>>>> Sorry I don't know (not a Oracle expert).
>>>>>>>>
>>>>>>>> regards, Armin
>>>>>>>>
>>>>>>>>> Thanks a lot for your answers.
>>>>>>>>>
>>>>>>>>> regrads Josef Wagner
>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>
>>>>>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>>>>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>
>>>>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For
>>>>>>>> additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>>
>>>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org For
>>>>>>> additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>>
>>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org For
>>>>>> additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org For
>>>>> additional commands, e-mail: ojb-user-help@db.apache.org
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
|