Memory leak due high database operations

Our application is a network monitoring application , where we get lot of data from network every 2 minutes.
When we try process large amount data in our application we start seeing memory leak. But if we control data inflow rate , then our application works fine with no leak.
I am not able to profile our application with tools like Jprobe, as the profiler itself is running outofmemory even before I could reproduce the issue.
Mostly likely DB is not able to handle the data at the rate we would like it to handle. We are using MySql with C3P0.
I am not sure which objects are not getting garbage collected which is causing our application to run outofmemory since i am not able to profile the application.
Will appreciate if anyone can share their experiences in debugging such problems

We have added throttling mechanism to temporarily fix the problem. As I said before we get data every 2 mins from network. We have a data structure which is populated when we receive the data. So we count the numbers of rows in the data structure and once we reach the throttle we drop rest of the data. Throttle gets reset so that when data comes in next cycle we can again process it.
The problem is we are not able handle data at a higher rate. Most of the times data received from the network is within our throttle limit , so there are no issues. We were seeing issues only when receive burst of data. So if we fixed the issue temporarily by adding throttling.
I hope this clarifies your question

Similar Messages

  • Memory leak when using database connectivity toolset and ODBC driver for MySQL

    The "DB Tools Close Connection VI" does not free all the memory used when "DB Tools Open Connection VI" connects to "MySQL ODBC Driver 3.51".
    I have made a small program that only opens and close the connection that I run continously and it's slowly eating all my memory. No error is given from any of the VI's. (I'm using the "Simple Error Handler VI" to check for errors.)
    I've also tried different options in the DSN configuration without any results.
    Attachments:
    TestProgram.vi ‏16 KB
    DSNconfig1.jpg ‏36 KB
    DSNconfig2.jpg ‏49 KB

    Also,
    I've duplicated the OPs example: a simple VI that opens and closes a connection. I can say this definately causes a memory leak.
    Watching the memory:
    10:17AM - 19308K
    10:19AM - 19432K
    10:22AM - 19764K
    10:58AM - 22124K
    Regards,
    Ken
    Attachments:
    OpenCloseConnection.vi ‏13 KB

  • Memory leak due to http-basic-authn ?

    I reproduced the problem with the example/servlets/SessionServlet class. The http client (non-UI) creates session on every request and also passes in userid-password for http-basic authentication.
    Please note that we do NOT configure any authentication in weblogic deployment descriptors.
    With memory profiler OptimizeIt, I see the leak in the hashtable authUsers. The entry in the hashtable was created with:
    weblogic.servlet.internal.HttpServer.setAuthUser().
    The AuthenticatedUser object was created with:
    weblogic.security.acl.ClusterRealm.certify().
    It seems to me that Weblogic is trying to do the authentication by just see'ing userid-password in the Http headers. Even though when we want to do the authentication inside our application.
    I have the profiler snapshot but I do not know how to send the attachment in this posting. Let me know if I can email it to some address.
    Thanks
    -Rakesh

    I reproduced the problem with the example/servlets/SessionServlet class. The http client (non-UI) creates session on every request and also passes in userid-password for http-basic authentication.
    Please note that we do NOT configure any authentication in weblogic deployment descriptors.
    With memory profiler OptimizeIt, I see the leak in the hashtable authUsers. The entry in the hashtable was created with:
    weblogic.servlet.internal.HttpServer.setAuthUser().
    The AuthenticatedUser object was created with:
    weblogic.security.acl.ClusterRealm.certify().
    It seems to me that Weblogic is trying to do the authentication by just see'ing userid-password in the Http headers. Even though when we want to do the authentication inside our application.
    I have the profiler snapshot but I do not know how to send the attachment in this posting. Let me know if I can email it to some address.
    Thanks
    -Rakesh

  • Memory leak due to MediaProvider

    Hello,
    I am using jmc to create my own media player. I found that, when creating a new JMediaPane instance for opening and playing a new medium, the old instance is not deleted by the garbage collection, although it is not used and referenced anymore. The reason for this seems to be a still running thread in the class MediaProvider.
    This behavior also occurs when using javafx and changing the media of a mediaplayer.
    Has anyone any idea on how to solve this problem and how to build a (jmc-based) media player which reliably allows to open and play new media?
    Thanks in advance!

    Hello,
    I am using jmc to create my own media player. I found that, when creating a new JMediaPane instance for opening and playing a new medium, the old instance is not deleted by the garbage collection, although it is not used and referenced anymore. The reason for this seems to be a still running thread in the class MediaProvider.
    This behavior also occurs when using javafx and changing the media of a mediaplayer.
    Has anyone any idea on how to solve this problem and how to build a (jmc-based) media player which reliably allows to open and play new media?
    Thanks in advance!

  • Database toolkit memory leaks

    I have memory leaks in my Labview application connecting and inserting data into a MSSQL server using Labview Database Toolkit.
    Versions: Labview 7.1, Toolkit 1.0.1.
    I have searched the forums and searhed everywhere else...I see there are some issues. (For example List tables vi). Removing the list tables vi helped a lot. But I can still see that I'm loosing memory here and there, now and then.
    My question is: Is there any general guidlines to prevent all memory leaks mentioned? 
    Or possibly, will it all go away if I upgrade the versions. (As I understand I have too update Labview to be able to update the Toolkit?)
    Best Regards
    /Jesper
    Solved!
    Go to Solution.

    Have you seen this Developer Zone document?
    LabVIEW Database Connectivity Toolset 1.0.1 Known Issues
    Functions, VIs, and Express VIs - ID 2F7E2352    
    Memory Leak in the Database Toolset in DB Tools Open Schema VI
    The DB Tools Open Schema VI leaks memory which if called continuously eventually causes a LabVIEW crash. This is a sub VI of the DB Tools Insert Data VI.
    Workaround—At the highest level, if you are continuously updating values in a table, make sure the table already exists and leave the Create Table input to the DB Tools Insert Data VI set to FALSE.
    Other than this, the most important thing is to close all references...
    Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
    If you don't hate time zones, you're not a real programmer.
    "You are what you don't automate"
    Inplaceness is synonymous with insidiousness

  • Libclntsh - Memory leak

    Hi every body,
    I have a big problem with my c++ program, after 3 hours of execution, my program explose, no enouth memory and the cause is that i have a lot of memory leak due at the use of the oracle librairie libclntsh, my oracle version is 9.2.0.7
    There is any patch for this librairie ?
    Please i need help
    Thanks in advance

    On http://metalink.oracle.com
    Go in the "Patches & Updates" tab
    Click on Simple search
    Choose search by "Product or Family" and enter "RDBMS Server" in the following field.
    Choose the version you are looking for (9.2.0.8)
    Choose your plateform
    Click on the Go button.
    Nicolas.

  • Galaxy S6 Memory Leak - Multitasking

    I've begun to notice more and more that when multitasking, the phone's response time drags to the point of hardly usable, or the apps have to restart and multitasking is completely useless at that point. When this is happening and I check the App management portion in the settings, it shows the system is taking up anywhere from 1.5-2 GB of the RAM, apps are anywhere from 600-800 MB, and Free is whatever is leftover at that point. How is this even possible? I've seen reports of a memory leak issue within the operating system, and that's the only thing that seems to make sense when a phone with this much memory and processing power performs worse than a 2011 phone.  Are there any solutions that AT&T has to fix these? Otherwise this phone is almost useless to me

    if you have the 5.0.2 update installed that fixed the memory leak for my 920a
    If anything the most complaints I have seen is the ram managment is to aggresive on the s6 series.

  • My iMac keeps crashing due to a memory leak....  Any thoughts on what this means?

    I'll be using my iMac (27" late 2009) and it will suddenly cut to black.  Then after a second or two, a grey screen will appear and tell me an issue occured and to push any key to restart.  Once the computer restarts, the issue report pops up and it says I have a memory leak.  I don't know what that means, or how to fix it.  Any thoughts on the cause of why it's doing this, or the impending doom it may be heralding?  I've posted the issue report below incase anyone can glean anything from it.  Thanks for your help.
    Fri Feb 14 14:19:08 2014
    panic(cpu 4 caller 0xffffff801185211d): "zalloc: zone map exhausted while allocating from zone kalloc.64, likely due to memory leak in zone kalloc.64 (2370900672 total bytes, 37045323 elements allocated)"@/SourceCache/xnu/xnu-2422.1.72/osfmk/kern/zalloc.c:2494
    Backtrace (CPU 4), Frame : Return Address
    0xffffff8104ed3a30 : 0xffffff8011822f69
    0xffffff8104ed3ab0 : 0xffffff801185211d
    0xffffff8104ed3bb0 : 0xffffff801182aa2f
    0xffffff8104ed3be0 : 0xffffff8011c4bb5d
    0xffffff8104ed3c10 : 0xffffff8011c4c0b7
    0xffffff8104ed3c40 : 0xffffff8011c61b3a
    0xffffff8104ed3c60 : 0xffffff8011c61b91
    0xffffff8104ed3ca0 : 0xffffff8011c61d12
    0xffffff8104ed3ce0 : 0xffffff8011c93663
    0xffffff8104ed3d20 : 0xffffff8011c4abde
    0xffffff8104ed3eb0 : 0xffffff8011c4ada7
    0xffffff8104ed3ee0 : 0xffffff8011c8e4c3
    0xffffff8104ed3f50 : 0xffffff8011c93cc4
    0xffffff8104ed3f70 : 0xffffff7f923edbfb
    0xffffff8104ed3fa0 : 0xffffff7f923edc6e
    0xffffff8104ed3fb0 : 0xffffff80118d6aa7
          Kernel Extensions in backtrace:
             com.razer.common.razerhid(4.43)[1B7FEBF6-6668-A183-C80E-505105E80B16]@0xffffff7 f923e8000->0xffffff7f923fdfff
                dependency: com.apple.iokit.IOUSBFamily(650.4.4)[972D3024-AF9C-3E09-A9EC-D9AB2A559B38]@0xff ffff7f921cb000
                dependency: com.apple.iokit.IOHIDFamily(2.0.0)[1185D338-98A5-345E-84F8-E59DF819A61B]@0xffff ff7f92288000
                dependency: com.apple.iokit.IOUSBHIDDriver(650.4.4)[B79A7E01-DD3F-3C1A-840A-879D262C69DE]@0 xffffff7f9230d000
                dependency: com.apple.driver.IOBluetoothHIDDriver(4.2.0f6)[BDBCA485-A5D3-3EE0-A782-60D83447 BAEB]@0xffffff7f923d4000
    BSD process name corresponding to current thread: kernel_task
    Boot args: mbasd=1
    Mac OS version:
    13B42
    Kernel version:
    Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64
    Kernel UUID: 1D9369E3-D0A5-31B6-8D16-BFFBBB390393
    Kernel slide:     0x0000000011600000
    Kernel text base: 0xffffff8011800000
    System model name: iMac11,1 (Mac-F2268DAE)
    System uptime in nanoseconds: 6500042405956
    vm objects:14896672
    vm object hash entri:1422080
    VM map entries:3665920
    pv_list:14364672
    vm pages:148044672
    kalloc.16:296143584
    kalloc.32:296364096
    kalloc.64:2370900672
    kalloc.128:8413184
    kalloc.256:2584576
    kalloc.512:2330624
    kalloc.1024:5713920
    kalloc.2048:1327104
    kalloc.4096:1859584
    kalloc.8192:6995968
    ipc ports:3312960
    threads:3060288
    uthreads:1891008
    vnodes:27132000
    namecache:10648800
    HFS node:36340432
    HFS fork:4812800
    buf.4096:2613248
    buf.8192:34643968
    ubc_info zone:2554704
    vnode pager structur:1418040
    Kernel Stacks:25870336
    PageTables:75939840
    Kalloc.Large:37970463
    Backtrace suspected of leaking: (outstanding bytes: 60608)
    0xffffff8011851c23
    0xffffff801182aa2f
    0xffffff8011c4bb5d
    0xffffff8011c4d667
    0xffffff8011c8e5e7
    0xffffff8011c93cc4
    0xffffff7f923edbfb
    0xffffff7f923edc6e
          Kernel Extensions in backtrace:
             com.razer.common.razerhid(4.43)[1B7FEBF6-6668-A183-C80E-505105E80B16]@0xffffff7 f923e8000->0xffffff7f923fdfff
                dependency: com.apple.iokit.IOUSBFamily(650.4.4)[972D3024-AF9C-3E09-A9EC-D9AB2A559B38]@0xff ffff7f921cb000
                dependency: com.apple.iokit.IOHIDFamily(2.0.0)[1185D338-98A5-345E-84F8-E59DF819A61B]@0xffff ff7f92288000
                dependency: com.apple.iokit.IOUSBHIDDriver(650.4.4)[B79A7E01-DD3F-3C1A-840A-879D262C69DE]@0 xffffff7f9230d000
                dependency: com.apple.driver.IOBluetoothHIDDriver(4.2.0f6)[BDBCA485-A5D3-3EE0-A782-60D83447 BAEB]@0xffffff7f923d4000
    last loaded kext at 280540738124: com.apple.filesystems.msdosfs          1.9 (addr 0xffffff7f92483000, size 65536)
    loaded kexts:
    com.taoeffect.ispy.kext          2.0.2
    com.quark.driver.Tether64          1.1.0d3
    com.logmein.driver.LogMeInSoundDriver          1.0.0
    com.squirrels.airparrot.framebuffer          3
    com.squirrels.driver.AirParrotSpeakers          1.7
    com.razer.common.razerhid          4.43
    at.obdev.nke.LittleSnitch          4052
    com.apple.filesystems.msdosfs          1.9
    com.apple.filesystems.ntfs          3.11
    com.apple.driver.AppleTyMCEDriver          1.0.2d2
    com.apple.driver.AGPM          100.14.11
    com.apple.driver.AppleHWSensor          1.9.5d0
    com.apple.driver.AudioAUUC          1.60
    com.apple.filesystems.autofs          3.0
    com.apple.iokit.IOBluetoothSerialManager          4.2.0f6
    com.apple.driver.AppleMikeyHIDDriver          124
    com.apple.driver.AppleUpstreamUserClient          3.5.13
    com.apple.iokit.IOUserEthernet          1.0.0d1
    com.apple.driver.AppleHDAHardwareConfigDriver          2.5.3fc1
    com.apple.kext.AMDFramebuffer          1.1.4
    com.apple.driver.AppleHDA          2.5.3fc1
    com.apple.Dont_Steal_Mac_OS_X          7.0.0
    com.apple.ATIRadeonX2000          8.1.8
    com.apple.driver.AppleHWAccess          1
    com.apple.driver.AppleMuxControl          3.4.12
    com.apple.driver.AppleBacklight          170.3.5
    com.apple.driver.AppleMikeyDriver          2.5.3fc1
    com.apple.iokit.IOBluetoothUSBDFU          4.2.0f6
    com.apple.kext.AMD4800Controller          1.1.4
    com.apple.driver.AppleMCCSControl          1.1.12
    com.apple.driver.AppleLPC          1.7.0
    com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport          4.2.0f6
    com.apple.driver.ACPI_SMC_PlatformPlugin          1.0.0
    com.apple.driver.AppleUSBCardReader          3.3.5
    com.apple.driver.AppleIRController          325.7
    com.apple.driver.AppleFileSystemDriver          3.0.1
    com.apple.AppleFSCompression.AppleFSCompressionTypeDataless          1.0.0d1
    com.apple.AppleFSCompression.AppleFSCompressionTypeZlib          1.0.0d1
    com.apple.BootCache          35
    com.apple.iokit.SCSITaskUserClient          3.6.0
    com.apple.driver.XsanFilter          404
    com.apple.iokit.IOAHCIBlockStorage          2.4.0
    com.apple.driver.AppleUSBHub          650.4.4
    com.apple.driver.AppleFWOHCI          4.9.9
    com.apple.iokit.AppleBCM5701Ethernet          3.6.9b9
    com.apple.driver.AirPort.Atheros40          700.74.5
    com.apple.driver.AppleAHCIPort          2.9.5
    com.apple.driver.AppleUSBEHCI          650.4.1
    com.apple.driver.AppleUSBUHCI          650.4.0
    com.apple.driver.AppleACPIButtons          2.0
    com.apple.driver.AppleRTC          2.0
    com.apple.driver.AppleHPET          1.8
    com.apple.driver.AppleSMBIOS          2.0
    com.apple.driver.AppleACPIEC          2.0
    com.apple.driver.AppleAPIC          1.7
    com.apple.driver.AppleIntelCPUPowerManagementClient          216.0.0
    com.apple.nke.applicationfirewall          153
    com.apple.security.quarantine          3
    com.apple.driver.AppleIntelCPUPowerManagement          216.0.0
    com.apple.kext.triggers          1.0
    com.apple.iokit.IOSerialFamily          10.0.7
    com.apple.iokit.IOSurface          91
    com.apple.driver.DspFuncLib          2.5.3fc1
    com.apple.vecLib.kext          1.0.0
    com.apple.driver.AppleGraphicsControl          3.4.12
    com.apple.iokit.IOFireWireIP          2.2.5
    com.apple.driver.AppleBacklightExpert          1.0.4
    com.apple.iokit.IONDRVSupport          2.3.6
    com.apple.kext.AMDSupport          1.1.4
    com.apple.AppleGraphicsDeviceControl          3.4.12
    com.apple.iokit.IOAudioFamily          1.9.4fc11
    com.apple.kext.OSvKernDSPLib          1.14
    com.apple.driver.AppleSMBusController          1.0.11d1
    com.apple.driver.AppleSMBusPCI          1.0.12d1
    com.apple.driver.AppleHDAController          2.5.3fc1
    com.apple.iokit.IOGraphicsFamily          2.3.6
    com.apple.iokit.IOHDAFamily          2.5.3fc1
    com.apple.iokit.IOBluetoothHostControllerUSBTransport          4.2.0f6
    com.apple.driver.AppleSMC          3.1.6d1
    com.apple.driver.IOPlatformPluginLegacy          1.0.0
    com.apple.driver.IOPlatformPluginFamily          5.5.1d27
    com.apple.driver.IOBluetoothHIDDriver          4.2.0f6
    com.apple.iokit.IOBluetoothFamily          4.2.0f6
    com.apple.driver.AppleUSBHIDKeyboard          170.15
    com.apple.driver.AppleHIDKeyboard          170.15
    com.apple.iokit.IOSCSIBlockCommandsDevice          3.6.0
    com.apple.iokit.IOUSBMassStorageClass          3.6.0
    com.apple.iokit.IOUSBHIDDriver          650.4.4
    com.apple.driver.AppleUSBMergeNub          650.4.0
    com.apple.driver.AppleUSBComposite          650.4.0
    com.apple.iokit.IOSCSIMultimediaCommandsDevice          3.6.0
    com.apple.iokit.IOBDStorageFamily          1.7
    com.apple.iokit.IODVDStorageFamily          1.7.1
    com.apple.iokit.IOCDStorageFamily          1.7.1
    com.apple.iokit.IOAHCISerialATAPI          2.6.0
    com.apple.iokit.IOSCSIArchitectureModelFamily          3.6.0
    com.apple.iokit.IOUSBUserClient          650.4.4
    com.apple.iokit.IOFireWireFamily          4.5.5
    com.apple.iokit.IOEthernetAVBController          1.0.3b3
    com.apple.driver.mDNSOffloadUserClient          1.0.1b4
    com.apple.iokit.IO80211Family          600.34
    com.apple.iokit.IONetworkingFamily          3.2
    com.apple.iokit.IOAHCIFamily          2.6.0
    com.apple.iokit.IOUSBFamily          650.4.4
    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          278.10
    com.apple.kext.AppleMatch          1.0.0d1
    com.apple.security.TMSafetyNet          7
    com.apple.driver.AppleKeyStore          2
    com.apple.driver.DiskImages          371.1
    com.apple.iokit.IOStorageFamily          1.9
    com.apple.iokit.IOReportFamily          21
    com.apple.driver.AppleFDEKeyStore          28.30
    com.apple.driver.AppleACPIPlatform          2.0
    com.apple.iokit.IOPCIFamily          2.8
    com.apple.iokit.IOACPIFamily          1.4
    com.apple.kec.pthread          1
    com.apple.kec.corecrypto          1.0
    Model: iMac11,1, BootROM IM111.0034.B02, 4 processors, Intel Core i7, 2.8 GHz, 8 GB, SMC 1.54f36
    Graphics: ATI Radeon HD 4850, ATI Radeon HD 4850, PCIe, 512 MB
    Memory Module: BANK 0/DIMM0, 2 GB, DDR3, 1067 MHz, 0x80AD, 0x484D54313235533642465238432D47372020
    Memory Module: BANK 1/DIMM0, 2 GB, DDR3, 1067 MHz, 0x80AD, 0x484D54313235533642465238432D47372020
    Memory Module: BANK 0/DIMM1, 2 GB, DDR3, 1067 MHz, 0x80AD, 0x484D54313235533642465238432D47372020
    Memory Module: BANK 1/DIMM1, 2 GB, DDR3, 1067 MHz, 0x80AD, 0x484D54313235533642465238432D47372020
    AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x8F), Atheros 9280: 4.0.74.0-P2P
    Bluetooth: Version 4.2.0f6 12982, 3 services, 23 devices, 1 incoming serial ports
    Network Service: Ethernet, Ethernet, en0
    Serial ATA Device: ST31000528ASQ, 1 TB
    Serial ATA Device: HL-DT-ST DVDRW  GA11N
    USB Device: Hub
    USB Device: Internal Memory Card Reader
    USB Device: BRCM2046 Hub
    USB Device: Bluetooth USB Host Controller
    USB Device: Hub
    USB Device: Keyboard Hub
    USB Device: Razer DeathAdder
    USB Device: Apple Keyboard
    USB Device: IR Receiver
    USB Device: Built-in iSight
    Thunderbolt Bus:

    Boot into safe mode (restart holding down SHIFT key). If no KP, then uninstall and reinstall those 3rd-party items that Roger pointed out, one at a time, and restart. Continue until you determine which ones are causing the problem. If KP while in safe mode, then most likely hardware related. Run the Apple Hardware Test suite, extended tests at least twice, followed by Rember.  See
    OS X About kernel panics,
    Technical Note TN2063: Understanding and Debugging Kernel Panics,
    Mac OS X Kernel Panic FAQ,
    Resolving Kernel Panics,
    How to troubleshoot a kernel panic, and
    Tutorial: Avoiding and eliminating Kernel panics for more details.

  • Memory leak pulling in data from database view or database table

    Post Author: Thang Nguyen
    CA Forum: Data Integration
    Hi,
    I'm experiencing memory leaks when using DI to load from a database view or table. I have seen the issue on 11.7.2.0 and 11.7.2.2 and was wondering if anyone else has seen it.
    You can see the row count in the monitor tab going up, but with every 1000 rows it pulls in the al_engine process consumes more and more memory until it gets to 2GB and crashes with an unknown error.
    Simlir behaviour is seen in the validation transform when doing and "IN" to another table, and with table comparisons.
    I've got a webex with support tomorrow as they don't seem to belive that this happening and just want to get a heads up if anyone else was seeing this problem.
    Thanks

    Post Author: tambol
    CA Forum: Data Integration
    HI,
    i am experiencing similar error : 
    Unknown error in transform <AIView4>.
    i am using older version of BO. how could i possibly fix this without upgrading to newest version?
    please don't be too techincal when explaining...new here
    thanks a lot!

  • Memory leak when running in database

    I am somewhat new to java and very new to java in the db. I just ran into a problem with what appears to be a memory leak. I have a substantial java program used to parse XML files. I developed this app in jDeveloper and for testing purposes created a method that would connect to the database so that I could run the app from jDeveloper instead of having to deploy it everytime i needed to run it. When deployed the application uses the existing connection to connect to the db.
    I am running Oracle 9i on a windows 2k machine.
    When I run the application through jDeveloper the javaw.exe process takes up roughly 20mb of RAM and doesn't increase. I also watched the oracle.exe process and there was little to no increase in the RAM that it was using.
    When deployed to a db and run through a java stored procedure the RAM used by the oracle.exe process sky rockets, jumping from 70mb to 139mb at about 2mb per second.
    Hopefully this will make some sense to someone as posting code would be somewhat difficult considering the size of the project. Is there something I'm missing? I've tried calling the garbage collector explicity but it has had no effect. I have made sure that all my cursors, statements, resultsets are closing. I have a number of Vecotors which are all being de-allocated(as far as i can tell). Are there any known issues with the garbage collector in a 9i DB?
    Thanks
    Butch Wesley

    The size of oracle.exe is not an indication of how the Java VM GC works; so you are not comparing apples to apples. It'll be too long to explain here but in my upcoming book (see hereafter), I gave a detailled explanation of the various memory areas the Java VM uses and how these are GCed and also how you can meausre their size (not all, though).
    In short you want to use OracleRuntime methods such as
    OracleRuntime.getSessionSize(); --> get he current size of Sessionspace
    OracleRuntime.getNewspaceSize(); --> get he current size of Newspace
    there are other memory areas described in the book
    http://www.oracle.com/technology/pub/articles/mensah_dws.html
    http://www.elsevier.com/wps/find/bookdescription.cws_home/706089/description#description
    Sample chapter: http://www.oracle.com/technology/books/pdfs/mensah_ch1.pdf
    Kuassi

  • Kernel Panic due to memory leak?

    Hello All
    I have recently been noticing an issue where while playing music through iTunes my computer freezes and the music begins to skip forcing me to power down by holding in the power button. I have read most topics on this, however none address a memory leak in the 'iChat Agent.'
    My machine has 4GB of memory (dual 1.8GHz G5, PPC) and have never had this issue before. I am not sure if it is caused by iTunes or if it is just happens to be when listening to music. I have begun to look around and I have noticed that my memory shoots up after 1-2 days of the computer being on. This is due to the iChat Agent... it takes up about 2GB of RAM. Is this normal?
    It has happened 3 times now in the past 2 weeks. Any suggestions?

    well... the first time i got the kernel panic. it was text overlay on my screensaver that was running. The second time the computer just froze. I wonder though if the kernel panic would have eventually happened.
    i keep noticing now that this iChat Agent slowly creeps up during the day to about 2GB Real Memory and 2.4 Virtual Memory. is this normal or causing the freeze??

  • Cropping Crashes Aperture 3 due to Video Card Memory Leak?

    Recently after updating from 3.1.1 to 3.1.2 I have been experiencing crashing issues whenever I perform the cropping action.  I see the death of wheel following hitting the return key.  There was one time when the master version itself vaporized into thin air.  I also noticed from the iStat Menus that the issue only occurs when the ATI Radeon HD 2400 memory usage has reach its full capcity.  I quite firefox to release some of the memory then Aperture functions normally until the memory runs out again.  I would then see the death of wheel once again when I crop.
    Is Aperture crashing because I need a more powerful video card or is it a memory leak issue with the application?
    Thanks!
    iMac (Early 2008)
    2.4 GHz Intel Core  Duo
    4 GB 800 MHz DDR2 SDRAM
    ATI Radeon HD 2400

    Frank Caggiano wrote:
    Lets see if we understand this correctly.
    You had a system on which Aperture was crashing when you used the crop tool. You then got a brand new system and the crop tool still causes  Aperture to crash. Am I correct so far?
    What are the common factors between the old and new systems as far as Aperture goes? Not knowing how you migrated from the old to the new the only  thing we can say for certain is that the library is identical.
    So have you run the basic library first aid steps? Another thing to try is to create a new empty library, put an image into it and try cropping it and see what happens.
    Let us know what happens after those steps,
    regards
    Frank Caggiano wrote: Lets see if we understand this correctly. You had a system on which Aperture was crashing when you used the crop tool. You then got a brand new system and the crop tool still causes  Aperture to crash. Am I correct so far? What are the common factors between the old and new systems as far as Aperture goes? Not knowing how you migrated from the old to the new the only  thing we can say for certain is that the library is identical. So have you run the basic library first aid steps? Another thing to try is to create a new empty library, put an image into it and try cropping it and see what happens. Let us know what happens after those steps, regards
    I migrated everything from the old computer to the new.  I also tried creating a new library and the issue persists.  I've also tried the First Aid options all of 'Repair Permission, Repair Database, and Rebuild Database' none of which worked.  I've also tried reinstalling Aperture and it crashes on the first crop.
    I will need to be editing many photos in a few weeks and now I'm stuck with this issue.. HELP!!!!!!!
    It seems like others have run into the same issue also but no solutions!!
    Why is aperture 3.1 crashing after cropping images, any one else?
    http://www.google.com.hk/url?sa=t&source=web&cd=1&ved=0CBsQFjAA&url=https%3A%2F% 2Fdiscussions.apple.com%2Fthread%2F2642858%3Fstart%3D15%26tstart%3D0&ei=axUETrC0 DM3ciAL23ZXZDQ&usg=AFQjCNE9Kv1N--m8mCyaRkyWi3E9d-0aXg&sig2=qzgEONrK7vLfWetcPT69y A

  • SQL Server 2008R2 SP2 Query optimizer memory leak ?

    It looks like we are facing a SQL Server 2008R2 queery optimizer memory leak.
    We have below version of SQL Server
    Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
     Jun 28 2012 08:36:30
     Copyright (c) Microsoft Corporation
     Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
    The instance is set MAximum memory tro 20 GB.
    After executing a huge query (2277 kB generated by IBM SPSS Clementine) with tons of CASE and a lot of AND/OR statements in the WHERE and CASE statements and muliple subqueries the server stops responding on Out of memory in the internal pool
    and the query optimizer has allocated all the memory.
    From Management Data Warehouse we can find that the query was executed at
    7.11.2014 22:40:57
    Then at 1:22:48 we recieve FAIL_PACE_ALLOCATION 1
    2014-11-08 01:22:48.70 spid75       Failed allocate pages: FAIL_PAGE_ALLOCATION 1
    And then tons of below errors
    2014-11-08 01:24:02.22 spid87      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:02.22 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:02.22 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:02.30 Server      Error: 17312, Severity: 16, State: 1.
    2014-11-08 01:24:02.30 Server      SQL Server is terminating a system or background task Fulltext Host Controller Timer Task due to errors in starting up the task (setup state 1).
    2014-11-08 01:24:02.22 spid74      Error: 701, Severity: 17, State: 123.
    2014-11-08 01:24:02.22 spid74      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:13.22 Server      Error: 17312, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:13.22 spid87      Error: 701, Severity: 17, State: 123.
    2014-11-08 01:24:13.22 spid87      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:13.22 spid63      Error: 701, Severity: 17, State: 130.
    2014-11-08 01:24:13.22 spid63      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:13.22 spid57      Error: 701, Severity: 17, State: 123.
    2014-11-08 01:24:13.22 spid57      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:13.22 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:18.26 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:24.43 spid81      Error: 701, Severity: 17, State: 123.
    2014-11-08 01:24:24.43 spid81      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:18.25 Server      Error: 18052, Severity: -1, State: 0. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:18.25 Server      BRKR TASK: Operating system error Exception 0x1 encountered.
    2014-11-08 01:24:30.11 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:30.11 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:35.18 spid57      Error: 701, Severity: 17, State: 131.
    2014-11-08 01:24:35.18 spid57      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:35.18 spid71      Error: 701, Severity: 17, State: 193.
    2014-11-08 01:24:35.18 spid71      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:35.18 Server      Error: 17312, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:35.41 Server      Error: 17312, Severity: 16, State: 1.
    2014-11-08 01:24:35.41 Server      SQL Server is terminating a system or background task SSB Task due to errors in starting up the task (setup state 1).
    2014-11-08 01:24:35.71 Server      Error: 17053, Severity: 16, State: 1.
    2014-11-08 01:24:35.71 Server      BRKR TASK: Operating system error Exception 0x1 encountered.
    2014-11-08 01:24:35.71 spid73      Error: 701, Severity: 17, State: 123.
    2014-11-08 01:24:35.71 spid73      There is insufficient system memory in resource pool 'internal' to run this query.
    2014-11-08 01:24:46.30 Server      Error: 17312, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:51.31 Server      Error: 17053, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:51.31 Server      Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    2014-11-08 01:24:51.31 Logon       Error: 18052, Severity: -1, State: 0. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
    Last error message is half an hour after the inital Out of memory at 2014-11-08 01:52:54.03. Then the Instance is completely shut down
    From the memory information in the error log we can see that all the memory is consumed by the QUERY_OPTIMIZER
    Buffer Pool                                   Value
    Committed                                   2621440
    Target                                      2621440
    Database                                     130726
    Dirty                                          3682
    In IO                                            
    0
    Latched                                          
    1
    Free                                           
    346
    Stolen                                      2490368
    Reserved                                          0
    Visible                                     2621440
    Stolen Potential                                  0
    Limiting Factor                                  17
    Last OOM Factor                                   0
    Last OS Error                                     0
    Page Life Expectancy                             28
    2014-11-08 01:22:48.90 spid75     
    Process/System Counts                         Value
    Available Physical Memory                29361627136
    Available Virtual Memory                 8691842715648
    Available Paging File                    51593969664
    Working Set                               628932608
    Percent of Committed Memory in WS               100
    Page Faults                                48955000
    System physical memory high                       1
    System physical memory low                        0
    Process physical memory low                       1
    Process virtual memory low                        0
    MEMORYCLERK_SQLOPTIMIZER (node 1)                KB
    VM Reserved                                       0
    VM Committed                                      0
    Locked Pages Allocated                            0
    SM Reserved                                       0
    SM Committed                                      0
    SinglePage Allocator                       19419712
    MultiPage Allocator                             128
    Memory Manager                                   KB
    VM Reserved                               100960236
    VM Committed                                 277664
    Locked Pages Allocated                     21483904
    Reserved Memory                                1024
    Reserved Memory In Use                            0
    On the other side MDW reports that the MEMORYCLERK_SQLOPTIMIZER increases since the execution of the query up to the point of OUTOF MEMORY, but the Average value is 54.7 MB during that period as can be seen on attached graph.
    We have encountered this issue already two times (every time the critical query is executed).

    Hi,
    This does seems to me kind of memory Leak and actually it is from SQL Optimizer which leaked memory from buffer pool so much that it did not had any memory to be allocated for new page.
    MEMORYCLERK_SQLOPTIMIZER (node 1)                KB
    VM Reserved                                       0
    VM Committed                                      0
    Locked Pages Allocated                            0
    SM Reserved                                       0
    SM Committed                                      0
    SinglePage Allocator                       19419712
    MultiPage Allocator                             128
    Can you post complete DBCC MEMORYSTATUS output which was generated in errorlog. Is this the only message in errorlog or there are some more messages before and after it.
    select (SUM(single_pages_kb)*1024)/8192 as total_stolen_pages, type
    from sys.dm_os_memory_clerks
    group by typeorder by total_stolen_pages desc
    and
    select sum(pages_allocated_count * page_size_in_bytes)/1024,type from sys.dm_os_memory_objects
    group by type
    If you can post the output of above two queries with dbcc memorystaus output on some shared drive and share location with us here. I would try to find out what is leaking memory.
    You can very well apply SQL Server 2008 r2 SP3 and see if this issue subsides but I am not sure whether this is fixed or actually it is a bug.
    Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
    My Technet Wiki Article
    MVP

  • 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

  • Memory leak in occi

    Hi ,
    I am working in Solaris 9 x86, with Oracle installed on it.I am getting memory leaks reported in occi library.
    Machine Details:
    Hostname: ALEXANDER
    Hostid: 2ed11ae9
    Release: 5.9
    Kernel architecture: i86pc
    Application architecture: i386
    Hardware provider:
    Domain:
    Kernel version: SunOS 5.9 Generic 112234-10 Nov 2003
    Database Version :
    Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options
    Compiler Version:
    CC: Sun C++ 5.5 Patch 113819-09 2004/08/03.
    Compiler arguments:
    CC -w -g Main.cpp -I$ORACLE_INCLUDE -o Main -lclntsh -locci
    I started with the demo apps for occi that comes with Oracle.
    After running the executables and checking with the bcheck utility I receive the errors due to memory leak.
    bcheck -all ./Main
    Actual leaks report (actual leaks: 2 total size: 43 bytes)
    <rtc> Memory Leak (mel):
    Found leaked block of size 31 bytes at address 0x812d6f8
    At time of allocation, the call stack was:
         [1] operator new() at 0xd7906718
         [2] operator new[]() at 0xd7905ab8
         [3] oracle::occi::StatementImpl::do_setSQL() at 0xda13e681
         [4] oracle::occi::StatementImpl::StatementImpl() at 0xda13e1bf
         [5] oracle::occi::ConnectionImpl::createStatement() at 0xda136863
         [6] occidml::executeSelectStatement() at line 46 in "Main.h"
         [7] main() at line 12 in "Main.cpp"
    <rtc> Memory Leak (mel):
    Found leaked block of size 12 bytes at address 0x8084c40
    At time of allocation, the call stack was:
         [1] operator new() at 0xd7906718
         [2] std::vector<OCIParam*,std::allocator<OCIParam*> >::__insert_aux() at 0xda145c19
         [3] std::vector<OCIParam*,std::allocator<OCIParam*> >::resize() at 0xda145443
         [4] oracle::occi::StatementImpl::initParamVec() at 0xda144e70
         [5] oracle::occi::ResultSetImpl::next() at 0xda146404
         [6] main() at line 15 in "Main.cpp"
    If any body needs more info , pls send me your email address so that I can send my source files.

    can you post this in the OCCI forum?

Maybe you are looking for