Compatibility issues between Berkeley DB Java Edition and Berkeley DB

We are trying to use both Berkeley DB Java Edition and Berkeley DB (Java/C) in one of our projects. However, they share the common classes (i.e. EntryDingin.java), but with their own different impementation. Is there any reason that they have to share the same names/packages? Can we request to have the shared java classes going into different packages?
Thanks
Yao

Hello Yao,
You're correct and the DB and JE products were not designed to run under the same classloader in the same JVM. It is very unlikely that we'll be changing the package names, since that would be very disruptive and yet have no value for the overwhelming majority of users. We will note your request, however, for future reference.
The two workarounds I know of are:
1. Use a separate classloader for the use of each product.
2. Use a tool such as jarjar links (http://code.google.com/p/jarjar/) to rename the packages in one or both of the products.
Option 2 is not something we (the JE team members) have experience with, but it was used successfully by a JE user. The user also pointed out a bug in the jarjar tool to be aware of: http://code.google.com/p/jarjar/issues/detail?id=21
--mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Similar Messages

  • Compatibility issue between your power management system and Windows 8.1

    I have purchased a new Lenovo Ideapad S410 and have this problem.
           Compatibility issue between your power management system and Windows
           It also gives a message "Your PC ran into a problem and needs to restart. We're just collecting some error info, and then we'll restart for you. (100% complete)
           If you'd like to know more, you can search online later for this error:
    VIDEO DXGKRNL FATAL ERROR
    Please help! My laptop is only 5 days old.

    What model do you have? Can you post your MTM or model name?
    Sometimes these messages are a false alarm.

  • Adobe Flash IDE: Migration/Compatibility issues between Adobe Flash Professional CS3 and CS5

    Hi,
    Adobe Flash IDE: Adobe Flash CS3 Professional and Adobe Flash Professional CS5
    I am facing some  migration/compatibility issues between Adobe Flash CS3 Professional and Adobe  Flash Professional CS5:
    I am working on a project that has  been completely developed in CS3 earlier. When I am using CS5 (Flash Player 9 /  Flash Player 10) to compile the FLA files, it is creating some new issues like  some customized radio buttons are getting disappeared while viewing the SWF on a  web page etc.
    So, I would like to  know:
    1) Is there any  migration/compatibility issue between Adobe Flash CS3 Professional and Adobe  Flash Professional CS5?
    2) If yes: Is there any patch  available from Adobe for it?
    3) If no: What could be the causes  and the best possible solutions for it?
    Any help and support would be highly  appreciated. Many thanks in advance!
    Thanks & Regards
    Amit

    Apparently some people have issues, but I don't think it is across the board.  Here's a link to another recent posting that may or may not prove helpful to you...
    http://forums.adobe.com/thread/776615?tstart=60

  • Is there any Compatibility issues between Yosemite 10.10.2 and Adobe Elements 12 editor 12.0 or adobe DNG converter 8.1 ?

    Is there any Compatibility issues between Yosemite 10.10.2 and Adobe Elements 12 editor 12.0 or adobe DNG converter 8.1

    A Reminder for Mac Folks upgrading to Yosemite | Barbara's Sort-of-Tech Blog

  • Compatibility issue between your power management system and Windows,

    Compatibility issue between your power management system and Windows, and my system is Lenovo ACPI-Compliant Virtual Power Controller.

    What model do you have? Can you post your MTM or model name?
    Sometimes these messages are a false alarm.

  • Berkeley DB Java Edition and Java 1.4

    As a Berkeley DB Java Edition user we place a very high value on your input. We need your feedback regarding a product requirement for Java 1.5.
    As time goes on we find ourselves implementing more and more performance enhancements based on facilities found only Java 1.5, primarily in the java.util.concurrent package. When we make these enhancements, we currently also maintain support for Java 1.4 although not at the same level of performance. Maintaining and testing this dual mode operation is beginning to slow down our development process. We would like to move as quickly as possible to take advantage of Java 1.5 performance features, but we are constrained by maintaining support for Java 1.4.
    We are therefore planning to require Java 1.5 in the next major release of Berkeley DB Java Edition. Before finalizing this plan, we need your input on whether Java 1.4 support is important to you. Please let us know what your needs are by replying to this forum message.
    Thanks.
    The Java Edition team

    Morgan,
    Yes, we currently plan to only offer replication for Java 1.5. Our motivations are split between the speed consideration and the codeline issues. We've seen better performance with 1.5. Also taking full advantage of the type safety and concurrent support in 1.5 can end up affecting implementation choices significantly, and can make 1.4 code and 1.5 code diverge a lot.
    As for bug fixing on the 1.4 releases, we don't yet have an official plan. We care very much about supporting our open source users and have been able to provide backwards patches where critical in the past. However, the cost of backporting between 1.5 and 1.4 may be high for some bug fixes, and we'll probably have to decide case by case.
    Regards,
    Linda

  • Berkeley DB Java Edition and Amazon AWS/EC2, EBS

    In a previous OTN thread titled [BerkeleyDB and Amazon EC2/S3|http://forums.oracle.com/forums/thread.jspa?messageID=2627679&tstart=0] questions were raised about using Berkeley DB Java Edition on AWS/EC2. Specifically,
    (1) Does JE work on AWS/EC2, and
    (2) Can S3 be used as a persistent store for JE.
    To follow up on this, recently I have done some work validating JE on AWS and am happy to report that it works fine (there should be no surprise there). I have run it under 32b and 64b Ubuntu distros with Java 6, but I have no reason to think that it doesn't work on other platforms.
    On the second question, I did no work with S3 as a persistent store. Rather, I ran JE with both the Instance Local Storage and with an EBS volume as Environment storage. In the Instance Local Storage case, AWS/EC2 makes no guarantees of durability if the instance fails. In the EBS case, the durability guarantees are much stronger. Both of these storage mechanisms worked fine with JE.
    I call attention to the performance that I observed with EBS on an m1.large instance type. Raw write/fsync operations were on the order of 1.99 msec which is quite fast. A discussion of this can be found in this [AWS Forum thread|http://developer.amazonwebservices.com/connect/thread.jspa?messageID=111957&#111957].
    Charles Lamb

    Morgan,
    Yes, we currently plan to only offer replication for Java 1.5. Our motivations are split between the speed consideration and the codeline issues. We've seen better performance with 1.5. Also taking full advantage of the type safety and concurrent support in 1.5 can end up affecting implementation choices significantly, and can make 1.4 code and 1.5 code diverge a lot.
    As for bug fixing on the 1.4 releases, we don't yet have an official plan. We care very much about supporting our open source users and have been able to provide backwards patches where critical in the past. However, the cost of backporting between 1.5 and 1.4 may be high for some bug fixes, and we'll probably have to decide case by case.
    Regards,
    Linda

  • Berkeley DB Java Edition and Android 0.9

    The steps for using JE with Android have changed with Android 0.9 Beta. The revised HOWTO can be found at:
    [http://blogs.oracle.com/charlesLamb/2008/09/berkeley_db_java_edition_and_a_1.html|http://blogs.oracle.com/charlesLamb/2008/09/berkeley_db_java_edition_and_a_1.html]
    Thanks to Tao for working on this.
    Charles Lamb

    Morgan,
    Yes, we currently plan to only offer replication for Java 1.5. Our motivations are split between the speed consideration and the codeline issues. We've seen better performance with 1.5. Also taking full advantage of the type safety and concurrent support in 1.5 can end up affecting implementation choices significantly, and can make 1.4 code and 1.5 code diverge a lot.
    As for bug fixing on the 1.4 releases, we don't yet have an official plan. We care very much about supporting our open source users and have been able to provide backwards patches where critical in the past. However, the cost of backporting between 1.5 and 1.4 may be high for some bug fixes, and we'll probably have to decide case by case.
    Regards,
    Linda

  • Is there a compatibility issue between Adobe Camera Raw, CS5, and Windows 8.1?

    I have a new computer with Windows 8.1.  I installed Photoshop CS5 (which runs fine under Windows 7) but now after editing images in camera raw and clicking on the Open Images button, it takes several attempts to pass the images on to open in Photoshop CS5.  Is there a fix for this compatibility problem?

    Many thanks Catherina for your reply.
    Actually I have now discovered the cause of the problem. My speakers are Boston Acoustics BA735 digital speakers. I discovered that there was an Analog out put from the sound card and by changing the speaker connections they are now working albeit in Analog whereas previously they were connected Digitally.
    The new drivers supplied by Microsoft have obviously switched the output to analog.
    Are there any Drivers available which would allow me to revert to normal digital working.
    Thanks again
    Waffler (I hate that name but I choose it)

  • Compatibility issue between Netop Vision 7.2 and Lenovo System Update 4.01

    I am just posting this here as an FYI.
    It seems that if Vision 7.2 (perhaps older versions also) is installed, Lenovo System Update can no longer download updates. The list of updates is still downloaded and the updates applicable to the system are shown, but the actual download fails.
    I suspect it may be related to how Vision 7 modifies the network stack in Windows to block web browsing. (Note that I didn't have any issues actually browsing the web with a browser, only downloading in TVSU failed).
    I have a more detailed writeup on my blog: http://svenaelterman.wordpress.com/2011/12/20/software-interplay-issues-netop-vision-7-2-and-lenovo-...

    I am just posting this here as an FYI.
    It seems that if Vision 7.2 (perhaps older versions also) is installed, Lenovo System Update can no longer download updates. The list of updates is still downloaded and the updates applicable to the system are shown, but the actual download fails.
    I suspect it may be related to how Vision 7 modifies the network stack in Windows to block web browsing. (Note that I didn't have any issues actually browsing the web with a browser, only downloading in TVSU failed).
    I have a more detailed writeup on my blog: http://svenaelterman.wordpress.com/2011/12/20/software-interplay-issues-netop-vision-7-2-and-lenovo-...

  • Can Berkeley DB Java Edition read BDB created with C

    Hi,
    If I use C to create a BDB database and store the values. Can I use Berkeley DB Java Edition to open and read the content? I am trying to do search and reversed order display and it seems like only DB java Edition has that feature.
    Is that correct?
    Thanks for all your help and suggestion.
    juan

    Hello,
    You will not be able to do that. BDB Java Edition and Berkeley DB are not the same product.
    Thanks,
    Sandra

  • Why can't I use WebCT chat with my computer?  I get the 'spiral of death' every time I try to type in my chat.  I have a feeling it has to do with compatibility issues between Java and Tiger.

    Why can't I use WebCT chat with my computer?  I get the 'spiral of death' every time I try to type in my chat.  I have a feeling it has to do with compatibility issues between Java and Tiger.

    Hi Elizabeth,
    Do your Mac meet any of these requirements?
    http://www.wvnet.edu/services/webct/requirements.html
    From this it appears to be PC only!???
    http://sourceforge.net/projects/awebctcclient/files/Pancake%20%28it%20own%20proj ect%20now%29/Pancake%20Console%20V1.0.0/PancakeConsole-1.0.0-src.zip/download
    Can you provide any more info on which bersion or file you have?
    Can you tell us why you need this for your use?

  • Berkeley DB Java Edition (JE) and JRuby Interoperability

    I finally got around to doing a quick test of calling Berkeley DB Java Edition (JE) from JRuby (JRuby is a 100% pure-Java implementation of Ruby).
    Before we get to JE and JRuby you probably want to know the answer to this question: "Why you would want to run Ruby on a JVM?" The answer is threefold:
    1. Ruby Performance. A large amount of effort has been put into tuning contemporary JVMs (e.g. Hotspot, Java 6, etc.) and Ruby programmers (through JRuby) can benefit from these tuning efforts. The JRuby guys have set a goal to make JRuby the fastest Ruby implementation available and Sun is certainly throwing their weight behind that effort.
    2. Portability. JRuby is a Ruby interpreter that runs anywhere a Java 5 JVM runs. You download it as a single tar.gz and it will run pretty much anywhere.
    3. Legacy Code. JRuby makes legacy Java apps and libraries available to Ruby programmers (did you ever think you'd see the word "legacy" next to the word "Java"?).
    JE interoperability with JRuby is important because it means that Ruby programmers now have a simple, embeddable, ACID storage engine (JE) available to them.
    To test this interoperability, I cobbled together a simple Ruby test program which does the following:
    * Opens an Environment, Database, and Transaction
    * Creates 10 records with keys 1..10 and marshaled Ruby Time instances as the corresponding data. This uses the Ruby Marshal package for the data binding and the JE Integer binding on the key side. There's no reason why you couldn't use different marshaling packages or methods for keys and data.
    * Commits the transaction,
    * Performs a Cursor scan to read those 10 records and prints out the Time instances, and
    * Searches for and reads the record with key 5 (an arbitrary key) and prints out the Time instance that is the corresponding data
    By the way, hats off to the JRuby developers: all of this code "just worked", out of the box, and most of my two hour investment was spent learning enough basic Ruby to make it all work. If you already know Ruby and JE, then demonstrating this interoperability would take you all of about 10 minutes.
    This was all done at the "base API" level of JE and no modifications to JE were required. I used Transactions in my code, but there's no reason that you need to. Mark and I have been talking about how to integrate JE's Direct Persistence Layer (DPL) with JRuby and we think it can be done with some remodularization of some of the DPL code. This is exciting because it would provide POJO ACID persistence to Ruby programmers.
    Linda and I have been talking about whether it makes sense to possibly use Ruby as a scripting platform for JE in the future. Given how easy it was to bring up JE and JRuby, this certainly warrants some further thought.
    The Ruby code and corresponding output is shown below. By the way, if you see something that I didn't do "The Ruby Way", feel free to let me know.
    I'd love to hear about your experiences with JE and JRuby. Feel free to email me a charles.lamb at <theobviousdomain dot com>.
    require 'java'
    module JESimple
      require 'date'
      # Include all the Java and JE classes that we need.
      include_class 'java.io.File'
      include_class 'com.sleepycat.je.Cursor'
      include_class 'com.sleepycat.je.Database'
      include_class 'com.sleepycat.je.DatabaseConfig'
      include_class 'com.sleepycat.je.DatabaseEntry'
      include_class 'com.sleepycat.je.Environment'
      include_class 'com.sleepycat.je.EnvironmentConfig'
      include_class 'com.sleepycat.je.OperationStatus'
      include_class 'com.sleepycat.je.Transaction'
      include_class 'com.sleepycat.bind.tuple.IntegerBinding'
      include_class 'com.sleepycat.bind.tuple.StringBinding'
      # Create a JE Environment and Database.  Make them transactional.
      envConf = EnvironmentConfig.new()
      envConf.setAllowCreate(true)
      envConf.setTransactional(true)
      f = File.new('/export/home/cwl/work-jruby/JE')
      env = Environment.new(f, envConf);
      dbConf = DatabaseConfig.new()
      dbConf.setAllowCreate(true)
      dbConf.setSortedDuplicates(true)
      dbConf.setTransactional(true)
      db = env.openDatabase(nil, "fooDB", dbConf)
      # Create JE DatabaseEntry's for the key and data.
      key = DatabaseEntry.new()
      data = DatabaseEntry.new()
      # Begin a transaction
      txn = env.beginTransaction(nil, nil)
      # Write some simple marshaled strings to the database.  Use Ruby
      # Time just to demonstrate marshaling a random instance into JE.
      for i in (1..10)
        # For demonstration purposes, use JE's Binding for the key and
        # Ruby's Marshal package for the data.  There's no reason you
        # couldn't use JE's bindings for key and data or visa versa or
        # some other completely different binding.
        IntegerBinding.intToEntry(i, key)
        StringBinding.stringToEntry(Marshal.dump(Time.at(i * 3600 * 24)),
                                    data)
        status = db.put(txn, key, data)
        if (status != OperationStatus::SUCCESS)
          puts "Funky status on put #{status}"
        end
      end
      txn.commit()
      # Read back all of the records with a cursor scan.
      puts "Cursor Scan"
      c = db.openCursor(nil, nil)
      while (true) do
        status = c.getNext(key, data, nil)
        if (status != OperationStatus::SUCCESS)
          break
        end
        retKey = IntegerBinding.entryToInt(key)
        retData = Marshal.load(StringBinding.entryToString(data))
        dow =
        puts "#{retKey} => #{retData.strftime('%a %b %d')}"
      end
      c.close()
      # Read back the record with key 5.
      puts "\nSingle Record Retrieval"
      IntegerBinding.intToEntry(5, key)
      status = db.get(nil, key, data, nil)
      if (status != OperationStatus::SUCCESS)
        puts "Funky status on get #{status}"
      end
      retData = Marshal.load(StringBinding.entryToString(data))
      puts "5 => #{retData.strftime('%a %b %d')}"
      db.close
      env.close
    end
    Cursor Scan
    1 => Fri Jan 02
    2 => Sat Jan 03
    3 => Sun Jan 04
    4 => Mon Jan 05
    5 => Tue Jan 06
    6 => Wed Jan 07
    7 => Thu Jan 08
    8 => Fri Jan 09
    9 => Sat Jan 10
    10 => Sun Jan 11
    Single Record Retrieval
    5 => Tue Jan 06

    In my previous post (Berkeley DB Java Edition in JRuby), I showed an example of calling JE's base API layer and mentioned that Mark and I had been thinking about how to use the DPL from JRuby. Our ideal is to be able to define classes in Ruby, annotate those class definitions with DPL-like annotations, and have the JE DPL store them. There are a number of technical hurdles to overcome before we can do this. For instance, Ruby classes defined in JRuby do not map directly to underlying Java classes; instead they all appear as generic RubyObjects to a Java method. Granted, it would be possible for the DPL to fish out all of the fields from these classes using reflection, but presently it's just not set up to do that (hence the modification to the DPL that I spoke about in my previous blog entry). Furthermore, unlike Java, Ruby allows classes to change on the fly (add/remote new fields and methods) causing more heartburn for the DPL unless we required that only frozen Ruby classes could be stored persistently.
    On thinking about this some more, we realized that there may be a way to use the DPL from JRuby, albeit with some compromises. The key to this is that in JRuby, if a Java instance is passed back to the "Ruby side" (e.g. through a return value or by calling the constructor for a Java class), it remains a Java instance, even when passed around in JRuby (and eventually passed back into the "Java side"). So what if we require all persistent classes to be defined (i.e. annotated) on the Java side? That buys us the standard DPL annotations (effectively the DDL), freezes the classes that the DPL sees, and still lets us benefit from the POJO persistence of the DPL. All of this can be done without modification to JE or the DPL using the currently available release. I cooked up a quick example that builds on the standard "Person" example in the DPL doc and included the code below.
    require 'java'
    module DPL
      require 'date'
      # Include all the Java and JE classes that we need.
      include_class 'java.io.File'
      include_class 'com.sleepycat.je.Environment'
      include_class 'com.sleepycat.je.EnvironmentConfig'
      include_class 'com.sleepycat.persist.EntityCursor'
      include_class 'com.sleepycat.persist.EntityIndex'
      include_class 'com.sleepycat.persist.EntityStore'
      include_class 'com.sleepycat.persist.PrimaryIndex'
      include_class 'com.sleepycat.persist.SecondaryIndex'
      include_class 'com.sleepycat.persist.StoreConfig'
      include_class 'com.sleepycat.persist.model.Entity'
      include_class 'com.sleepycat.persist.model.Persistent'
      include_class 'com.sleepycat.persist.model.PrimaryKey'
      include_class 'com.sleepycat.persist.model.SecondaryKey'
      include_class 'com.sleepycat.persist.model.DeleteAction'
      include_class 'persist.Person'
      include_class 'persist.PersonExample'
      # Create a JE Environment and Database.  Make them transactional.
      envConf = EnvironmentConfig.new()
      envConf.setAllowCreate(true)
      envConf.setTransactional(true)
      f = File.new('/export/home/cwl/work-jruby/JE')
      env = Environment.new(f, envConf);
      # Open a transactional entity store.
      storeConfig = StoreConfig.new();
      storeConfig.setAllowCreate(true);
      storeConfig.setTransactional(true);
      store = EntityStore.new(env, "PersonStore", storeConfig);
      class PersonAccessor
        attr_accessor :personBySsn, :personByParentSsn
        def init(store)
          stringClass = java.lang.Class.forName('java.lang.String')
          personClass = java.lang.Class.forName('persist.Person')
          @personBySsn = store.getPrimaryIndex(stringClass, personClass)
          @personByParentSsn =
            store.getSecondaryIndex(@personBySsn, stringClass, "parentSsn");
        end
      end
      dao = PersonAccessor.new(store)
      dao.init(store)
      personBySsn = dao.personBySsn
      person = Person.new('Bob Smith', '111-11-1111', nil)
      personBySsn.put(person);
      person = Person.new('Mary Smith', '333-33-3333', '111-11-1111')
      personBySsn.put(person);
      person = Person.new('Jack Smith', '222-22-2222', '111-11-1111')
      personBySsn.put(person);
      # Get Bob by primary key using the primary index.
      bob = personBySsn.get("111-11-1111")
      puts "Lookup of Bob => #{bob.name}, #{bob.ssn}"
      children = dao.personByParentSsn.subIndex(bob.ssn).entities()
      puts "\nRetrieving children of Bob"
      while (true) do
        child = children.next()
        break if child == nil
        puts "#{child.name}, #{child.ssn}"
      end
      children.close()
      store.close
      env.close
    end

  • How do I fix the compatibility issue between my iPhone 4S with iOS 7 and my Pioneer car stereo? There was no problem with iOS 6, but now I get a message saying "this device is not compatible" and so I can't use Netflix for example. How do I fix it?

    How do I fix the compatibility issue between my iPhone 4S with iOS 7 and my Pioneer car stereo? There was no problem with iOS 6, but now I get a message saying "this device is not compatible" and so I can't use Netflix for example. How do I fix it?

    This is a typical response from the manufacturer. Did you try the fix that Lawrence mentioned. When Apple or any other phone manufacturer update phone software, they have the latest Bluetooth installed. It is usually the problem with the radio manufacturer that they devices are using the older Bluetooth protocols. You can try this support document http://support.apple.com/kb/TS3581 and see if anything there helps, but generally it requires the radio manufacturer to update their firmware.

  • Berkeley DB Java Edition 3.3.69 is available

    Berkeley DB Java Edition (JE) 3.3.69 is now available for download. The release contains a number of bug fixes, some to problems posted on the OTN forum. The full list of changes may be found in the change log.
    <br>
    <br>
    There is one critical bug fix in this release, described in the change log as follows:
    <br>
    <br>
    "Fix a bug that prevents opening an Environment as read-only under certain circumstances, or causes queries in a read-only Environment to return out of date, and possibly transactionally incorrect, data. The LogFileNotFoundException may be thrown when the problem occurs. [#16368]"
    <br>
    <br>
    This is a fix to a bug that was introduced in JE 3.3.62. If you are currently using 3.3.62 and you are opening the Environment read-only or using the DbDump utility (which opens the Environment read-only), then we strongly recommend that you upgrade to JE 3.3.69.
    <br>
    <br>
    The corresponding Maven POM will be available in a few days.
    <br>
    <br>
    If you are using the JE wrapper plugin for your own Eclipse plugin development AND you open the Environment read-only, you should update that package through
    download.oracle.com/berkeley-db/eclipse. Other DPL Assistant users can consider the update to be optional.

    Morgan,
    Yes, we currently plan to only offer replication for Java 1.5. Our motivations are split between the speed consideration and the codeline issues. We've seen better performance with 1.5. Also taking full advantage of the type safety and concurrent support in 1.5 can end up affecting implementation choices significantly, and can make 1.4 code and 1.5 code diverge a lot.
    As for bug fixing on the 1.4 releases, we don't yet have an official plan. We care very much about supporting our open source users and have been able to provide backwards patches where critical in the past. However, the cost of backporting between 1.5 and 1.4 may be high for some bug fixes, and we'll probably have to decide case by case.
    Regards,
    Linda

Maybe you are looking for