Strange memory behaviour using the System.Collections.Hashtable in object reference

Dear all,
Recently I came across a strange memory behaviour when comparing the system.collections.hashtable versus de scripting.dictionary object and thought to analyse it a bit in depth. First I thought I incorrectly destroyed references to the class and
child classes but even when properly destroying them (and even implemented a "SafeObject" with deallocate method) I kept seeing strange memory behaviour.
Hope this will help others when facing strange memory usage BUT I dont have a solution to the problem (yet) suggestions are welcome.
Setting:
I have a parent class that stores data in child classes through the use of a dictionary object. I want to store many differenct items in memory and fetching or alteging them must be as efficient as possible using the dictionary ability of retrieving key
/ value pairs. When the child class (which I store in the dictionary as value) contains another dictionary object memory handeling is as expected where all used memory is release upon the objects leaving scope (or destroyed via code). When I use a system.collection.hashtable
no memory is released at all though apears to have some internal flag that marks it as useable for another system.collection.hashtable object.
I created a small test snippet of code to test this behaviour with (running excel from the Office Plus 2010 version) The snippet contains a module to instantiate the parent class and child classes that will contain the data. One sub will test the Hash functionality
and the other sub will test the dictionary functionality.
Module1
Option Explicit
Sub testHash()
Dim Parent As parent_class
Dim d_Count As Double
'Instantiate parent class
Set Parent = New parent_class
'Create a child using the hash collection object
Parent.AddChildHash "TEST_hash"
Dim d_CycleCount As Double
d_CycleCount = 50000
'Add dummy data records to the child container with x amount of data For d_Count = 0 To d_CycleCount
Parent.ChildContainer("TEST_hash").InsertDataToHash CStr(d_Count), "dummy data"
Next
'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
'According to documentation and debug messages not really required!
Set Parent.ChildContainer("TEST_hash") = Nothing
'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
Set Parent = Nothing
End Sub
Sub testDict()
Dim Parent As parent_class
Dim d_Count As Double
'Instantiate parent class
Set Parent = New parent_class
'Create a child using the dictionary object
Parent.AddChildDict "TEST_dict"
Dim d_CycleCount As Double
d_CycleCount = 50000
'Blow up the memory with x amount of records
Dim s_SheetCycleCount As String
s_SheetCycleCount = ThisWorkbook.Worksheets("ButtonSheet").Range("K2").Value
If IsNumeric(s_SheetCycleCount) Then d_CycleCount = CDbl(s_SheetCycleCount)
'Add dummy data records to the child container
For d_Count = 0 To d_CycleCount
Parent.ChildContainer("TEST_dict").InsertDataToDict CStr(d_Count), "dummy data"
Next
'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
'According to documentation and debug messages not really required!
Set Parent.ChildContainer("TEST_dict") = Nothing
'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
Set Parent = Nothing
End Sub
parent_class:
Option Explicit
Public ChildContainer As Object
Private Counter As Double
Private Sub Class_Initialize()
Debug.Print "Parent initialized"
Set ChildContainer = CreateObject("Scripting.dictionary")
End Sub
Public Sub AddChildHash(ByRef ChildKey As String)
If Not ChildContainer.Exists(ChildKey) Then
Dim TmpChild As child_class_hashtable
Set TmpChild = New child_class_hashtable
ChildContainer.Add ChildKey, TmpChild
Counter = Counter + 1
Set TmpChild = Nothing
End If
End Sub
Public Sub AddChildDict(ByRef ChildKey As String)
If Not ChildContainer.Exists(ChildKey) Then
Dim TmpChild As child_class_dict
Set TmpChild = New child_class_dict
ChildContainer.Add ChildKey, TmpChild
Counter = Counter + 1
Set TmpChild = Nothing
End If
End Sub
Private Sub Class_Terminate()
Debug.Print "Parent being killed, first kill all childs (if there are any left!) - muahaha"
Set ChildContainer = Nothing
Debug.Print "Parent killed"
End Sub
child_class_dict
Option Explicit
Public MemmoryLeakObject As Object
Private Sub Class_Initialize()
Debug.Print "Child using Scripting.Dictionary initialized"
Set MemmoryLeakObject = CreateObject("Scripting.Dictionary")
End Sub
Public Sub InsertDataToDict(ByRef KeyValue As String, ByRef DataValue As String)
If Not MemmoryLeakObject.Exists(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
End Sub
Private Sub Class_Terminate()
Debug.Print "Child using Scripting.Dictionary terminated"
Set MemmoryLeakObject = Nothing
End Sub
child_class_hash:
Option Explicit
Public MemmoryLeakObject As Object
Private Sub Class_Initialize()
Debug.Print "Child using System.Collections.Hashtable initialized"
Set MemmoryLeakObject = CreateObject("System.Collections.Hashtable")
End Sub
Public Sub InsertDataToHash(ByRef KeyValue As String, ByRef DataValue As String)
If Not MemmoryLeakObject.ContainsKey(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
End Sub
Private Sub Class_Terminate()
Debug.Print "Child using System.Collections.Hashtable terminated"
Set MemmoryLeakObject = Nothing
End Sub
Statistics:
TEST: (Chronologically ordered)
1.1 Excel starting memory: 25.324 kb approximately
Max memory usage after hash (500.000 records) 84.352 kb approximately
Memory released: 0 %
1.2 max memory usages after 2nd consequtive hash usage 81.616 kb approximately
"observation:
- memory is released then reused
- less max memory consumed"
1.3 max memory usages after 3rd consequtive hash usage 80.000 kb approximately
"observation:
- memory is released then reused
- less max memory consumed"
1.4 Running the dictionary procedure after any of the hash runs will start from the already allocated memory
In this case from 80000 kb to 147000 kb
Close excel, free up memory and restart excel
2.1 Excel starting memory: 25.324 kb approximately
Max memory usage after dict (500.000 records) 90.000 kb approximately
Memory released: 91,9%
2.2 Excel starting memory 2nd consequtive dict run: 27.552 kb approximately
Max memory usage after dict (500.000 records) 90.000 kb approximately
Memory released: 99,4%
2.3 Excel starting memory 3rd consequtive dict run: 27.712 kb approximately
Max memory usage after dict (500.000 records) 90.000 kb approximately
Memory released:

Hi Cor,
Thank you for going through my post and took the time to reply :) Most apreciated. The issue I am facing is that the memory is not reallocated when using mixed object types and is not behaving the same. I not understand that .net versus the older methods
use memory allocation differently and perhaps using the .net dictionary object (in stead of the scripting.dictionary) may lead to similar behaviour. {Curious to find that out -> put to the to do list of interesting thingies to explore}
I agree that allocated memory is not a bad thing as the blocks are already assigned to the program and therefore should be reallocated with more performance. However the dictionary object versus hashtable perform almost identical (and sometimes even favor
the dictionary object)
The hashtable is clearly the winner when dealing with small sets of data.
The issue arises when I am using the hash table in conjunction with another type, for example a dictionary, I see that the dictionary object's memory is stacked on top of the claimed memory space of the hashtable. It appears that .net memory allocation and
reuse is for .net references only. :) (Or so it seems)
In another example I got with the similar setup, I see that the total used memory is never released or reclaimed and leakage of around 20% allocated memory remains to eventually crash the system with the out of memory message. (This is when another class
calls the parent class that instantiates the child class but thats not the point of the question at hand)
This leakage drove me to investigate and create the example of this post in the first place. For the solution with the class -> parent class -> child class memory leak I switched all to dictionaries and no leakage occurs anymore but nevertheless thought
it may be good to share / ask if anyone else knows more :D (Never to old to learn something new)

Similar Messages

  • Not enough memory to initialize the system??

    Hi,
    I am trying to write a little MIDlet but have experienced some trouble with starting the MIDlet. I use the phone S55 and the MIDlet has about 12KB.
    There are about 9 displayables all extending List but one, which is just a string item. All runs fine up to that time, but then when I add two other displayables each including one text filed in order to add and save some info in a recordstore (the record store is even commented out) the mobile just show the message "please wait" and runs for some minutes. Once it also showed the message "not enough memory to initialize the system". But that can`t be because of two new displayables with text fields, can`t.
    I appreciate any help.
    Thx

    It actually really seams, that the problem occures as soon as I create an Object:
    private SaveLP saveLP = new SaveLP();
    and the Class looks like this:
    import javax.microedition.lcdui.*;
    public class SaveLicencePlate extends Form implements CommandListener {
    private LicencePlate licencePlate = new LicencePlate();
    private TextField textField1;
    /**Construct the displayable*/
    public SaveLicencePlate() {
    super("Car Licence Plate");
    try {
    jbInit();
    } catch(Exception e) {
    e.printStackTrace();
    /**Component initialization*/
    private void jbInit() throws Exception {
    // set up this Displayable to listen to command events
    textField1 = new TextField("", "", 15,TextField.ANY);
    textField1.setLabel("Neues Autokennzeichen");
    textField1.setMaxSize(10);
    setCommandListener(this);
    addCommand(new Command("Zur�ck", Command.EXIT, 1));
    addCommand(new Command("Save", Command.OK, 1));
    this.append(textField1);
    /**Handle command events*/
    public void commandAction(Command command, Displayable displayable) {
    if (command.getCommandType() == Command.EXIT) {
    MIDlet1 midlet = MIDlet1.getInstance();
    Display.getDisplay(midlet).setCurrent(licencePlate);
    }else if (command.getCommandType() == Command.OK){
    I mean, I wrote MIDlets before and never had a problem with a textField. Or do you see anything else that has the mistake?

  • How can I make and wire reffercence signals(ramp,sine,square) to excite and evaluate the behaviour of the system wih PID control?

    Dear all,
    I am Tri, I am a beginer with LV program. Actually I used LV for my reasearch, I had tried wiht very simple thing but the problem arise because I am not familiar with LA. Why I know that problem is simple because I compare with MatLab that I had somtime used before.
    I make a loop of PID control, It worked properly but I don't know how to make a refference signal to wire to the loop for excitating to evaluate the behaviour of the system. Please give me your help.
    Thanks

    Hi Tri,
          I've employed the "simple PID.vi" without a problem, but your example is more complex.  I think you use a Function generator to modulate DAQ inputs?
    Perhaps someone else will be able to infer your intention and identify a flaw in the logic.
    In case someone else wants to run your VI, it may help to build/attach an .llb (some sub-VIs are needed by the VI you atached.)
    To build the .llb, save your VI with Development Distribution options (Alt-F,Alt-W) and attach the .LLB
    1) \File\Save with Options
    2) select Development Distribution
    3) Save
    4) choose "New VI Library"
    But first, It would be helpful to us if you clean-up the code - straighten wire-paths, minimize bends in wires, and try to avoid "tall" diagrams.  Scrolling diagrams up and down is "bad form".  If scrolling is necessary, left&right is preferrable!
    Cheers.
    (and, for the record: in my previous post, Exitation would be wired to "Process Variable", Not "Set Point" (ouch!))
    When they give imbeciles handicap-parking, I won't have so far to walk!

  • I installed bootcamp but became a pain to use so I unistalled it. Now every time I turn my Macbook pro on it keeps asking me what startup disk to use. I tried using the system preferences to correct this but it hasn't worked. Can someone help

    I installed bootcamp but became a pain to use so I unistalled it. Now every time I turn my Macbook pro on it keeps asking me what startup disk to use. I tried using the system preferences to correct this but it hasn't worked. I even restored my mac back to factory settings but it still asks me what startup disk to use. I have looked everywhere for a solution but one anywhere

    Delete the System Preference .plist file (preference file) and when rebooting and #2 Reset the PRAM
    Deleting the System Preference or other .plist file
    ..Step by Step to fix your Mac
    Then head to System Preferences > Startup Disk and select the OS X volume to boot from.

  • HT201250 I had to replace the hard drive in my old MacBook. I replaced it. Installed OSX10.6. Then using the system software I reinstalled data from my Time Machine backup. On completion it asked for my password. It is not accepted. I am locked out how I

    I had to replace the hard drive in my old MacBook. I replaced it. Installed OSX10.6. Then using the system software I reinstalled data from my Time Machine backup. On completion it asked for my password. It is not accepted. I am locked out how I overcome this?
    I was already using 10.7. But only had the disc for 10.6.

    Sorry I am new to this. Am I in the right area? I am using my iPhone to make contact. I am worried.

  • I want to put windows 7 on my iMac. Do I use Windows 7, 64 bit System Builder or do I use a "retail copy" of the Windows 7, 64 bit ? Microsoft says I should use the System Builder copy. A technical support individual from Apple said use the "retail copy"

    A Microsoft technical advisor said that the "retail copy" of Windows 7, 64 bit Home Premium would not work with Boot Camp to put the Windows operating system on the IMac. She said that I would have to use the System Builder copy of Windows 7 to put it on my iMac. An Apple technical advisor told me that I had to use the "retail copy" of Window 7 because that was the one used by Apple when they developed the Boot Camp program.  I have also seen some articles from Apple that suggests that both copies of Windows 7 would work OK. Does anyone have any experience that shows which one or both I should purchase to put on my computer?

    Welcome to ASC!
    I used the 64-bit System Builder Edition when I bootcamped my 2010 iMac a couple of years ago. Worked perfectly--installed a very lean system. Without all the extra cr@pware that comes preinstalled on name-brand Win computers, the SBE OS actually works darned well.
    However, that was under Mac OS 10.6.8 which remains on that computer for compatibilty reasons not related to Windows. Haven't BCed any newer Mac OS, so your mileage may vary.

  • Many problems of memory, when using the workbench - LC 8.2

    Hello,
    I have many problems memory, when using the workbench.
    When a try to add a component in the workbench, I get an outOfMemoreException in the log file. There is an error message in a popup in the workbench.
    My configuration:
    Hardware: Intel Core 2 Quad - Q9550 - 2.83 Ghz - 4Go of RAM - 32 bits (this is a new workstation computer).
    Software: Windows XP pro service pack 3.
    JBoss for Adobe LiveCycle ES - Jboss Livecycle version 8.2 with SP2 of LiveCycle ES and Workbench.
    MySQL for Adobe LiveCycle ES
    Here is my workbench.ini file - the beginning:
    -vmargs
    -Xms128M
    -Xmx512M
    -XX:MinHeapFreeRatio=40
    -XX:MaxPermSize=512M
    Here is my log file from the workbench.
    !SESSION 2009-05-20 14:44:12.435 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.5.0_11
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_CH
    Framework arguments:  #Product Runtime Configuration File
    Command-line arguments:  -os win32 -ws win32 -arch x86 #Product Runtime Configuration File
    !ENTRY com.adobe.ide.singlesignon 1 1 2009-05-20 14:44:13.638
    !MESSAGE LiveCycle Workbench ES version '8.2.1.2'
    !ENTRY org.eclipse.ui 4 4 2009-05-20 14:44:14.700
    !MESSAGE Invalid Menu Extension (Path is invalid): org.eclipse.ui.edit.text.gotoLastEditPosition
    !ENTRY com.adobe.DSC_Admin_UI 4 4 2009-05-20 14:44:34.746
    !MESSAGE failed to retrieve list of components
    !STACK 0
    ALC-DSC-000-000: com.adobe.idp.dsc.DSCRuntimeException: Internal error.
        at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.throwExceptionHandler(So apAxisDispatcher.java:207)
        at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.doSend(SoapAxisDispatche r.java:125)
        at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispat cher.java:57)
        at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)
        at com.adobe.idp.dsc.registry.component.client.ComponentRegistryClient.invoke(ComponentRegis tryClient.java:373)
        at com.adobe.idp.dsc.registry.component.client.ComponentRegistryClient.getComponents(Compone ntRegistryClient.java:63)
        at com.adobe.dsc.contentprovider.MixedRegistryContentProvider$RegistryRootEntry.getChildren( MixedRegistryContentProvider.java:150)
        at com.adobe.dsc.contentprovider.MixedRegistryContentProvider.getChildren(MixedRegistryConte ntProvider.java:575)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1166)
        at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:768)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChildren(AbstractTreeViewer.java: 574)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:54 3)
        at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:728)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
        at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:705)
        at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:892)
        at org.eclipse.jface.viewers.AbstractTreeViewer.setExpandedState(AbstractTreeViewer.java:220 1)
        at com.adobe.dsc.contentprovider.MixedRegistryContentProvider.userLoggedIn(MixedRegistryCont entProvider.java:619)
        at com.adobe.ide.singlesignon.LoginChangeProgressMonitor.run(Unknown Source)
        at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:479)
        at com.adobe.ide.singlesignon.IDESession.notifyListenersOfLogin(Unknown Source)
        at com.adobe.ide.singlesignon.IDESession.localLogin(Unknown Source)
        at com.adobe.ide.singlesignon.IDESession.access$000(Unknown Source)
        at com.adobe.ide.singlesignon.IDESession$1.run(Unknown Source)
        at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:152)
        at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:28)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:3763)
        at com.adobe.ide.singlesignon.IDESession.login(Unknown Source)
        at com.adobe.common.ui.controls.LoginInfoPanel$1.widgetSelected(LoginInfoPanel.java:63)
        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:928)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
        at org.eclipse.swt.widgets.Link.wmNotifyChild(Link.java:923)
        at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:3794)
        at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:1166)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3298)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
        at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1851)
        at org.eclipse.swt.widgets.Link.callWindowProc(Link.java:124)
        at org.eclipse.swt.widgets.Widget.wmLButtonUp(Widget.java:1807)
        at org.eclipse.swt.widgets.Control.WM_LBUTTONUP(Control.java:3587)
        at org.eclipse.swt.widgets.Link.WM_LBUTTONUP(Link.java:773)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3280)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1932)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at com.adobe.lcide.rcp.Application.run(Unknown Source)
        at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLau ncher.java:92)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.jav a:68)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
        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:336)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)
    Caused by: java.lang.OutOfMemoryError: Java heap space; nested exception is:
        java.lang.OutOfMemoryError: Java heap space
        at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
        at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
        at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:10 87)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch( Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
        at org.apache.axis.client.Call.invoke(Call.java:2748)
        at org.apache.axis.client.Call.invoke(Call.java:2424)
        at org.apache.axis.client.Call.invoke(Call.java:2347)
        at org.apache.axis.client.Call.invoke(Call.java:1804)
        at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.doSend(SoapAxisDispatche r.java:123)
        ... 68 more
    !ENTRY com.adobe.ide.singlesignon 1 1 2009-05-20 14:44:37.871
    !MESSAGE User 'administrator' logged in to server 'Livecycle ES - localhost' (hostname: 'localhost')
    !ENTRY com.adobe.DSC_Admin_UI 4 4 2009-05-20 14:44:56.792
    !MESSAGE failed to retrieve list of components
    !STACK 0
    ALC-DSC-000-000: com.adobe.idp.dsc.DSCRuntimeException: Internal error.
        at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.throwExceptionHandler(So apAxisDispatcher.java:207)
        at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.doSend(SoapAxisDispatche r.java:125)
        at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispat cher.java:57)
        at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)
        at com.adobe.idp.dsc.registry.component.client.ComponentRegistryClient.invoke(ComponentRegis tryClient.java:373)
        at com.adobe.idp.dsc.registry.component.client.ComponentRegistryClient.getComponents(Compone ntRegistryClient.java:63)
        at com.adobe.dsc.contentprovider.MixedRegistryContentProvider$RegistryRootEntry.getChildren( MixedRegistryContentProvider.java:150)
        at com.adobe.dsc.contentprovider.MixedRegistryContentProvider.getChildren(MixedRegistryConte ntProvider.java:575)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1166)
        at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:768)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChildren(AbstractTreeViewer.java: 574)
        at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:54 3)
        at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:728)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
        at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:705)
        at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:892)
        at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:125 1)
        at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1263)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:181)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
        at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:6343)
        at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:3794)
        at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:1166)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3298)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
        at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1851)
        at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1321)
        at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:5203)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3279)
        at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:4783)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1932)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at com.adobe.lcide.rcp.Application.run(Unknown Source)
        at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLau ncher.java:92)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.jav a:68)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
        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:336)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)
    Caused by: java.lang.OutOfMemoryError: Java heap space; nested exception is:
        java.lang.OutOfMemoryError: Java heap space
        at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
        at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
        at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:10 87)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch( Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
        at org.apache.axis.client.Call.invoke(Call.java:2748)
        at org.apache.axis.client.Call.invoke(Call.java:2424)
        at org.apache.axis.client.Call.invoke(Call.java:2347)
        at org.apache.axis.client.Call.invoke(Call.java:1804)
        at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.doSend(SoapAxisDispatche r.java:123)
        ... 54 more
    Please, can you tell me if you have met thist problem. How didi you solve it ?
    Thank you in advance.
    ECI

    Hello,
    I did what you told:
    - the mysql Jar version was already the  mysql-connector-java-5.1.6-bin.jar (may be due to update SP2),
    - I changed to adobe-ds.xml file,
    - I tried to launch the workbench with -Xmx512m in the command line.
    Here is the result:
    1- the launch of the workbench isa bit faster.
    2- when I try to login with the administrator account, it takes a long while. Then I get an error: I can not logon to the livecycle ES server from the workbench. The message is "Authentication for user administrator on server ... failed, please retry".
    In my log file, I get the following.
    eclipse.buildId=unknown
    java.version=1.5.0_12
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_CH
    Framework arguments:  #Product Runtime Configuration File -Xmx512m
    Command-line arguments:  -os win32 -ws win32 -arch x86 #Product Runtime Configuration File -Xmx512m
    !ENTRY com.adobe.ide.singlesignon 1 1 2009-05-25 15:17:37.780
    !MESSAGE LiveCycle Workbench ES version '8.2.1.2'
    !ENTRY org.eclipse.ui 4 4 2009-05-25 15:17:38.827
    !MESSAGE Invalid Menu Extension (Path is invalid): org.eclipse.ui.edit.text.gotoLastEditPosition
    !ENTRY com.adobe.ide.singlesignon 4 4 2009-05-25 15:19:26.874
    !MESSAGE login failed
    I also got another error message - with another configuration when triying to launch the workbench with JRE 1.6.0.12 (I hoped for better performance when replacing the JRE folder) :
    !ENTRY com.adobe.ide.singlesignon 4 4 2009-05-25 15:02:46.942
    !MESSAGE login failed
    !STACK 0
    com.adobe.ide.singlesignon.exceptions.IDEServerError: ALC-DSC-000-000: com.adobe.idp.dsc.DSCRuntimeException: Internal error.
    at com.adobe.ide.singlesignon.utils.DSInstance.authenticate(Unknown Source)
    Caused by: ALC-DSC-000-000: com.adobe.idp.dsc.DSCRuntimeException: Internal error.
    at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.throwExceptionHandler(So apAxisDispatcher.java:207)
    Caused by: (404)/soap/sdk
    at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    I also tried to to logon after renaming the folder JRE under: C:\Program Files\Adobe\LiveCycle ES\Workbench ES\Workbench . In order to use my default JRE which is 1.5.0-12.
    On the whole, I still get so errors and I can not logon.
    Do you have any suggestion ?
    Thank you for taking some time to reply.
    What I am tried to do is to added a HelloComponent.jar fronm a tutorial:
    http://www.adobe.com/devnet/livecycle/articles/dsc_development.html
    My final  goal is to developp a ECM Connector.
    Thank you
    Regards
    eci

  • Help with this error message: System extenstion cannot be used:The system extension "/System/Library/Extensions/AppleACPIPlatform.kext" was installed improperly and cannot be used. Please try reinstalling it, or contact the product's vendor for an update.

    I have this error message:
    System extension cannot be used
    The system extension “/System/Library/Extensions/AppleACPIPlatform.kext” was installed improperly and cannot be used. Please try reinstalling it, or contact the product’s vendor for an update.
    Please help. Is there a update or how do I reinstall?
    Thanks,
    John

    I submitted the above question, later finding that it has been answered by Buller already.  No one need reply as Buller's answer seems to solve the problem for others, and I'll try that.
    Jim

  • Using the system variable cpInfoQuizAttempts

    My content is run through an LMS. I am trying to used advanced code using the system variable cpInfoQuizAttempts so that a caption appears when the variable value = 3. Apparently, I can't utilize the value of this variable; in fact, I can't even display it's value in a caption. I am trying to create advanced code on a course page that displays a caption like "You canot take this quiz again because you have already taken it the maximum number of time possible." once someone has taken the course the maximum number of times.  I assume this is the variable Captivate is using to show # attempts on the results page. I tried this with just a user variable but the value of the user variable is not stored or saved on the LMS. Therefore, if you have a maximum number of 3 attempts and someone takes the quiz twice, if he logs off and logs back on, the previous value (2) is not saved and the value reverts to the default (0).
    Any ideas how this could be done?
    KO

    I'm pretty sure that all user defined variables are saved in suspend_data in the LMS. Therefore your user defined variable should be there, but I don't see any way how Captivate would be able to retrieve it again out of the box.
    I think that the cpInfoQuizAttempts variable refers to attempts done in the same "session". So if fail the test and then retry and fail it would have a count of 2. However, once the user exists the course the variable is no longer available to Captivate.
    As Rick said most LMS' have a function to define max / min attempts of a quiz. However, this most likely requires that you publish the quiz as an independant SCO since the "lockout" would apply for that SCO. Basically if you only have one SCO then your users wouldn't be able to access the content or the quiz if they exceded the max attempts. Your content should therefore be one (or more) SCO(s) and your quiz one separate SCO.
    If I'm not mistaken it's also possible to define the max / min attempts in the SCORM manifest, but this is very geeky.
    If you own and can use Flash you could solve your problem two ways:
    1. Create a Flash file that retrieves the user defined variable from the LMS suspend_data and then sends that back into Captivate. Import the Flash file into your Captivate project.
    2. Create a Flash file that stores and retrieves the attempts in a Shared Object on the users PC and then brings the stored value back into Captivate. Import the Flash file into your Captivate project.
    /Michael
    Visit my Captivate blog with tips & tricks, tutorials and Widgets.

  • How can I use the system clock.

    My java program need to use the system clock to initiate some functions. Is there a method to do this or do I need to create one ??
    Any help appreciated.

    The following article will likely contain information useful to you:
    Working in Java time: Learn the basics of calculating elapsed time in Java

  • I have purchased a macbook air with 64 gb hard disk. the available space is only 10gb. With this available space, i can't use the system effectively. kindly advise.

    I have purchased a macbook air with 64 gb hard disk. the available space is only 10gb. With this available space, i can't use the system effectively. kindly advise.

    You should have bought one with a larger SSD. You can regain some space by disabling the sleepimage file:
    To disable safe sleep, run the two following commands in Terminal:
    $ sudo pmset -a hibernatemode 0
    $ sudo nvram "use-nvramrc?"=false
    When done, restart your computer. Now go delete the file "/private/var/vm/sleepimage" to free up some hard drive space. When you put your computer to sleep it, should happen in under five seconds; my MacBook now goes to sleep in two seconds.
    [robg adds: To state the obvious, with safe sleep disabled, a total power loss will wipe out whatever was open on your machine. To enable safe sleep mode again, repeat the above commands, but change hibernatemode 0 on the first line to hibernatemode 3, and =false to =true on the second line. You'll then need to reboot again. Personally, I prefer the safe sleep mode, even with the slower sleep time and hard drive consumption -- even if for no other reason than it's great when changing batteries on a flight.]
    You can also delete unneeded files:
    Freeing Up Space on The Hard Drive
      1. See Lion/Mountain Lion's Storage Display.
      2. You can remove data from your Home folder except for the /Home/Library/ folder.
      3. Visit The XLab FAQs and read the FAQ on freeing up space on your hard drive.
      4. Also see Freeing space on your Mac OS X startup disk.
      5. See Where did my Disk Space go?.
      6. See The Storage Display.
    You must Empty the Trash in order to recover the space they occupied on the hard drive.
    You should consider replacing the drive with a larger one. Check out OWC for drives, tutorials, and toolkits.
    Try using OmniDiskSweeper 1.8 or GrandPerspective to search your drive for large files and where they are located.

  • Extracting Time without using the System Date and Time

    Hi, can I know how to process a task at this particular time eg. 6PM everyday without using the System Date and Time..
    Do I need to use a Timer to get this done or is there any other solution to do this? Can give me a few hints? Thanks in advance =D

    You could use a timer...assuming you had some good reference point when you started so you would know that from your starting point it's now 6pm.
    I thought I saw you asked this question once already...and you were given a similar answer....I think by Sylviae?

  • Can Firefox be set to use the system default printer?

    I would really like it of Firefox would use the system default printer set in the control panel, similar to the way office programs do. Is there no setting in about:config to do this? Or an add-on perhaps?

    I really, really wish Firefox would change this, but I did find one thing.
    In about:config I set:
    print.print_printer to null
    print.save_print_settings to false
    Now it seems to use the system default. And it doesn't remember any changes with in a session, or from one session to the next. It always uses the system default printer.
    I realize different people have different preferences. But on my system the default printer changes automatically depending on what wireless network I'm on at the moment. I wanted Firefox to reflect that.

  • Use the system lang of AIR applications auto update.

    Hello,
    I recently used the auto update framework for my AIR application, this works fine but i have a small problem.
    I made some reasearches and i found AIR uses the system lang by default. When i install my package for the first time, the lang is my sytem lang but when i find a new update after running auto update of my app, the AIR updater window doesn't use my sytem lang, which is french, but uses english lang. I'd like to put this window in french.
    Thanks.

    Try loading and using the add-on from this link: https://addons.mozilla.org/en-US/firefox/addon/add-on-compatibility-reporter/
    Many add-ons do in fact work if you force them to run. The procedure to roll-back is given in this article: [[installing previous versions of firefox]]
    Unfortunately the official Firefox policy is that you downgrade to 3.6 which is supported for a while longer, and not the now unsupported Firefox 4. If after installing and running the ''add-on compatibility reporter'' you still have problems there are ways around the official policy.
    I think it is absurd that Firefox 4 may be used by tens of millions of users one day and a few days later those that upgrade to Firefox 5 should be not only told not to use a now unsupported browser, if they need to revert due to problems, but are actually obstructed in attempts to do so. See also [/questions/840397#answer-205154]

  • Where I can check the internal table memory that have the system?

    Hi
    I have some jobs that cancel with this error:  No storage space available for extending an internal table.
    Where I can check the amount of space memory that have the system and if I can resolve this problem if I put a commit work or something like that?
    The dump stop when I make a import:
    IMPORT TIMES DHIST3 SUM3 FROM DATABASE MONI(DB) ID MONIKEY.
    Thanks for the help!

    hi,
    goto:
    sm04 - goto- memory
    A.
    Message was edited by:
            Andreas Mann

Maybe you are looking for