Memory leak - Node clean up?

Hey guys,
I'm running into a memory leak and was reading some other threads where people were having their own memory leaks. Is there a way through NetBeans to track memory usage or something to figure out what is consuming memory? My memory leak sounds similar to this gentleman's: [http://forums.sun.com/thread.jspa?threadID=5409788] and [http://forums.sun.com/thread.jspa?threadID=5357401]
Setup:
I have a mySQL database call that returns a bunch of results and in the end converts each record into its own custom node which then gets put into a sequence, which is then given to a listEventsNode (a custom node VBox) and finally put on the stage. As a note each custom node has its own animations, events, images, and shapes.
listEventsNode gets its list of custom nodes from a publicly accessible sequence variable where its contents is simply cleared and new nodes are added by the next MySQL search. I cleared the eventSequence by using delete myCustomNodeSequence.
I even go as far as setting the same sequence null (myCustomNodeSequence = null;). This unfortunately doesn't make any difference in terms of memory usage. java.exe will reach 100MB then crash.
the listEventsNode is bound with eventSequence, this is to ensure that changes to the sequence of custom nodes are immediately reflected in the Vbox (listEventsNode).
ListEventsNode is on the main stage and there is only one instance of it, but what changes is the content in the eventSequence. Even if I clear the contents of the eventSequence, it doesn't appear to "clean up" the memory.
The way I'm doing it is probably breaking every rule in the book. I should probably make it so listEventsNode is its own object which isn't bound to any external variables (such as eventSequence) and in the event a new search takes place I simply delete the listEventsNode and when a new search is complete, it re-adds the node to the scene. Am I on the right track here?
Is there a good "best practices" for JavaFX? For example, a typical mistake that would cause a node to "recreate" itself over and over again in memory when the programmer may have thought it was simply being "written over"? Does this make sense? Because I have a feeling that my application is not deleting the custom nodes that were created for the eventSequence and even if the eventSequence is "deleted" and re-assigned with new custom nodes, the original or previous custom nodes are still residing in memory.
Let me know if you need to see the source or any logs/readouts from NetBeans during execution if this will help.
Thanks for taking the time to read this.
Cheers,
Nik.

Your heap usage looks pretty typical. In scenario 5, I think you are simply running out of memory. I doubt its a leak inside the javafx runtime (although it could be).+
I think you might be right. It's running out of memory and I may have to increase the heap size.
Say that my application legitimately needs more memory to operate, and I need to increase the heap size. How does this work if you have a fully deployed application? Is the heap size information built into the application itself so that when the jvm runs the application, it allocates the appropriate amount of memory? I've increased the heap size from 64mb to 128mb, and I added many many nodes and I still crapped out when I hit the 128mb ceiling. I changed it to 512 and I added a TON of nodes (when you click a node from the VBox, it adds a miniature version of the node to the scene graph) and I'm just under 200MB. I plan on setting a cap to how many concurrent additional nodes can be placed on the scene graph, which will help.
If you deploy this as is, how does the application utilize memory if you've adjusted the heap size? Or is this specific to the IDE only?
Do you know what objects are on the heap? Can you compare what objects are on the heap from one scenario to the next?+
Where can I find this information in NetBeans profiler?
Do you have a lot of images? Are they thumbnails or are they images scaled down to thumbnail size?+
Actually, yes I am using a scaled down thumbnail size of the original image. The original image files are PNG format, 60x60 pixels, and about 8kb in size. I simply use the "FitWidth:" property to scale the image down. I was doing some more reading before I went to bed and I was going to use an alternative way to scale the image down. By simply doing this, the initial heap usage off the 500 node search went down form 44MB to 39MB. It's still slower on consecutive searches versus the first, but it's stable.
Edit: I've used the width: property to downsize the image and it looks like I'm not running into that heap crash as fast but this poses a problem where I need to have the full size of the image available when a custom node is selected. What's the best way of doing this? I should probably store the image location in a string and recreate the image when I need it in full size since there is only one full size version of it on the screen at a given time. I've also completely disabled the addition of a picture in my custom node; it appears these images don't take up a lot of space since they are very small. I save an additional 3-5MB in heap space if I completely disable the pictures and have just the nodes themselves. Each node has animation effects (i.e. fading in/out of colors, changing of color if selected). Although the class itself is pretty dang long in comparison with any other classes I have.
Are you clearing the nodes from your scene content before the search or after? If after, are you creating the new nodes before clearing out the old?+
Yes, I have a function that reassigns the stage.scene.content sequence omitting the custom vbox that houses the list of custom nodes prior to the next search. The "cleanUp()" function is called prior to the insertion of the new custom vbox.
It might be useful to turn on verbose garbage collection (-verbose:gc on the java command line) just to see what's happening in gc.+
What is this exactly? I tried putting in System.gc() but I'm not sure if I'm seeing any difference yet.
Edit: Actually, I've placed System.gc() after I run my cleanUp() function and I'm noticing the heap usage is more conservative. Seems to clear more often than it did before. But yes, the underlying problem of my running out of memory is to be looked at.
You might also (just as an experiment) force garbage collection between your searches.+
This seems to work well with smaller result sets. However, a search that produces over 500 custom nodes in a custom VBox uses more than half of the available heap size, so the next time it tries to do the same search it just crashes like you mentioned in your first point. The memory simply runs out. What I don't get is if I "delete" the custom vbox prior to inserting it, the memory doesn't seem to be released immediately. From what I'm reading about the garbage collector, it doesn't exactly do things in a prompt fashion.

Similar Messages

  • Memory leak in Real-Time caused by VISA Read and Timed Loop data nodes? Doesn't make sense.

    Working with LV 8.2.1 real-time to develop a host of applications that monitor or emulate computers on RS-422 busses.   The following screen shots were taken from an application that monitors a 200Hz transmission.  After a few hours, the PXI station would crash with an awesome array of angry messages...most implying something about a loss of memory.  After much hair pulling and passing of the buck, my associate was able to discover while watching the available memory on the controller that memory loss was occurring with every loop containing a VISA read and error propogation using the data nodes (see Memory Leak.jpg).  He found that if he switched the error propogation to regular old-fashioned shift registers, then the available memory was rock-solid.  (a la No Memory Leak.jpg)
    Any ideas what could be causing this?  Do you see any problems with the way we code these sorts of loops?  We are always attempting to optimize the way we use memory on our time-critical applications and VISA reads and DAQmx Reads give us the most heartache as we are never able to preallocate memory for these VIs.  Any tips?
    Dan Marlow
    GDLS
    Solved!
    Go to Solution.
    Attachments:
    Memory Leak.JPG ‏136 KB
    No Memory Leak.JPG ‏137 KB

    Hi thisisnotadream,
    This problem has been reported, and you seem to be exactly reproducing the conditions required to see this problem. This was reported to R&D (# 134314) for further investigation. There are multiple possible workarounds, one of which is the one that you have already found of wiring the error directly into the loop. Other situations that result in no memory leak are:
    1.  If the bytes at port property node is not there and a read just happens in every iteration and resulting timeouts are ignored.
    2.  If the case structure is gone and just blindly check the bytes at port and read every iteration.
    3.  If the Timed Loop is turned into a While loop.
    Thanks for the feedback!
    Regards,Stephen S.
    National Instruments
    Applications Engineering

  • How Do I identify a Memory Leak?

    I know this is not enought information but...
    My application used 3 hashtables in a Data object to store application data. I retrive this data from an XML file. I also download XML and merge it into andother XML file. Some of these hashtables contain object that contain more hashtables.
    I am trying to use JProbe Profiler to find the leak. I notice the memory increases when I load the data into objects and put them into hash tables. I also notice an increase when I am merging newly downloaded XML into the current XML data. I am useing Nodelists and NOdes to get the data.
    Does anyone have any tips or suggestion on how to find a memory leak?
    Thank you,
    Al

    7 MB of XML file, loaded into a DOM? You realize, of
    course, that DOMs are data structures that take up
    memory, too, right?Yes I do. I load it into DOM then go through the Document and put the XML data into a custom file format (seialized objects). The data is sent from the server in the form of XML.
    There's your problem. If you load X MB into memory
    and keep it around as long as your application is
    running, that's not necessarily a "leak". Yeah I realized this but it seems that if I load 7MB of my objects into hashtables my memory usage shouldn't increase by 30MB. I just assumed it would stay around 10MB.
    The real issue is trading memory for CPU. If keeping
    them in memory is crashing your app with OOM errors,
    by all means just keep those objects in memory for as
    long as you need them and then let the GC clean them
    up. Don't put them in a Map, just let them have a
    narrow method scope. Recreate them every time you
    need them. Yes I'm beginning to see the light.
    I'm sure you're thinking, "But recreating them will
    cost CPU and slow down my app!" Yes, that's why it's
    a tradeoff between memory and CPU.
    Do you really need the whole document in memory at
    once? If you're just cherry picking a few values out
    of it, maybe you can use a SAX parser instead of a
    DOM.
    No I don't need all that data at once.
    >
    Either you're screwed or you need to rethink this.
    You'd better hope that it's really not needed at
    every moment for every client.After rethinking, I'm going to keep the serialized data in the file until I need it. Rather than searching through a hashtable for the object I want I will search the file.
    What are your JVM settings for -Xms and -Xmx? Maybe
    increasing those will do the trick.I did increase them and it helped a little, but I can still get a OutOfMemoryError if I try.
    Are you sure these are the culprits? Have you
    profiled the app to see if there are other sources of
    leaks?Yes I have been profiling the application. It seems that there is a memory leek. I am just having trouble identifing it. I know the memory increases at 2 points. When I load the XML data into the DOM and when I load the DOM into my Custom object and then into the Hashtables.
    Last resort? Buy more physical memory. It's cheap.I think I am going to keep unused data out of memory and access it form a file. After I make this change I think my memory usage will drop alot. I will profile again after I have this change made to see if there is a memory leak.
    Thanks for you help,
    Al

  • Memory Leak in WindowsTreeUI?

    I'm hunting memory leaks in my app (of which there are alarmingly many), and have just stumbled across one which appears to be a bug in the class com.sun.java.swing.plaf.windows.WindowsTreeUI
    When the tree is populated, each treenode contains a reference to a node in our own rather large data structure.
    When we close the application-level model, we also call tree.setModel(null) and expect the tree to lose all its references. From a memory management point of view, it is important that the entire old model goes out of scope before we start loading a new one.
    If the tree is visible, everything works as expected.
    But if the tree is not visible (but still in scope) e.g. because we overlay a component in a JLayeredPanel, we get some dangling references in the (private) drawingCache member of the WindowsTreeUI class. And a single dangling reference keeps the whole caboodle in scope until something else comes along.
    I have a bad feeling I'm going to have code around painfully by substitiuting in some lite dummy model and then modifying all the event handlers that get confused as a result.
    Or does anyone have a bright idea how I can persuade the drawingCache to flush itself (presumably this only happens on windows)?
    Ian

    I also had a similar problem. My app has a number of large jtrees (200-300 nodes) with other data objects attached. I was doing a simple null of the JTree thinking that it would be GC'd. Using the NetBeans profiler I could see that it never went away. I found one location where I was temporarily hang on to node references within Swing controls. I've eliminated those. I then released the listeners I specifically assigned. There seems to be other listeners hanging on to node references. I have found little in the way of documentation or advice on how to clean these up. As a work around, when I'm done with a JTree, I traverse the nodes bottom up and remove each node from its parent (DefaultMutableTreeNode - removeNodeFromParent() ). This seems to work. The NetBeans profiler shows the vast majority of the JTree objects as GC'd. I'm sure this is not a perfect solution but it seems to be serviceable.
    I would appreciate hearing about any experiences in getting JTrees to GC.

  • Panic 4, memory leak ?

    Hello
    The past days ever since i installed memory clean ultie from the appstore and did a clean my macbook
    seems to crash right after i did the memory clean i removed the program from my applications
    so i dont know wether this is actually the problem of it or something else,
    could someone please help me
    Thanks
    Anonymous UUID:       994A3363-0967-182E-8576-4F17EFE52307
    Thu Mar  5 10:34:30 2015
    *** Panic Report ***
    panic(cpu 4 caller 0xffffff802df6f8f5): "zalloc: zone map exhausted while allocating from zone kalloc.8192, likely due to memory leak in zone vm objects (1555451040 total bytes, 6481032 elements allocated)"@/SourceCache/xnu/xnu-2782.10.72/osfmk/kern/zalloc.c:2521
    Backtrace (CPU 4), Frame : Return Address
    0xffffff813c20bc00 : 0xffffff802df2fe41
    0xffffff813c20bc80 : 0xffffff802df6f8f5
    0xffffff813c20bdb0 : 0xffffff802df38581
    0xffffff813c20bde0 : 0xffffff802df17f70
    0xffffff813c20be10 : 0xffffff802df33f27
    0xffffff813c20be40 : 0xffffff802df18a93
    0xffffff813c20be90 : 0xffffff802df293bd
    0xffffff813c20bf10 : 0xffffff802e0059fa
    0xffffff813c20bfb0 : 0xffffff802e036ea6
    BSD process name corresponding to current thread: fontworker
    Mac OS version:
    14C109
    Kernel version:
    Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64
    Kernel UUID: DCF5C2D5-16AE-37F5-B2BE-ED127048DFF5
    Kernel slide:     0x000000002dc00000
    Kernel text base: 0xffffff802de00000
    __HIB  text base: 0xffffff802dd00000
    System model name: MacBookPro10,1 (Mac-C3EC7CD22292981F)
    System uptime in nanoseconds: 14888473755958
    vm objects:1555451040
    vm object hash entri:253897840
    VM map entries:522873920
    pv_list:34381824
    vm pages:130325312
    kalloc.16:101163568
    kalloc.32:1205568
    kalloc.64:5640768
    kalloc.128:7450624
    kalloc.256:5550080
    kalloc.512:121769984
    kalloc.1024:3108864
    kalloc.2048:2310144
    kalloc.4096:3276800
    kalloc.8192:9052160
    mem_obj_control:101560272
    ipc ports:2876000
    threads:1572000
    x86 fpsave state:1101568
    uthreads:1075200
    vnodes:11085360
    namecache:2863968
    HFS node:14616336
    HFS fork:4448256
    decmpfs_cnode:1233792
    ubc_info zone:2794704
    vnode pager structur:1272600
    compressor_pager:404197376
    compressor_segment:5669424
    Kernel Stacks:2654208
    PageTables:174948352
    Kalloc.Large:33339717
    Backtrace suspected of leaking: (outstanding bytes: 385680)
    0xffffff802df6fcf6
    0xffffff802dfb654d
    0xffffff802dfaa435
    0xffffff802df9ca95
    0xffffff802e01a974
    last loaded kext at 7107757443: com.apple.driver.AppleGraphicsDevicePolicy 3.7.7 (addr 0xffffff7fb0b33000, size 45056)
    last unloaded kext at 152019224354: com.apple.iokit.IOEthernetAVBController 1.0.3b3 (addr 0xffffff7faf5ae000, size 28672)
    loaded kexts:
    com.avatron.AVExFramebuffer 1.7
    com.avatron.AVExVideo 1.7
    com.globaldelight.driver.BoomDevice 1.1
    com.driver.LogJoystick 2.0
    com.apple.driver.AppleHWSensor 1.9.5d0
    com.apple.filesystems.autofs 3.0
    com.apple.driver.AGPM 100.15.5
    com.apple.driver.ApplePlatformEnabler 2.1.7d1
    com.apple.driver.X86PlatformShim 1.0.0
    com.apple.driver.AudioAUUC 1.70
    com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 4.3.2f6
    com.apple.iokit.IOBluetoothSerialManager 4.3.2f6
    com.apple.driver.AppleMikeyHIDDriver 124
    com.apple.driver.AppleOSXWatchdog 1
    com.apple.driver.AppleMikeyDriver 269.25
    com.apple.driver.AppleHDA 269.25
    com.apple.driver.AppleUpstreamUserClient 3.6.1
    com.apple.driver.AppleMCCSControl 1.2.11
    com.apple.GeForce 10.0.2
    com.apple.driver.AppleLPC 1.7.3
    com.apple.driver.AppleSMCLMU 2.0.7d0
    com.apple.driver.AppleMuxControl 3.8.6
    com.apple.driver.AppleSMCPDRC 1.0.0
    com.apple.driver.AppleThunderboltIP 2.0.2
    com.apple.driver.AppleIntelHD4000Graphics 10.0.2
    com.apple.driver.AppleIntelFramebufferCapri 10.0.2
    com.apple.iokit.IOUserEthernet 1.0.1
    com.apple.Dont_Steal_Mac_OS_X 7.0.0
    com.apple.driver.AppleHWAccess 1
    com.apple.driver.AppleHV 1
    com.apple.driver.AppleUSBTCButtons 240.2
    com.apple.driver.AppleUSBTCKeyboard 240.2
    com.apple.AppleFSCompression.AppleFSCompressionTypeDataless 1.0.0d1
    com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0d1
    com.apple.BootCache 35
    com.apple.driver.XsanFilter 404
    com.apple.iokit.IOAHCIBlockStorage 2.7.0
    com.apple.driver.AppleUSBHub 705.4.2
    com.apple.driver.AppleSDXC 1.6.5
    com.apple.driver.AirPort.Brcm4360 910.26.12
    com.apple.driver.AppleAHCIPort 3.1.0
    com.apple.driver.AppleUSBEHCI 705.4.14
    com.apple.driver.AppleUSBXHCI 710.4.11
    com.apple.driver.AppleSmartBatteryManager 161.0.0
    com.apple.driver.AppleACPIButtons 3.1
    com.apple.driver.AppleRTC 2.0
    com.apple.driver.AppleHPET 1.8
    com.apple.driver.AppleSMBIOS 2.1
    com.apple.driver.AppleACPIEC 3.1
    com.apple.driver.AppleAPIC 1.7
    com.apple.driver.AppleIntelCPUPowerManagementClient 218.0.0
    com.apple.nke.applicationfirewall 161
    com.apple.security.quarantine 3
    com.apple.security.TMSafetyNet 8
    com.apple.driver.AppleIntelCPUPowerManagement 218.0.0
    com.apple.kext.triggers 1.0
    com.apple.iokit.IOBluetoothHostControllerUSBTransport 4.3.2f6
    com.apple.iokit.IOSerialFamily 11
    com.apple.driver.DspFuncLib 269.25
    com.apple.kext.OSvKernDSPLib 1.15
    com.apple.driver.AppleSMBusController 1.0.13d1
    com.apple.driver.AppleHDAController 269.25
    com.apple.iokit.IOHDAFamily 269.25
    com.apple.driver.AppleSMBusPCI 1.0.12d1
    com.apple.nvidia.driver.NVDAGK100Hal 10.0.2
    com.apple.nvidia.driver.NVDAResman 10.0.2
    com.apple.driver.AppleBacklightExpert 1.1.0
    com.apple.driver.AppleGraphicsControl 3.8.6
    com.apple.driver.X86PlatformPlugin 1.0.0
    com.apple.driver.IOPlatformPluginFamily 5.8.1d38
    com.apple.iokit.IONDRVSupport 2.4.1
    com.apple.iokit.IOAcceleratorFamily2 156.6
    com.apple.AppleGraphicsDeviceControl 3.8.6
    com.apple.iokit.IOSurface 97
    com.apple.iokit.IOGraphicsFamily 2.4.1
    com.apple.iokit.IOBluetoothFamily 4.3.2f6
    com.apple.driver.AppleSMC 3.1.9
    com.apple.iokit.IOAudioFamily 203.3
    com.apple.vecLib.kext 1.2.0
    com.apple.iokit.IOSCSIArchitectureModelFamily 3.7.3
    com.apple.iokit.IOUSBUserClient 705.4.0
    com.apple.driver.AppleUSBMultitouch 245.2
    com.apple.iokit.IOUSBHIDDriver 705.4.0
    com.apple.driver.AppleUSBMergeNub 705.4.0
    com.apple.driver.AppleUSBComposite 705.4.9
    com.apple.driver.CoreStorage 471.10.6
    com.apple.driver.AppleThunderboltDPInAdapter 4.0.6
    com.apple.driver.AppleThunderboltDPAdapterFamily 4.0.6
    com.apple.driver.AppleThunderboltPCIDownAdapter 2.0.2
    com.apple.driver.AppleThunderboltNHI 3.1.7
    com.apple.iokit.IOThunderboltFamily 4.2.1
    com.apple.iokit.IO80211Family 710.55
    com.apple.driver.mDNSOffloadUserClient 1.0.1b8
    com.apple.iokit.IONetworkingFamily 3.2
    com.apple.iokit.IOAHCIFamily 2.7.5
    com.apple.iokit.IOUSBFamily 710.4.14
    com.apple.driver.AppleEFINVRAM 2.0
    com.apple.iokit.IOHIDFamily 2.0.0
    com.apple.driver.AppleEFIRuntime 2.0
    com.apple.iokit.IOSMBusFamily 1.1
    com.apple.security.sandbox 300.0
    com.apple.kext.AppleMatch 1.0.0d1
    com.apple.driver.AppleKeyStore 2
    com.apple.driver.AppleMobileFileIntegrity 1.0.5
    com.apple.driver.AppleCredentialManager 1.0
    com.apple.driver.DiskImages 396
    com.apple.iokit.IOStorageFamily 2.0
    com.apple.iokit.IOReportFamily 31
    com.apple.driver.AppleFDEKeyStore 28.30
    com.apple.driver.AppleACPIPlatform 3.1
    com.apple.iokit.IOPCIFamily 2.9
    com.apple.iokit.IOACPIFamily 1.4
    com.apple.kec.Libm 1
    com.apple.kec.pthread 1
    com.apple.kec.corecrypto 1.0
    Model: MacBookPro10,1, BootROM MBP101.00EE.B07, 4 processors, Intel Core i7, 2.7 GHz, 8 GB, SMC 2.3f36
    Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In
    Graphics: NVIDIA GeForce GT 650M, NVIDIA GeForce GT 650M, PCIe, 1024 MB
    Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54333531533642465238432D50422020
    Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54333531533642465238432D50422020
    AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xEF), Broadcom BCM43xx 1.0 (7.15.159.13.12)
    Bluetooth: Version 4.3.2f6 15235, 3 services, 19 devices, 1 incoming serial ports
    Network Service: Wi-Fi, AirPort, en0
    Serial ATA Device: APPLE SSD SM256E, 251 GB
    USB Device: Hub
    USB Device: FaceTime HD Camera (Built-in)
    USB Device: Hub
    USB Device: Hub
    USB Device: Apple Internal Keyboard / Trackpad
    USB Device: BRCM20702 Hub
    USB Device: Bluetooth USB Host Controller
    Thunderbolt Bus: MacBook Pro, Apple Inc., 23.4

    those programs i removed alll but boom but i deaxtivated i found out my memory seems to be high my, frontworker is at 5.47 gb in memory
    here is some details of a etrecheck
    Problem description:
    frontworker
    kernel_task
    EtreCheck version: 2.1.8 (121)
    Report generated 5 Mar 2015 11:26:00 GMT+10
    Download EtreCheck from http://etresoft.com/etrecheck
    Click the [Click for support] links for help with non-Apple products.
    Click the [Click for details] links for more information about that line.
    Hardware Information: ℹ️
        MacBook Pro (Retina, 15-inch, Early 2013) (Technical Specifications)
        MacBook Pro - model: MacBookPro10,1
        1 2.7 GHz Intel Core i7 CPU: 4-core
        8 GB RAM Not upgradeable
            BANK 0/DIMM0
                4 GB DDR3 1600 MHz ok
            BANK 1/DIMM0
                4 GB DDR3 1600 MHz ok
        Bluetooth: Good - Handoff/Airdrop2 supported
        Wireless:  en0: 802.11 a/b/g/n
        Battery Health: Normal - Cycle count 25
    Video Information: ℹ️
        Intel HD Graphics 4000
            Color LCD spdisplays_2880x1800Retina
        NVIDIA GeForce GT 650M - VRAM: 1024 MB
    System Software: ℹ️
        OS X 10.10.2 (14C109) - Time since boot: 0:51:19
    Disk Information: ℹ️
        APPLE SSD SM256E disk0 : (251 GB)
            EFI (disk0s1) <not mounted> : 210 MB
            Recovery HD (disk0s3) <not mounted>  [Recovery]: 650 MB
            Macintosh HD (disk1) / : 249.77 GB (147.49 GB free)
                Encrypted AES-XTS Unlocked
                Core Storage: disk0s2 250.14 GB Online
    USB Information: ℹ️
        Apple Inc. FaceTime HD Camera (Built-in)
        Apple Inc. Apple Internal Keyboard / Trackpad
        Apple Inc. BRCM20702 Hub
            Apple Inc. Bluetooth USB Host Controller
    Thunderbolt Information: ℹ️
        Apple Inc. thunderbolt_bus
    Gatekeeper: ℹ️
        Anywhere
    Kernel Extensions: ℹ️
            /Library/Extensions
        [loaded]    com.avatron.AVExFramebuffer (1.7 - SDK 10.9) [Click for support]
        [loaded]    com.avatron.AVExVideo (1.7 - SDK 10.9) [Click for support]
        [loaded]    com.driver.LogJoystick (2.0 - SDK 10.8) [Click for support]
        [not loaded]    com.logitech.driver.LogiGamingMouseFilter (1 - SDK 10.8) [Click for support]
        [not loaded]    com.razer.common.razerhid (10.85 - SDK 10.9) [Click for support]
        [not loaded]    foo.tap (1.0) [Click for support]
        [not loaded]    foo.tun (1.0) [Click for support]
        [not loaded]    org.virtualbox.kext.VBoxDrv (4.2.12) [Click for support]
        [not loaded]    org.virtualbox.kext.VBoxNetAdp (4.2.12) [Click for support]
        [not loaded]    org.virtualbox.kext.VBoxNetFlt (4.2.12) [Click for support]
        [not loaded]    org.virtualbox.kext.VBoxUSB (4.2.12) [Click for support]
            /System/Library/Extensions
        [loaded]    com.globaldelight.driver.BoomDevice (1.1 - SDK 10.9) [Click for support]
            /Users/[redacted]/Library/Services/ToastIt.service/Contents/MacOS
        [not loaded]    com.roxio.TDIXController (2.0) [Click for support]
    Startup Items: ℹ️
        tap: Path: /Library/StartupItems/tap
        tun: Path: /Library/StartupItems/tun
        VirtualBox: Path: /Library/StartupItems/VirtualBox
        Startup items are obsolete in OS X Yosemite
    Launch Agents: ℹ️
        [loaded]    com.divx.dms.agent.plist [Click for support]
        [loaded]    com.divx.update.agent.plist [Click for support]
        [loaded]    com.oracle.java.Java-Updater.plist [Click for support]
        [running]    com.razer.rzupdater.plist [Click for support]
        [running]    com.razerzone.rzdeviceengine.plist [Click for support]
        [not loaded]    com.teamviewer.teamviewer.plist [Click for support]
        [not loaded]    com.teamviewer.teamviewer_desktop.plist [Click for support]
        [failed]    org.macosforge.xquartz.startx.plist [Click for support]
    Launch Daemons: ℹ️
        [loaded]    com.adobe.fpsaud.plist [Click for support]
        [loaded]    com.github.dnscrypt-osxclient.DNSCryptAfterboot.plist [Click for support]
        [failed]    com.github.dnscrypt-osxclient.DNSCryptConsoleChange.plist [Click for support]
        [loaded]    com.github.dnscrypt-osxclient.DNSCryptControlChange.plist [Click for support]
        [loaded]    com.github.dnscrypt-osxclient.DNSCryptNetworkChange.plist [Click for support]
        [loaded]    com.oracle.java.Helper-Tool.plist [Click for support]
        [loaded]    com.oracle.java.JavaUpdateHelper.plist [Click for support]
        [loaded]    com.teamviewer.Helper.plist [Click for support]
        [not loaded]    com.teamviewer.teamviewer_service.plist [Click for support]
        [loaded]    net.sourceforge.MonolingualHelper.plist [Click for support]
        [loaded]    org.macosforge.xquartz.privileged_startx.plist [Click for support]
    User Launch Agents: ℹ️
        [loaded]    com.adobe.ARM.[...].plist [Click for support]
        [loaded]    com.valvesoftware.steamclean.plist [Click for support]
        [not loaded]    org.virtualbox.vboxwebsrv.plist [Click for support]
    User Login Items: ℹ️
        iTunesHelper    Application  (/Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)
        Flux    Application  (/Applications/Flux.app)
        SpeechSynthesisServer    Application  (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks /SpeechSynthesis.framework/Versions/A/SpeechSynthesisServer.app)
        MacLWSLauncher    UNKNOWN  (missing value)
        Spark Daemon    Application Hidden (/Users/[redacted]/Documents/Software/Spark.app/Contents/SharedSupport/Spark Daemon.app)
        Logitech Gaming Software    UNKNOWN Hidden (missing value)
        OpenDNS Updater    Application Hidden (/Applications/OpenDNS Updater.app)
        AdobeResourceSynchronizer    Application Hidden (/Applications/Adobe Reader.app/Contents/Support/AdobeResourceSynchronizer.app)
    Internet Plug-ins: ℹ️
        JavaAppletPlugin: Version: Java 8 Update 31 Check version
        nplastpass: Version: 2.0.15 [Click for support]
        OVSHelper: Version: 1.1 [Click for support]
        Default Browser: Version: 600 - SDK 10.10
        AdobePDFViewerNPAPI: Version: 11.0.10 - SDK 10.6 [Click for support]
        FlashPlayer-10.6: Version: 16.0.0.305 - SDK 10.6 [Click for support]
        DivX Web Player: Version: 3.2.4.1250 - SDK 10.6 [Click for support]
        Flash Player: Version: 16.0.0.305 - SDK 10.6 [Click for support]
        QuickTime Plugin: Version: 7.7.3
        SharePointBrowserPlugin: Version: 14.0.0 [Click for support]
        AdobePDFViewer: Version: 11.0.10 - SDK 10.6 [Click for support]
        DirectorShockwave: Version: 12.1.3r153 - SDK 10.6 [Click for support]
    Safari Extensions: ℹ️
        AdBlock
        RoboForm
        Adblock Plus
        WOT
        LastPass
    3rd Party Preference Panes: ℹ️
        DNSCrypt  [Click for support]
        Flash Player  [Click for support]
        Java  [Click for support]
    Time Machine: ℹ️
        Time Machine not configured!
    Top Processes by CPU: ℹ️
            69%    JavaApplicationStub
            65%    fontd
            26%    fontworker
            17%    Google Chrome
            10%    WindowServer
    Top Processes by Memory: ℹ️
        799 MB    fontworker
        137 MB    Google Chrome
        120 MB    Finder
        103 MB    mds_stores
        103 MB    JavaApplicationStub
    Virtual Memory Information: ℹ️
        39 MB    Free RAM
        1.87 GB    Active RAM
        1.79 GB    Inactive RAM
        1.96 GB    Wired RAM
        6.57 GB    Page-ins
        17 MB    Page-outs
    Diagnostics Information: ℹ️
        Mar 5, 2015, 10:34:30 AM    /Library/Logs/DiagnosticReports/Kernel_2015-03-05-103430_[redacted].panic [Click for details]
        Mar 5, 2015, 10:34:28 AM    Self test - passed
        Mar 4, 2015, 11:31:34 PM    /Library/Logs/DiagnosticReports/Kernel_2015-03-04-233134_[redacted].panic [Click for details]
        Mar 4, 2015, 10:06:37 PM    /Library/Logs/DiagnosticReports/steam_osx_2015-03-04-220637_[redacted].hang
        Mar 4, 2015, 08:12:45 PM    /Library/Logs/DiagnosticReports/com.apple.WebKit.WebContent_2015-03-04-201245_[ redacted].cpu_resource.diag [Click for details]
        Mar 4, 2015, 02:22:38 PM    /Library/Logs/DiagnosticReports/fontd_2015-03-04-142238_[redacted].cpu_resource .diag [Click for details]
        Mar 4, 2015, 10:30:34 AM    /Library/Logs/DiagnosticReports/fontd_2015-03-04-103034_[redacted].cpu_resource .diag [Click for details]
        Mar 4, 2015, 10:27:47 AM    /Library/Logs/DiagnosticReports/Kernel_2015-03-04-102747_[redacted].panic [Click for details]
        Mar 3, 2015, 02:22:40 PM    /Library/Logs/DiagnosticReports/fontd_2015-03-03-142240_[redacted].cpu_resource .diag [Click for details]
        Feb 27, 2015, 08:19:00 PM    /Library/Logs/DiagnosticReports/Kernel_2015-02-27-201900_[redacted].panic [Click for details]
        Feb 14, 2015, 07:59:51 PM    /Library/Logs/DiagnosticReports/Kernel_2015-02-14-195951_[redacted].panic [Click for details]

  • Memory Leaks   Unresponsive Mouse

    2009 8 core Mac Pro w/ 24 GB of RAM, ATI Radeon 4870, and a SeriTek PCIe eSATA card (card only has drives connected when running a manual drive clone).  When running Toast 10 or Parallels 9, my RAM will fill up (I use a program called Menu Meters to monitor stuff).  This machine worked just fine under OS 10.9 and earlier - no issues like this at all.  ClamXAV will also completely fill the RAM up (the meter will be full green, instead of part green, then mostly grey when Toast or Parallels fills it up).  I have to use Terminal to purge it so that the machine is usable.
    The other thing that happens is that sometimes when the computer wakes up or I am in the middle of doing something, the mouse will still move, but the dock will not pop open and the left button the mouse doesn't respond.  The right button will open the right click menu, but will not respond normally at all.  I have tried a different Magic Mouse, but the problem is the same.
    I thought that it may be a problem with the factory RAM and the Kingston RAM not playing nicely together.  So I ran it with just the factory 8 GB and then ran it with the Kingston 16 GB - the problem persists no matter which RAM is installed.  All of the RAM also passes the memory tests in Rember and TechTool.
    So, I need to find out if someone thinks that maybe the bluetooth module may be going bad causing the mouse issues.  I also need to find out what is causing the memory leaks.  I followed the steps that someone gave on this site to boot into safe mode, repair permissions, reset PRAM, then reset SMC (or the other way around - I did it like they said to).  It did nothing to fix the problem.
    I need some guidance here.  As I stated early on, the machine worked perfectly with OS 10.9.  I have WAY too much software that I use, so doing a completely fresh install is out of the question - I don't have time to reload everything.  This problem is annoying and I know that I am not the only one having these issues.  Any input will be greatly appreciated.  Thanks in advance.

    Here is the EtreCheck report:
    Problem description:
    Memory leaks when using Toast 10 or Parallels 9.  Mouse also become unresponsive (it will move, but left button does not work and dock will not pop open - mouse problem happens independent of the RAM being filled up - different mouse was tried with same result).
    EtreCheck version: 2.1.5 (108)
    Report generated January 9, 2015 at 9:20:59 PM MST
    Click the [Support] links for help with non-Apple products.
    Click the [Details] links for more information about that line.
    Click the [Adware] links for help removing adware.
    Hardware Information: ℹ️
        Mac Pro (Early 2009) (Verified)
        Mac Pro - model: MacPro4,1
        2 2.26 GHz Quad-Core Intel Xeon CPU: 8-core
        24 GB RAM Upgradeable
            DIMM 1
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 2
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 3
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 4
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 5
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 6
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 7
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 8
                2 GB DDR3 ECC 1066 MHz ok
        Bluetooth: Old - Handoff/Airdrop2 not supported
        Wireless:  en2: 802.11 a/b/g/n
    Video Information: ℹ️
        ATI Radeon HD 4870 - VRAM: 512 MB
            AL2216W 1680 x 1050 @ 60 Hz
    System Software: ℹ️
        OS X 10.10.1 (14B25) - Uptime: 2:4:35
    Disk Information: ℹ️
        HL-DT-ST BD-RE  WH12LS39 
        HL-DT-ST DVDRAM GH24NS90 
        SAMSUNG HD103SJ disk1 : (1 TB)
            EFI (disk1s1) <not mounted> : 210 MB
            OS 10.10.1 (disk1s2) / : 999.35 GB (410.30 GB free)
            Recovery HD (disk1s3) <not mounted>  [Recovery]: 650 MB
        SAMSUNG HD103SJ disk2 : (1 TB)
            EFI (disk2s1) <not mounted> : 210 MB
            Extra Storage (disk2s2) /Volumes/Extra Storage : 999.86 GB (554.20 GB free)
        SAMSUNG HD103SJ disk3 : (1 TB)
            EFI (disk3s1) <not mounted> : 210 MB
            Extra Storage 2 - Scratch (disk3s2) /Volumes/Extra Storage 2 - Scratch : 999.86 GB (39.54 GB free)
        WDC WD5001AALS-00LWTA0 disk0 : (500.11 GB)
            EFI (disk0s1) <not mounted> : 210 MB
            BOOTCAMP (disk0s2) /Volumes/BOOTCAMP : 499.90 GB (275.71 GB free)
    USB Information: ℹ️
        Shuttle Technology Inc. E-USB Bridge
        Sony C6606
        Apple, Inc. Keyboard Hub
            Apple Inc. Apple Keyboard
        Apple Inc. BRCM2046 Hub
            Apple Inc. Bluetooth USB Host Controller
    Firewire Information: ℹ️
        Apple Computer, Inc. iSight 200mbit - 400mbit max
    Gatekeeper: ℹ️
        Anywhere
    Kernel Extensions: ℹ️
            /Applications/Hotspot Shield.app
        [not loaded]    com.anchorfree.tun (1.0) [Support]
            /Applications/Parallels Desktop.app
        [not loaded]    com.parallels.kext.hidhook (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.hypervisor (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.netbridge (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.usbconnect (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.vnic (9.0 24251.1052177) [Support]
            /Applications/TechTool Deluxe.app
        [not loaded]    com.micromat.iokit.ttpatadriver (5.0.0) [Support]
        [not loaded]    com.micromat.iokit.ttpfwdriver (5.0.0) [Support]
            /Applications/TechTool Protogo/Protogo Applications/TechTool Pro 7.app
        [not loaded]    com.micromat.driver.spdKernel (1 - SDK 10.8) [Support]
        [not loaded]    com.micromat.driver.spdKernel-10-8 (1 - SDK 10.8) [Support]
            /Applications/Temperature Monitor 4.94/Temperature Monitor 4.94.app
        [not loaded]    com.bresink.driver.BRESINKx86Monitoring (8.0) [Support]
            /Applications/Toast 11 Titanium/Spin Doctor.app
        [not loaded]    com.hzsystems.terminus.driver (4) [Support]
            /Applications/Toast 7 Titanium/Toast Titanium.app
        [not loaded]    com.roxio.TDIXController (1.6) [Support]
            /Library/Extensions
        [loaded]    at.obdev.nke.LittleSnitch (4216 - SDK 10.8) [Support]
            /System/Library/Extensions
        [loaded]    com.SiliconImage.driver.Si3132 (1.2.5) [Support]
        [not loaded]    com.devguru.driver.SamsungComposite (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.microsoft.driver.MicrosoftMouse (8.2) [Support]
        [not loaded]    com.roxio.BluRaySupport (1.1.6) [Support]
            /System/Library/Extensions/MicrosoftMouse.kext/Contents/PlugIns
        [not loaded]    com.microsoft.driver.MicrosoftMouseBluetooth (8.2) [Support]
        [not loaded]    com.microsoft.driver.MicrosoftMouseUSB (8.2) [Support]
            /System/Library/Extensions/ssuddrv.kext/Contents/PlugIns
        [not loaded]    com.devguru.driver.SamsungACMControl (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.devguru.driver.SamsungACMData (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.devguru.driver.SamsungMTP (1.2.63 - SDK 10.5) [Support]
        [not loaded]    com.devguru.driver.SamsungSerial (1.2.63 - SDK 10.6) [Support]
    Startup Items: ℹ️
        HP IO: Path: /Library/StartupItems/HP IO
        SiCoreService: Path: /Library/StartupItems/SiCoreService
        Startup items are obsolete in OS X Yosemite
    Launch Agents: ℹ️
        [running]    at.obdev.LittleSnitchUIAgent.plist [Support]
        [loaded]    com.coupons.coupond.plist [Support]
        [running]    com.micromat.TechToolProAgent.plist [Support]
        [loaded]    com.oracle.java.Java-Updater.plist [Support]
        [invalid?]    com.parallels.mobile.prl_deskctl_agent.launchagent.plist [Support]
        [invalid?]    com.parallels.mobile.startgui.launchagent.plist [Support]
        [not loaded]    com.teamviewer.teamviewer.plist [Support]
        [not loaded]    com.teamviewer.teamviewer_desktop.plist [Support]
    Launch Daemons: ℹ️
        [running]    at.obdev.littlesnitchd.plist [Support]
        [loaded]    com.adobe.fpsaud.plist [Support]
        [loaded]    com.bombich.ccc.plist [Support]
        [loaded]    com.hp.lightscribe.plist [Support]
        [running]    com.micromat.TechToolProDaemon.plist [Support]
        [loaded]    com.microsoft.office.licensing.helper.plist [Support]
        [loaded]    com.oracle.java.Helper-Tool.plist [Support]
        [invalid?]    com.parallels.mobile.dispatcher.launchdaemon.plist [Support]
        [failed]    com.parallels.mobile.kextloader.launchdaemon.plist [Support] [Details]
        [not loaded]    com.teamviewer.teamviewer_service.plist [Support]
    User Launch Agents: ℹ️
        [loaded]    com.facebook.videochat.[redacted].plist [Support]
        [loaded]    com.google.keystone.agent.plist [Support]
        [running]    com.nchsoftware.expressinvoice.agent.plist [Support]
        [loaded]    uk.co.markallan.clamxav.clamscan.plist [Support]
        [loaded]    uk.co.markallan.clamxav.freshclam.plist [Support]
    User Login Items: ℹ️
        iTunesHelper    Application (/Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)
        SMARTReporter    Application (/Applications/SMARTReporter/SMARTReporter.app)
        BetterSnapTool    Application (/Applications/BetterSnapTool.app)
        smcFanControl    Application (/Applications/smcfancontrol_2_2_2/smcFanControl.app)
        Android File Transfer Agent    Application (/Users/[redacted]/Library/Application Support/Google/Android File Transfer/Android File Transfer Agent.app)
    Internet Plug-ins: ℹ️
        JavaAppletPlugin: Version: Java 8 Update 25 Check version
        FlashPlayer-10.6: Version: 16.0.0.235 - SDK 10.6 [Support]
        Default Browser: Version: 600 - SDK 10.10
        AdobePDFViewerNPAPI: Version: 11.0.06 - SDK 10.6 [Support]
        CouponPrinter-FireFox_v2: Version: 5.0.3 - SDK 10.6 [Support]
        AdobePDFViewer: Version: 11.0.06 - SDK 10.6 [Support]
        Flash Player: Version: 16.0.0.235 - SDK 10.6 [Support]
        QuickTime Plugin: Version: 7.7.3
        SharePointBrowserPlugin: Version: 14.4.6 - SDK 10.6 [Support]
        iPhotoPhotocast: Version: 7.0 - SDK 10.8
    Safari Extensions: ℹ️
        AdBlock [Installed]
        F.B. Purity - Cleans Up Facebook [Installed]
        OpenIE [Installed]
    3rd Party Preference Panes: ℹ️
        Déjà Vu  [Support]
        Flash Player  [Support]
        FUSE for OS X (OSXFUSE)  [Support]
        Java  [Support]
        MacFUSE  [Support]
        MenuMeters  [Support]
        Microsoft Mouse  [Support]
        MouseLocator  [Support]
        NTFS-3G  [Support]
        TechTool Protection  [Support]
    Time Machine: ℹ️
        Time Machine not configured!
    Top Processes by CPU: ℹ️
            48%    plugin-container
            39%    fontd
             6%    firefox
             5%    WindowServer
             4%    bluetoothaudiod
    Top Processes by Memory: ℹ️
        928 MB    firefox
        412 MB    plugin-container
        258 MB    mds_stores
        180 MB    iTunes
        129 MB    Finder
    Virtual Memory Information: ℹ️
        19.38 GB    Free RAM
        3.11 GB    Active RAM
        1.88 GB    Inactive RAM
        1.38 GB    Wired RAM
        2.40 GB    Page-ins
        0 B    Page-outs
    Diagnostics Information: ℹ️
        Jan 9, 2015, 07:16:57 PM    Self test - passed
        Jan 8, 2015, 11:37:48 AM    /Library/Logs/DiagnosticReports/ClamXav_2015-01-08-113748_[redacted].cpu_resour ce.diag [Details]
        Jan 8, 2015, 11:21:46 AM    /Users/[redacted]/Library/Logs/DiagnosticReports/Preview_2015-01-08-112146_[red acted].crash

  • Pro*c multithreaded application has memory leak

    Hi there,
    I posted this message a week ago in OCI section, nobody answer me.
    I am really curious if my application has a bug or the pro*c has a bug.
    Anyone can compile the sample code and test it easily.
    I made multithreaded application which queries dynamic SQL, it works.
    But the memory leaks when i query the SQL statement.
    The more memory leaks, the more i query the SQL statement, even same SQL
    statement.
    I check it with top, shell command.
    My machine is SUN E450, Solaris 8. Oracle 9.2.0.1
    Compiler : gcc (GCC) 3.2.2
    I changed source code which is from
    $(ORACLE_HOME)/precomp/demo/proc/sample10.pc
    the sample10 doesn't need to be multithreaded. But i think it has to work
    correctly if i changed it to multithreaded application.
    the make file and source code will be placed below.
    I have to figure out the problem.
    Please help
    Thanks in advance,
    the make file is below
    HOME = /user/jkku
    ORA = $(ORACLE_HOME)
    CC = gcc
    PROC = proc
    LC_INCL = -I$(HOME)/work/dbmss/libs/include
    lc_incl = include=$(HOME)/work/dbmss/libs/include
    SYS_INCL =
    sys_incl =
    ORA_INCL = -I. \
    -I$(ORA)/precomp/public \
    -I$(ORA)/rdbms/public \
    -I$(ORA)/rdbms/demo \
    -I$(ORA)/rdbms/pbsql/public \
    -I$(ORA)/network/public \
    -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD
    INCLUDES = $(LC_INCL) $(SYS_INCL) $(ORA_INCL)
    includes = $(lc_incl) $(sys_incl)
    LC_LIBS =
    SYS_LIBS = -lpthread -lsocket -lnsl -lrt
    ORA_LIBS = -L$(ORA)/lib/ -lclntsh
    LIBS = $(LC_LIBS) $(SYS_LIBS) $(ORA_LIBS)
    # Define C Compiler flags
    CFLAGS += -D_Solaris64_ -m64
    CFLAGS += -g -D_REENTRANT
    # Define pro*c Compiler flags
    PROCFLAGS += THREADS=YES
    PROCFLAGS += CPOOL=YES
    # Our object files
    PRECOMPS = sample10.c
    OBJS = sample10.o
    .SUFFIXES: .o .c .pc
    .c.o:
    $(CC) -c $(CFLAGS) $(INCLUDES) $*.c
    .pc.c:
    $(PROC) $(PROCFLAGS) $(includes) $*.pc $*.c
    all: sample10
    sample10: $(PRECOMPS) $(OBJS)
    $(CC) $(CFLAGS) -o sample10 $(OBJS) $(LIBS)
    clean:
    rm -rf *.o sample10 sample10.c
    the source code is below which i changed the oracle sample10.pc to
    multithreaded application.
    Sample Program 10: Dynamic SQL Method 4
    This program connects you to ORACLE using your username and
    password, then prompts you for a SQL statement. You can enter
    any legal SQL statement. Use regular SQL syntax, not embedded SQL.
    Your statement will be processed. If it is a query, the rows
    fetched are displayed.
    You can enter multi-line statements. The limit is 1023 characters.
    This sample program only processes up to MAX_ITEMS bind variables and
    MAX_ITEMS select-list items. MAX_ITEMS is #defined to be 40.
    #include <stdio.h>
    #include <string.h>
    #include <setjmp.h>
    #include <sqlda.h>
    #include <stdlib.h>
    #include <sqlcpr.h>
    /* Maximum number of select-list items or bind variables. */
    #define MAX_ITEMS 40
    /* Maximum lengths of the names of the
    select-list items or indicator variables. */
    #define MAX_VNAME_LEN 30
    #define MAX_INAME_LEN 30
    #ifndef NULL
    #define NULL 0
    #endif
    /* Prototypes */
    #if defined(__STDC__)
    void sql_error(void);
    int oracle_connect(void);
    int alloc_descriptors(int, int, int);
    int get_dyn_statement(void);
    void set_bind_variables(void);
    void process_select_list(void);
    void help(void);
    #else
    void sql_error(/*_ void _*/);
    int oracle_connect(/*_ void _*/);
    int alloc_descriptors(/*_ int, int, int _*/);
    int get_dyn_statement(/* void _*/);
    void set_bind_variables(/*_ void -*/);
    void process_select_list(/*_ void _*/);
    void help(/*_ void _*/);
    #endif
    char *dml_commands[] = {"SELECT", "select", "INSERT", "insert",
    "UPDATE", "update", "DELETE", "delete"};
    EXEC SQL INCLUDE sqlda;
    EXEC SQL INCLUDE sqlca;
    EXEC SQL BEGIN DECLARE SECTION;
    char dyn_statement[1024];
    EXEC SQL VAR dyn_statement IS STRING(1024);
    EXEC SQL END DECLARE SECTION;
    EXEC ORACLE OPTION (ORACA=YES);
    EXEC ORACLE OPTION (RELEASE_CURSOR=YES);
    SQLDA *bind_dp;
    SQLDA *select_dp;
    /* Define a buffer to hold longjmp state info. */
    jmp_buf jmp_continue;
    char *db_uid="dbmuser/dbmuser@dbmdb";
    sql_context ctx;
    int err_sql;
    enum{
    SQL_SUCC=0,
    SQL_ERR,
    SQL_NOTFOUND,
    SQL_UNIQUE,
    SQL_DISCONNECT,
    SQL_NOTNULL
    int main()
    int i;
    EXEC SQL ENABLE THREADS;
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
    /* Connect to the database. */
    if (connect_database() < 0)
    exit(1);
    EXEC SQL CONTEXT USE :ctx;
    /* Process SQL statements. */
    for (;;)
    /* Allocate memory for the select and bind descriptors. */
    if (alloc_descriptors(MAX_ITEMS, MAX_VNAME_LEN, NAME_LEN) != 0)
    exit(1);
    (void) setjmp(jmp_continue);
    /* Get the statement. Break on "exit". */
    if (get_dyn_statement() != 0)
    break;
    EXEC SQL PREPARE S FROM :dyn_statement;
    EXEC SQL DECLARE C CURSOR FOR S;
    /* Set the bind variables for any placeholders in the
    SQL statement. */
    set_bind_variables();
    /* Open the cursor and execute the statement.
    * If the statement is not a query (SELECT), the
    * statement processing is completed after the
    * OPEN.
    EXEC SQL OPEN C USING DESCRIPTOR bind_dp;
    /* Call the function that processes the select-list.
    * If the statement is not a query, this function
    * just returns, doing nothing.
    process_select_list();
    /* Tell user how many rows processed. */
    for (i = 0; i < 8; i++)
    if (strncmp(dyn_statement, dml_commands, 6) == 0)
    printf("\n\n%d row%c processed.\n", sqlca.sqlerrd[2], sqlca.sqlerrd[2] == 1 ? '\0' : 's');
    break;
    /* Close the cursor. */
    EXEC SQL CLOSE C;
    /* When done, free the memory allocated for pointers in the bind and
    select descriptors. */
    for (i = 0; i < MAX_ITEMS; i++)
    if (bind_dp->V != (char *) 0)
    free(bind_dp->V);
    free(bind_dp->I); /* MAX_ITEMS were allocated. */
    if (select_dp->V != (char *) 0)
    free(select_dp->V);
    free(select_dp->I); /* MAX_ITEMS were allocated. */
    /* Free space used by the descriptors themselves. */
    SQLSQLDAFree(ctx, bind_dp);
    SQLSQLDAFree(ctx, select_dp);
    } /* end of for(;;) statement-processing loop */
    disconnect_database();
    EXEC SQL WHENEVER SQLERROR CONTINUE;
    EXEC SQL COMMIT WORK RELEASE;
    puts("\nHave a good day!\n");
    return;
    * Allocate the BIND and SELECT descriptors using sqlald().
    * Also allocate the pointers to indicator variables
    * in each descriptor. The pointers to the actual bind
    * variables and the select-list items are realloc'ed in
    * the set_bind_variables() or process_select_list()
    * routines. This routine allocates 1 byte for select_dp->V
    * and bind_dp->V, so the realloc will work correctly.
    alloc_descriptors(size, max_vname_len, max_iname_len)
    int size;
    int max_vname_len;
    int max_iname_len;
    int i;
    * The first sqlald parameter determines the maximum number of
    * array elements in each variable in the descriptor. In
    * other words, it determines the maximum number of bind
    * variables or select-list items in the SQL statement.
    * The second parameter determines the maximum length of
    * strings used to hold the names of select-list items
    * or placeholders. The maximum length of column
    * names in ORACLE is 30, but you can allocate more or less
    * as needed.
    * The third parameter determines the maximum length of
    * strings used to hold the names of any indicator
    * variables. To follow ORACLE standards, the maximum
    * length of these should be 30. But, you can allocate
    * more or less as needed.
    if ((bind_dp =
    SQLSQLDAAlloc(ctx, size, max_vname_len, max_iname_len)) ==
    (SQLDA *) 0)
    fprintf(stderr,
    "Cannot allocate memory for bind descriptor.");
    return -1; /* Have to exit in this case. */
    if ((select_dp =
    SQLSQLDAAlloc(ctx, size, max_vname_len, max_iname_len)) == (SQLDA *)
    0)
    fprintf(stderr,
    "Cannot allocate memory for select descriptor.");
    return -1;
    select_dp->N = MAX_ITEMS;
    /* Allocate the pointers to the indicator variables, and the
    actual data. */
    for (i = 0; i < MAX_ITEMS; i++) {
    bind_dp->I = (short *) malloc(sizeof (short));
    select_dp->I = (short *) malloc(sizeof(short));
    bind_dp->V = (char *) malloc(1);
    select_dp->V = (char *) malloc(1);
    return 0;
    int get_dyn_statement()
    char *cp, linebuf[256];
    int iter, plsql;
    for (plsql = 0, iter = 1; ;)
    if (iter == 1)
    printf("\nSQL> ");
    dyn_statement[0] = '\0';
    fgets(linebuf, sizeof linebuf, stdin);
    cp = strrchr(linebuf, '\n');
    if (cp && cp != linebuf)
    *cp = ' ';
    else if (cp == linebuf)
    continue;
    if ((strncmp(linebuf, "EXIT", 4) == 0) ||
    (strncmp(linebuf, "exit", 4) == 0))
    return -1;
    else if (linebuf[0] == '?' ||
    (strncmp(linebuf, "HELP", 4) == 0) ||
    (strncmp(linebuf, "help", 4) == 0))
    help();
    iter = 1;
    continue;
    if (strstr(linebuf, "BEGIN") ||
    (strstr(linebuf, "begin")))
    plsql = 1;
    strcat(dyn_statement, linebuf);
    if ((plsql && (cp = strrchr(dyn_statement, '/'))) ||
    (!plsql && (cp = strrchr(dyn_statement, ';'))))
    *cp = '\0';
    break;
    else
    iter++;
    printf("%3d ", iter);
    return 0;
    void set_bind_variables()
    int i, n;
    char bind_var[64];
    /* Describe any bind variables (input host variables) */
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    bind_dp->N = MAX_ITEMS; /* Initialize count of array elements. */
    EXEC SQL DESCRIBE BIND VARIABLES FOR S INTO bind_dp;
    /* If F is negative, there were more bind variables
    than originally allocated by sqlald(). */
    if (bind_dp->F < 0)
    printf ("\nToo many bind variables (%d), maximum is %d\n.",
    -bind_dp->F, MAX_ITEMS);
    return;
    /* Set the maximum number of array elements in the
    descriptor to the number found. */
    bind_dp->N = bind_dp->F;
    /* Get the value of each bind variable as a
    * character string.
    * C contains the length of the bind variable
    * name used in the SQL statement.
    * S contains the actual name of the bind variable
    * used in the SQL statement.
    * L will contain the length of the data value
    * entered.
    * V will contain the address of the data value
    * entered.
    * T is always set to 1 because in this sample program
    * data values for all bind variables are entered
    * as character strings.
    * ORACLE converts to the table value from CHAR.
    * I will point to the indicator value, which is
    * set to -1 when the bind variable value is "null".
    for (i = 0; i < bind_dp->F; i++)
    printf ("\nEnter value for bind variable %.*s: ",
    (int)bind_dp->C, bind_dp->S);
    fgets(bind_var, sizeof bind_var, stdin);
    /* Get length and remove the new line character. */
    n = strlen(bind_var) - 1;
    /* Set it in the descriptor. */
    bind_dp->L = n;
    /* (re-)allocate the buffer for the value.
    sqlald() reserves a pointer location for
    V but does not allocate the full space for
    the pointer. */
    bind_dp->V = (char *) realloc(bind_dp->V, (bind_dp->L + 1));
    /* And copy it in. */
    strncpy(bind_dp->V, bind_var, n);
    /* Set the indicator variable's value. */
    if ((strncmp(bind_dp->V, "NULL", 4) == 0) ||
    (strncmp(bind_dp->V, "null", 4) == 0))
    *bind_dp->I = -1;
    else
    *bind_dp->I = 0;
    /* Set the bind datatype to 1 for CHAR. */
    bind_dp->T = 1;
    return;
    void process_select_list()
    int i, null_ok, precision, scale;
    if ((strncmp(dyn_statement, "SELECT", 6) != 0) &&
    (strncmp(dyn_statement, "select", 6) != 0))
    select_dp->F = 0;
    return;
    /* If the SQL statement is a SELECT, describe the
    select-list items. The DESCRIBE function returns
    their names, datatypes, lengths (including precision
    and scale), and NULL/NOT NULL statuses. */
    select_dp->N = MAX_ITEMS;
    EXEC SQL DESCRIBE SELECT LIST FOR S INTO select_dp;
    /* If F is negative, there were more select-list
    items than originally allocated by sqlald(). */
    if (select_dp->F < 0)
    printf ("\nToo many select-list items (%d), maximum is %d\n",
    -(select_dp->F), MAX_ITEMS);
    return;
    /* Set the maximum number of array elements in the
    descriptor to the number found. */
    select_dp->N = select_dp->F;
    /* Allocate storage for each select-list item.
    sqlprc() is used to extract precision and scale
    from the length (select_dp->L).
    sqlnul() is used to reset the high-order bit of
    the datatype and to check whether the column
    is NOT NULL.
    CHAR datatypes have length, but zero precision and
    scale. The length is defined at CREATE time.
    NUMBER datatypes have precision and scale only if
    defined at CREATE time. If the column
    definition was just NUMBER, the precision
    and scale are zero, and you must allocate
    the required maximum length.
    DATE datatypes return a length of 7 if the default
    format is used. This should be increased to
    9 to store the actual date character string.
    If you use the TO_CHAR function, the maximum
    length could be 75, but will probably be less
    (you can see the effects of this in SQL*Plus).
    ROWID datatype always returns a fixed length of 18 if
    coerced to CHAR.
    LONG and
    LONG RAW datatypes return a length of 0 (zero),
    so you need to set a maximum. In this example,
    it is 240 characters.
    printf ("\n");
    for (i = 0; i < select_dp->F; i++)
    char title[MAX_VNAME_LEN];
    /* Turn off high-order bit of datatype (in this example,
    it does not matter if the column is NOT NULL). */
    sqlnul ((unsigned short *)&(select_dp->T), (unsigned short
    *)&(select_dp->T), &null_ok);
    switch (select_dp->T)
    case 1 : /* CHAR datatype: no change in length
    needed, except possibly for TO_CHAR
    conversions (not handled here). */
    break;
    case 2 : /* NUMBER datatype: use sqlprc() to
    extract precision and scale. */
    sqlprc ((unsigned int *)&(select_dp->L), &precision,
    &scale);
    /* Allow for maximum size of NUMBER. */
    if (precision == 0) precision = 40;
    /* Also allow for decimal point and
    possible sign. */
    /* convert NUMBER datatype to FLOAT if scale > 0,
    INT otherwise. */
    if (scale > 0)
    select_dp->L = sizeof(float);
    else
    select_dp->L = sizeof(int);
    break;
    case 8 : /* LONG datatype */
    select_dp->L = 240;
    break;
    case 11 : /* ROWID datatype */
    case 104 : /* Universal ROWID datatype */
    select_dp->L = 18;
    break;
    case 12 : /* DATE datatype */
    select_dp->L = 9;
    break;
    case 23 : /* RAW datatype */
    break;
    case 24 : /* LONG RAW datatype */
    select_dp->L = 240;
    break;
    /* Allocate space for the select-list data values.
    sqlald() reserves a pointer location for
    V but does not allocate the full space for
    the pointer. */
    if (select_dp->T != 2)
    select_dp->V = (char *) realloc(select_dp->V,
    select_dp->L + 1);
    else
    select_dp->V = (char *) realloc(select_dp->V,
    select_dp->L);
    /* Print column headings, right-justifying number
    column headings. */
    /* Copy to temporary buffer in case name is null-terminated */
    memset(title, ' ', MAX_VNAME_LEN);
    strncpy(title, select_dp->S, select_dp->C);
    if (select_dp->T == 2)
    if (scale > 0)
    printf ("%.*s ", select_dp->L+3, title);
    else
    printf ("%.*s ", select_dp->L, title);
    else
    printf("%-.*s ", select_dp->L, title);
    /* Coerce ALL datatypes except for LONG RAW and NUMBER to
    character. */
    if (select_dp->T != 24 && select_dp->T != 2)
    select_dp->T = 1;
    /* Coerce the datatypes of NUMBERs to float or int depending on
    the scale. */
    if (select_dp->T == 2)
    if (scale > 0)
    select_dp->T = 4; /* float */
    else
    select_dp->T = 3; /* int */
    printf ("\n\n");
    /* FETCH each row selected and print the column values. */
    EXEC SQL WHENEVER NOT FOUND GOTO end_select_loop;
    for (;;)
    EXEC SQL FETCH C USING DESCRIPTOR select_dp;
    /* Since each variable returned has been coerced to a
    character string, int, or float very little processing
    is required here. This routine just prints out the
    values on the terminal. */
    for (i = 0; i < select_dp->F; i++)
    if (*select_dp->I < 0)
    if (select_dp->T == 4)
    printf ("%-*c ",(int)select_dp->L+3, ' ');
    else
    printf ("%-*c ",(int)select_dp->L, ' ');
    else
    if (select_dp->T == 3) /* int datatype */
    printf ("%*d ", (int)select_dp->L,
    *(int *)select_dp->V);
    else if (select_dp->T == 4) /* float datatype */
    printf ("%*.2f ", (int)select_dp->L,
    *(float *)select_dp->V);
    else /* character string */
    printf ("%-*.*s ", (int)select_dp->L,
    (int)select_dp->L, select_dp->V);
    printf ("\n");
    end_select_loop:
    return;
    void help()
    puts("\n\nEnter a SQL statement or a PL/SQL block at the SQL> prompt.");
    puts("Statements can be continued over several lines, except");
    puts("within string literals.");
    puts("Terminate a SQL statement with a semicolon.");
    puts("Terminate a PL/SQL block (which can contain embedded
    semicolons)");
    puts("with a slash (/).");
    puts("Typing \"exit\" (no semicolon needed) exits the program.");
    puts("You typed \"?\" or \"help\" to get this message.\n\n");
    int connect_database()
    err_sql = SQL_SUCC;
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
    EXEC SQL CONTEXT ALLOCATE :ctx;
    EXEC SQL CONTEXT USE :ctx;
    EXEC SQL CONNECT :db_uid;
    if(err_sql != SQL_SUCC){
    printf("err => connect database(ctx:%ld, uid:%s) failed!\n", ctx, db_uid);
    return -1;
    return 1;
    int disconnect_database()
    err_sql = SQL_SUCC;
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
    EXEC SQL CONTEXT USE :ctx;
    EXEC SQL COMMIT WORK RELEASE;
    EXEC SQL CONTEXT FREE:ctx;
    return 1;
    void sql_error()
    printf("err => %.*s", sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc);
    printf("in \"%.*s...\'\n", oraca.orastxt.orastxtl, oraca.orastxt.orastxtc);
    printf("on line %d of %.*s.\n\n", oraca.oraslnr, oraca.orasfnm.orasfnml,
    oraca.orasfnm.orasfnmc);
    switch(sqlca.sqlcode) {
    case -1: /* unique constraint violated */
    err_sql = SQL_UNIQUE;
    break;
    case -1012: /* not logged on */
    case -1089:
    case -3133:
    case -1041:
    case -3114:
    case -3113:
    /* �6�Ŭ�� shutdown�ǰų� �α��� ���°� �ƴҶ� ��b�� �õ� */
    /* immediate shutdown in progress - no operations are permitted */
    /* end-of-file on communication channel */
    /* internal error. hostdef extension doesn't exist */
    err_sql = SQL_DISCONNECT;
    break;
    case -1400:
    err_sql = SQL_NOTNULL;
    break;
    default:
    err_sql = SQL_ERR;
    break;
    EXEC SQL CONTEXT USE :ctx;
    EXEC SQL WHENEVER SQLERROR CONTINUE;
    EXEC SQL ROLLBACK WORK;
    void sql_not_found()
    err_sql = SQL_NOTFOUND;

    Hi Jane,
    What version of Berkeley DB XML are you using?
    What is your operating system and your hardware platform?
    For how long have been the application running?
    What is your current container size?
    What's set for EnvironmentConfig.setThreaded?
    Do you know if containers have previously not been closed correctly?
    Can you please post the entire error output?
    What's the JDK version, 1.4 or 1.5?
    Thanks,
    Bogdan

  • HTTPService + XML Load + Memory Leak

    Hi all....
    I have noticed a memory leak in my application. This leak was
    not apparent when the application was completed some months back
    which is what left me a little confused as all I have done since
    was upgrade to Flex 3 and possibly updated / changed my Flash
    player.
    I think I have found the cause to this problem (below) but am
    not 100% sure that it is the "actual" problem or any reasons to
    back my thoughts up, so have listed what I have checked / tried
    along the way (maybe I have missed something)....
    My Discovery Process:
    I started profiling my application but did not find anything
    out of the ordinary. I did a code walk-through double checking I
    had cleaned up after myself, removing and even nulling all items
    etc but still to now success - the leak is still there.
    I have profiled the app in the profiler for reasonably long
    periods of time.
    All the classes etc being used within the app are consistent
    in size and instance amount and there is no sign of any apparent
    leak.
    I am using a HTTPService that is loading XML data which I am
    refreshing every 5 seconds. On this 5 second data refresh some
    class instances are incremented but are restored to the expected
    amount after a GC has occurred. The GC seems to take longer, the
    longer the app is running, therefore more and more instances are
    being added to the app, but when the GC eventually runs it "seems"
    to clear these instances to the expected amount.
    After scratching my head for a while I decided to make a copy
    of my application, rip everything out, and focus in my data load,
    where I found a problem!
    I have now just a HTTPService that loads an XML file every 5
    seconds, and this is all I currently have in the app (as I ripped
    the rest of the code out), e.g:
    Code:
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    ....... creationComplete="initApp()" >
    <mx:HTTPService
    id="httpServiceResults"
    url="
    http://myIP:myPort/myRoot/myXML.cfm"
    resultFormat="e4x"
    result="httpResultHandler(event)" />
    <script....... >
    private var timerPulse:Timer;
    private function initApp():void
    httpServiceResults.send();
    timerPulse = new Timer(5000, 0);
    private function httpResultHandler(event:ResultEvent):void
    timerPulse.start();
    timerPulse.addEventListener(TimerEvent.TIMER, timerRefresh);
    public function timerRefresh(eventObj:TimerEvent):void
    timerPulse.stop();
    timerPulse.removeEventListener(TimerEvent.TIMER,
    timerRefresh);
    timerPulse.reset();
    httpServiceResults.send();
    </script>
    </mx:Application>
    This is pretty much the code I am currently using and it
    leaks.
    I ran and monitored this in both the profiler and the
    activity / task manager, and after running the app for 1800 seconds
    (30 min) in the profiler, the memory size grew from 50mg to 165mg
    just sending the HTTPService.
    I tried loading the service in multiple ways including in AS
    rather than MXML creating new instances of it each time, resetting
    it, nulling it etc... but nothing prevented this memory increase.
    I then tried to load the XML using different methods such as
    using the URLRequest and URLLoader which again caused a memory
    leak.
    What still confuses me is that this leak did not exist in the
    previous version and not a great deal has changed since then apart
    from upgrading to Flex 3 and possibly upgrading my Flash payer
    (which I believe is a possible cause)
    After looking into this issue a bit more deeply, I read a few
    blogs / forums and other people are experiencing the same problems
    - even with a lot bigger leaks in some cases all when reloading
    large sets of XML data into Flex - however, I as of yet found no
    solution to this leak - people with a similar problem believe it is
    not due to a memory leak more a GC error, and others pointing
    towards the Flash Player itself that is leaking - I don't really
    know.
    Findings so far during investigation of this issue:
    * App leaks for both HTTPService and ULRRequest / URLLoader
    methods
    * App only leaks when calling a data loader
    * The size of the leak seems to depend on the size of the
    XML being loaded
    * The size of the leak also seems to be affected by the
    applications heaviness - the greater seems to enhance the leak
    An interesting factor I have noticed is that if I copy the
    XML from my "myXML.cfm" that I link to in my HTTPService and copy
    the contents of the file into my own XML file stored within the
    Flex project root itself: ""myXML.xml"" the leak disappears... like
    it seems to link when loading the XML over a network, however as my
    network knowledge is not great I am not sure what to make of this -
    any ideas???
    Could the connection to the XML document cause leaks??? is
    there anything else that could cause this leak??? have I something
    in my code sample that could cause this leak??? or could any of the
    other things I have mentioed cause this leak???
    Any help / ideas would be greatly appreciated.
    Thanks,
    Jon.

    I also observed heavy memory leak from using httpservice with
    XML data. I am using Flex3 builder under Linux. My Flex application
    polls httpservice every 10 seconds. The reply is a short XML
    message less than 100 bytes. This simple polling will consume 30+
    MB of memory every hour. I leave it idling for several hours and it
    took 200 MB of memory. No sign of garbage collection at all.

  • Memory Leak issue 1.5.4.59.40-no-jre  jdk1.6.0_12  jre6

    Me and 2 other develops have been using SQL developer since it was created but we are getting really frustrated with the memory leaks we are experencing.
    We will start up sql developer and if we just leave it alone within a couple hours it will have taken up 650Megs of ram and be completely locked up. If we are working in sql developer the time can be even faster till it lockups up. We have been experencing the issue for very long time but seems to have gotten worse in the last to updates.
    I have tried to search the web and form for information to the memory problem to no avail. We are running oracle 10g and windows XP with 2gigs of ram.
    Can some one point me to some information or have any idea what is going on?
    Edit--
    I just realized that I was not using the latest version that I have downloaded. Trying sqldeveloper-1.5.4.59.40-no-jre will advise as to results.
    Edited by: ObeTheDuck on Mar 17, 2009 8:47 AM
    2nd Edit--
    1.5.4.59.40-no-jre has the same issue. 2hrs and it has locked up and is no longer listed as a running app and can only be seen under the process thread in windows task manager with 50% CPU use on a dual-core cpu and 626megs ram being used. Have to kill and restart ... <sigh>
    Edited by: ObeTheDuck on Mar 17, 2009 10:45 AM

    Thanks for the info so far....
    We really do like sql developer as a tool and has been execeding helpful and useful as our development tool.
    I am proud to say we have been using it since the 2nd month is was available and have been encourged and happy with most of the improvements.
    I am looking forward to trying the modeling tool soon.
    If I can get back to having a stable work enviorment for a work day that will be fine for now. It's just been reduced down to 2hrs which is a bit much.
    Anyway...
    1. We don't have any in house extentions that we need. I am speaking of the one that come bundled with the tool. Or at least I thought that they came bundled.
    Several are migration tools which we don't need. One is TenTime tool which I don't think we need.
    Last is the versioning extention, this sounds like something we want to use, but stability is more important at the moment. So unchecked they have all been.
    2. Sue you asked about a clean install. Is that simply an unpacking a new folder copy and then not migrate settings when running?
    3. I will be glad to uninstall java a switch to different version of the jdk which one is consider to be the most stable atm?
    Thanks,
    Obe

  • Memory leak in Tomcat 5.5

    Hi all, i am experiencing memory leaks while using tomcat 5.5 and mysql connector 3.1.7.. While running the attached code tomcat swallows up to 20 mb and doesnt return it. I close down everything but the app still leaks mem. For now it's not an issue (Tomcat stays below 60mb mem of 1gb), however running this app on serveral clients will dramatically increase the memory allocation.
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.awt.Image;
    import java.awt.Graphics2D;
    import java.awt.geom.AffineTransform;
    import java.awt.image.BufferedImage;
    import javax.swing.ImageIcon;
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    public class Thumbs extends HttpServlet {
      private String dbDriver = "com.mysql.jdbc.Driver";
      private String dbURL = "jdbc:mysql://localhost/webapp?";
      private String userID = "javauser";
      private String passwd = "javadude";
      private Connection dbConnection;
      //Initialize global variables
      public void init() throws ServletException {
      //Process the HTTP Get request
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try{
           String maxDim = "";
           String siteString = request.getParameterValues("s")[0];
           if (request.getParameterValues("d") != null){
               maxDim = request.getParameterValues("d")[0];
           if (maxDim == ""){
               response.setContentType("image/jpeg");
               OutputStream out = response.getOutputStream();
               writePicture(out,siteString);
           else{
               if (siteString != null) {
                   int maxDimension = Integer.parseInt(maxDim);
                   response.setContentType("image/jpeg");
                   OutputStream out = response.getOutputStream();
                   writeThumbnailPicture(out, siteString, maxDimension);
        } catch (Exception ex){
            ex.printStackTrace();
            log(ex.getMessage());
      public void writePicture(OutputStream out, String siteID){
          try{
              Class.forName(dbDriver);
              dbConnection = DriverManager.getConnection(dbURL, userID, passwd);
              PreparedStatement stmt = dbConnection.prepareStatement("select * from webcatalog where ID = ?");
              stmt.setString(1,siteID);
              stmt.executeQuery();
              ResultSet rs = stmt.getResultSet();
              if (rs.next()) {
                  byte[] data = rs.getBytes("Picture");
                  if (data != null) {
                      Image inImage = new ImageIcon(data).getImage();
                      BufferedImage outImage = new BufferedImage(inImage.getWidth(null),
                                                                 inImage.getHeight(null),
                                                                 BufferedImage.TYPE_INT_RGB);
                      // Paint image.
                      Graphics2D g2d = outImage.createGraphics();
                      g2d.drawImage(inImage,null,null);
                      // JPEG-encode the image
                      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                      encoder.encode(outImage);
                      out.close();
              rs.close();
              stmt.close();
              dbConnection.close();
          }catch(Exception ex){
              ex.printStackTrace();
      public void writeThumbnailPicture(OutputStream out,String siteID,int maxDimension){
        try{
          Class.forName(dbDriver);
          dbConnection = DriverManager.getConnection(dbURL, userID, passwd);
          PreparedStatement stmt = dbConnection.prepareStatement("select * from webcatalog where ID = ?");
          stmt.setString(1,siteID);
          stmt.executeQuery();
          ResultSet rs = stmt.getResultSet();
          if (rs.next()) {
            byte[] data = rs.getBytes("Picture");
            if (data != null) {
              Image inImage = new ImageIcon(data).getImage();
              // Determine the scale.
               double scale = (double)maxDimension / (double)inImage.getHeight(null);
               if (inImage.getWidth(null) > inImage.getHeight(null)) {
                   scale = (double)maxDimension /(double)inImage.getWidth(null);
               // Determine size of new image.
               // One of them should equal maxDim.
               int scaledW = (int)(scale*inImage.getWidth(null));
               int scaledH = (int)(scale*inImage.getHeight(null));
               // Create an image buffer in
               //which to paint on.
               BufferedImage outImage = new BufferedImage(scaledW, scaledH,
                   BufferedImage.TYPE_INT_RGB);
               // Set the scale.
               AffineTransform tx = new AffineTransform();
               // If the image is smaller than
               // the desired image size,
               // don't bother scaling.
               if (scale < 1.0d) {
                   tx.scale(scale, scale);
               // Paint image.
               Graphics2D g2d = outImage.createGraphics();
               g2d.drawImage(inImage, tx, null);
               g2d.dispose();
               // JPEG-encode the image
               JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
               encoder.encode(outImage);
               out.close();
          rs.close();
          stmt.close();
          dbConnection.close();
        catch(Exception ex){
          ex.printStackTrace();
      //Clean up resources
      public void destroy() {
      private void jbInit() throws Exception {
    }

    you can try this:
    open your connection outside the function, and then pass it like as a parameter...
    writePicture(OutputStream out, String siteID, Connection conn)
    this can solve the problem because opening the connection inside the function spends a lot of memory...
    Hope this can help you
    Regards
    Fernando

  • Memory Leak In DataService

    Hi All,
          I had posted this query to couple of other groups ..I am still struglling with this issue..Hope someone  will  help me out here
          I have  very basic application which uses  DataSerives over RTMP channel  to populate dataGrid , I have not used any  user defined component.
    This application has got LOAD data and Remove data  Button just to simulate the actual application
    What happens , when I click on LOAD data , It  loads the data from server(JBOSS) then I Remove all the data and force the GC to run
    If I continuously keep loading and removing the  data ,  memory goes up every time and after some times It reaches to threshold and  finally crashes the Browser.
    In actual application as soon as user logs in a dedicated DS destination is created..
        private function createDestination(destName:String):void{
                 var remoteService:RemoteObject = new RemoteObject("DestinationManager");
                 remoteService.addEventListener(ResultEvent.RESULT, resultHandler,false,0,true);
                 var operation:AbstractOperation = remoteService.getOperation("createDestination");
                 operation.send(destName);
                 var cs:ChannelSet = new ChannelSet();
                 var rtmpChannel:RTMPChannel = ServerConfig.getChannel("my-rtmp") as  RTMPChannel;
                 cs.addChannel(rtmpChannel);
                 tradeService = new DataService() ;
                 tradeService.destination=destName;
                 tradeService.channelSet = cs;  
    Now when user hits on Load data button to load the trade data ...
       public function loadData():void
             var remoteService:RemoteObject  = new RemoteObject("filterRemoteVO");
             var operation:AbstractOperation = remoteService.getOperation("loadData");
             tradeService.fill(tradeCollection);
             operation.send(rowData.text ,GUIID);
             tradeList.dataProvider = tradeCollection;
    Remove Data  hit I clean all the resource and released collection :-
          public  function  removeAll():void{
             if(tradeList.dataProvider){
                  tradeCollection.source = new Array();
                  tradeList.dataProvider.source = new Array();
                  tradeList.dataProvider = null;
                tradeService.release();
               tradeService.releaseCollection(tradeCollection);
              tradeService.channelSet.disconnectAll();
              tradeService.disconnect();
               tradeService.logout();
               System.gc();
    Except these 3 function I don't have any code which could cause memory leak.
    I m using
    LCDS 2.5
    Flex 3.0
    JBoss4.2
    Please see the mxml file below   , If  possible please have a look at it , I might  not be using dataSerice API correctly.
    I have been trying to solve this leak for last two week , I really need help from you guys.
    My client has already evaluating other contemporary technology because of this memory issue.
    I have also created scalled down war file which can be deployed on any  java application server.
    Any help will greatly be appreciated
    Regards,
    Dam
    ######################## MXML##########################
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
          creationComplete="init();" height="100%" width="100%"
         >
         <mx:Script >
         <![CDATA[
             import mx.containers.GridRow;
               import mx.utils.Base64Decoder;
             import mx.utils.StringUtil;
                import mx.events.CollectionEvent;
             import mx.formatters.Formatter;
             import mx.events.ResizeEvent;
             import mx.controls.DataGrid;
             import mx.effects.Fade;
             import mx.events.DataGridEvent;
             import mx.utils.ObjectUtil;
             import mx.events.ScrollEvent;
           import mx.formatters.DateFormatter;
           import mx.events.ListEvent;
           import mx.data.mxml.DataService;
           import mx.messaging.config.ServerConfig;
           import mx.messaging.channels.RTMPChannel;
           import mx.messaging.ChannelSet;
           import mx.rpc.AbstractOperation;
           import mx.rpc.remoting.RemoteObject;
           import mx.collections.ArrayCollection;
           import mx.controls.Alert;
           import mx.rpc.events.ResultEvent;
           import mx.messaging.messages.*;
           import mx.messaging.events.*;
           import mx.controls.Alert;
            private var GUIID:String;
            private var lastRollOverIndex:Number;
            public var tradeService:DataService=null;
            public var tradeCollection:ArrayCollection = new ArrayCollection();
           public var flag:Boolean = false;
            private function init():void {
               var guiId:String ="TEST";
                createDestination(GUIID);
            public function getData():void{
                 // memory.text =""+ ((System.totalMemory / 1024)/1024);
            public function releaseDataServices():void {
               //  tradeService.fill(null);
                    tradeService.release();
                   // tradeService.releaseCollection(tradeCollection);
                   tradeService.channelSet.disconnectAll();
                    tradeService.disconnect();
                    tradeService.logout();
                    //tradeService.dataStore = null;
                    /*Function for creating destination*/
              private function createDestination(destName:String):void{
                 var remoteService:RemoteObject = new RemoteObject("DestinationManager");
                 remoteService.addEventListener(ResultEvent.RESULT, resultHandler,false,0,true);
                 var operation:AbstractOperation = remoteService.getOperation("createDestination");
                 operation.send(destName);
                 var cs:ChannelSet = new ChannelSet();
                 var rtmpChannel:RTMPChannel = ServerConfig.getChannel("my-rtmp") as RTMPChannel;
                 cs.addChannel(rtmpChannel);
                 tradeService = new DataService() ;
                 tradeService.destination=destName;
                 tradeService.channelSet = cs;  
             //This function calls dataservice fill method depending on wheather destination is created or not
            private function resultHandler(event:ResultEvent):void{
               //call data service as destination is created successfully
                var status:Boolean = event.result as Boolean
               // Alert.show("status="+status);
                if(status){
                 getData();
               else{
                   //TODO report error to MATS app  
          public  function  removeAll():void{
             if(tradeList.dataProvider){
                  tradeCollection.source = new Array();
                  tradeList.dataProvider.source = new Array();
                  tradeList.dataProvider = null;
                tradeService.release();
               // tradeService.releaseCollection(tradeCollection);
              tradeService.channelSet.disconnectAll();
              tradeService.disconnect();
               tradeService.logout();
               System.gc();
           public function loadData():void
             var remoteService:RemoteObject  = new RemoteObject("filterRemoteVO");
             var operation:AbstractOperation = remoteService.getOperation("loadData");
             tradeService.fill(tradeCollection);
             operation.send(rowData.text ,GUIID);
             tradeList.dataProvider = tradeCollection;
       ]]>
    </mx:Script>
          <mx:DataGrid   id="tradeList"
                 initialize="tradeList.dataProvider = tradeCollection" horizontalScrollPolicy="auto"
                   height="659" x="0" y="84">
                <mx:columns>
                     <mx:DataGridColumn  headerText="Security Description" dataField="securityDesc"
                      />
                     <mx:DataGridColumn  headerText="B/S" dataField="transactionType"
                     />
                     <mx:DataGridColumn  headerText="Amount" dataField="amount"
                     />
                     <mx:DataGridColumn  headerText="Price Text" dataField="priceText"
                     />
                     <mx:DataGridColumn  headerText="Counterparty" dataField="counterParty"
                     />
                     <mx:DataGridColumn  headerText="Trade Date" dataField="tradeDate"
                     />
                     <mx:DataGridColumn  headerText="Settle Date" dataField="settleDate"
                     />
                     <mx:DataGridColumn  headerText="Trade Status" dataField="tradeStatusId"
                     />
                     <mx:DataGridColumn  headerText="Trader" dataField="trader"
                     />
                     <mx:DataGridColumn  headerText="Salesperson" dataField="salesperson"
                     />
                     <mx:DataGridColumn  headerText="Ticket Number" dataField="tradeNumber"
                     />
                     <mx:DataGridColumn  headerText="Entry Date" dataField="tradeTime"
                     />
                     <mx:DataGridColumn  headerText="Cancel Date" dataField="cancelDate"
                     />
                     <mx:DataGridColumn  headerText="Cancel Time" dataField="cancelTime"
                     />
                 </mx:columns>
              </mx:DataGrid >
             <mx:Grid x="149" y="23" width="995">
                     <mx:GridRow width="100%" height="100%">
                                <mx:GridItem width="100%" height="100%">
                                     <mx:Label text="Enter No of obejcts"   width="111"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:TextInput name="row" id="rowData"   width="97"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Button  label="Load Data" click='loadData()'/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Button  label="removeAll" click='removeAll()'/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Label text="Total Memory"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:TextInput text="Total Memory" id="memory"   width="97"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Label text="Grid Row Count"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:TextInput name="GridRowCountN" id="GridRowCount"   width="97"/>
                             </mx:GridItem>
                     </mx:GridRow>
             </mx:Grid>
    </mx:Application>

    Hi Natasha,
    Sorry for late reply.
          I tried your suggestion but It did not help to release memory. Actully,this app contains only one event handler which is for remote method call , I dont think this could cause any memory leak.
    Profiling session reveals that It is the issue of DataService class.I dont know How do I convince  Adobe to investigate this issue.
    Regards,
    Dharmendra

  • Memory Leak in BI SDK with XMLA Connector ?

    Hi,
    I am using BI SDK 3.5 with XMLA Connector. I noticed that in com.sap.ip.bi.sdk.dac.connector.xmla.impl.Connection class, the LocalTransaction object is rollbacked when the close() method is called.
    This makes a call to the endTransaction() method of Repository class with "true" parameter and leads to informations storage into a RepositoryDBMemory instance.
    The only way I found to avoid this is to call the endTransaction() method with "false" as parameter, which is what is done in commit() method of the LocalTransaction class.
    So, I tried to commit the transaction before closing the connection but in XMLA mode, the getLocalTransaction() method throws an BIResourceException so it is impossible to commit it. This is the first issue.
    Second issue: it seems that data hold by the DataSetContentHandler is not freed. I tried using SAP Parser, Xerces, Java Parser but it has no effect. I hava a MDX query that returns 13000 lines, the XML file size is about 15Mo.
    In a for loop with 10 operations, it leads to a OutOfMemory error quickly (only 7 iterations OK with -Xmx256m -Xms256m options). On each iteration, the memory grows about 25 to 30Mo !
    For the first point, I do not call the close method on the connection object and it is garbage collected (but, in my opinion, it is quite strange not calling the close() method on a connection object).
    For the second one (DataSetContentHandler), I have no idea. Has someone already encounter this problem ? The Netbeans profiler tells me it is this object that holds all java.lang.String objects. Is it right ?
    I saw in DataSetContentHandler class that it has two static fields: one for the row cursor of the dataset, the other one for column cursor. Why ? Is it OK in a multi-threaded context ?
    <b>This is urgent as we will not put the project in production mode with such a memory leak ! We must find the problem very quickly.</b>
    Thanks in advance for any help you might give to me !
    Regards,
    David Degardin (Ubik-Ingenierie)

    I found the same thing. Tracing the execution back I found the only place this function was called was as part of the setup, so you shouldn't have to worry about it getting called multiple times and leaking memory. The trouble seems to be when the AudioPlayer dealloc method is called, the memory is not cleaned up.
    My fix was to modify the dealloc in AudioQueueObject to check to see if audioLevels is nil and, if not, free it. This seems to have fixed the problem.

  • Memory leak in  NFS server

    Hi all,
    I have a problem with 2 SunFire 240 (4Gb of Ram) with solaris 10 in a Veritas Cluster.
    These nodes are 2 NFS server and they have 10 nfs client.
    We have a memory leak on these servers. The memory utilization increase day by day.
    The memory seems to be allocated by the kernel and not from some process.
    So I would like to know if this is a common issue (NFS?) or this is a single case.
    Thanks in advance for you help
    Regards
    Daniele
    Edited by: Danx on Jan 2, 2008 5:23 PM

    That message relates to how the application deals with its threads, which for a the most part isn't actually an issue. However, since it does have the potential to cause a leak under certain circumstances we did make a change in 10.3 to address that issue, so I suggest you upgrade to that release.

  • Memory Leak in BlazeDS

    I have used BlazeDS in an  application to push the data in realtime. However, we have been  experiencing a heavy memory leak in the application. The application has  a scheduler that pushes the data every one minute into the default  queue. Without any browsers opened, the appication remain stable. And  closing the browsers also cleans up the FlexClient object and other  associated objects for that browsers. But the leak occurs when we open  and keep browsers for a long period, say 2 to 3 days. The memory usage  of application gradually increases and throws a  "java.lang.OutOfMemoryError: Java heap space" Exception. On analyzing  the HeapDump, I found that there are thousands of AsyncMessage Objects  in the memory, not getting garbage-collected. This the channel definiton  congured in services-config.xml file
            <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
                <properties>
                    <polling-enabled>true</polling-enabled>
                    <polling-interval-seconds>4</polling-interval-seconds>
                    <invalidate-session-on-disconnect>true</invalidate-session-on-disconn ect>
                </properties>
            </channel-definition>
    Does anyone know the cause of this issue and how it can be overcome. Please help.

    We also have the same problem. The JVM goes out of memory every 24 - 50hrs. I have documented a working fix for the problem on the JVM side.
    http://in-finite.me/fixing-blazeds-polling-amf-memory-leak/@

  • Memory leak in JCO when calling an ABAP-function that returns larg tables

    Hello everybody,
    I think discovered a memory leak in JCO when the calling functionions that have exporting tables with large datasets. For example the ABAP-function RFC_READ_TABLE, which in this example I use to retrieve data from a table called "RSZELTTXT", which contains ~ 120000 datasets. RFC_READ_TABLE exports the data as table "DATA".
    Here a simple JUnit test:
    http://pastebin.ca/1420451
    When running it with Sun Java 1.6 with standard heap size of 64mb I get a heapsize OutOfMemory error:
    http://pastebin.ca/1420472
    Looking at the heap dump (which I unfortunately cannot post here, because of it' size), I can see that I've 65000 char[512] array objects in my heap, which don't get cleaned up. I think, each char[512] array stands for one dataset in the exporting table "DATA", since the table contains 120000 datasets, the heap is full after the first 65000 datasets are parsed. Apparently, JCO tries to read all datasets in memory instead of justing reading the dataset to which the pointer (JCoTable.setRow(i)) currently points to and releasing it from memory after the pointer moves forward ...
    Did anybody else experience this?
    Is SAP going to remove to issue in upcoming versions of JCO?
    regards Samir

    Hi,
       Check Below links
    1) How To Analyze Performance Problems JCO
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/3fbea790-0201-0010-6481-8370ebc3c17d
    2) How to Avoid Memory Leaks 
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c3e598fe-0601-0010-e990-b8622840c8c2
    Salil...
    Edited by: salil chavan on Jun 2, 2009 5:21 AM

Maybe you are looking for

  • Why is the Custom button in the Marker settings dialog grayed out in CS6?

    I'm wondering why it's grayed out and what its purpose is. Also, is there any way to make the Marker window display Names as well as comments? I feel like the comments field would be used for notes and comments while the name field is used to actuall

  • How do I choose Air 3.0 as my player?

    Hey guys. I've downloaded the latest version of Air (3.1 now), but I can't choose it as my player in CS5.5. Is there something specific I'm supposed to do so I can access it? I assume I can also import the Air 3 libraries into flash builder as well,

  • How to return efficiently filtered data

    Dear all, I have a database ( SQL server 2012) which is based from AW sample db where I took some sample table design to cover my issues. My database will host a big list of product organized in category and sub category. From my client application I

  • BOM RELEASE

    Dear All SAP Guru, In our organization we required Release strategy in BOM stage like Purchase order.Once BOM created against the SFG / FG code it is under developement fully should not available for Production use unless responsible person release t

  • IDVD loses files

    Since I haven't received any answer to my topic and since there is at least another iDVD6 user having the same problem I am asking the question again. After I make a slide show DVD from pictures, burn it and put it away, if later on I try to open it