diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/INSTALL.AIX | 7 | ||||
-rw-r--r-- | cpp/INSTALL.FREEBSD | 6 | ||||
-rw-r--r-- | cpp/INSTALL.HP-UX | 8 | ||||
-rw-r--r-- | cpp/INSTALL.LINUX | 6 | ||||
-rw-r--r-- | cpp/INSTALL.MACOSX | 6 | ||||
-rw-r--r-- | cpp/INSTALL.SOLARIS | 6 | ||||
-rw-r--r-- | cpp/INSTALL.WINDOWS | 2 | ||||
-rw-r--r-- | cpp/src/Freeze/EvictorIteratorI.cpp | 11 | ||||
-rw-r--r-- | cpp/src/Freeze/IndexI.cpp | 11 | ||||
-rw-r--r-- | cpp/src/Freeze/MapI.cpp | 79 | ||||
-rw-r--r-- | cpp/src/Freeze/ObjectStore.cpp | 15 | ||||
-rw-r--r-- | cpp/src/Freeze/Util.cpp | 4 | ||||
-rw-r--r-- | cpp/src/Freeze/Util.h | 4 |
13 files changed, 58 insertions, 107 deletions
diff --git a/cpp/INSTALL.AIX b/cpp/INSTALL.AIX index c7ee7b64a54..29fb8a7ed8e 100644 --- a/cpp/INSTALL.AIX +++ b/cpp/INSTALL.AIX @@ -26,7 +26,7 @@ Third-party libraries Ice has dependencies on a number of third-party libraries: -- Berkeley DB 4.2.52 or 4.3.27 with C++ support enabled, and built +- Berkeley DB 4.3.28 with C++ support enabled, and built with a C++ compiler compatible with the one you are using. You can download the Berkeley DB source distribution from @@ -45,11 +45,6 @@ Ice has dependencies on a number of third-party libraries: (plus --prefix=<dir> and/or --enable-java if you like) $ gmake - Note that Ice for Java is not compatible with version 4.3, therefore - if you intend to use Ice for Java with Berkeley DB, you must use - version 4.2.52 and obtain a Berkeley DB patch (see INSTALL in your - IceJ distribution). - - OpenSSL For 32 bit builds, we recommend openssl-0.9.6m-2 from the "AIX diff --git a/cpp/INSTALL.FREEBSD b/cpp/INSTALL.FREEBSD index 31e9ad0d9f2..2725c5b0c6a 100644 --- a/cpp/INSTALL.FREEBSD +++ b/cpp/INSTALL.FREEBSD @@ -20,11 +20,7 @@ Third-party libraries Ice has dependencies on a number of third-party libraries: -- Berkeley DB 4.2.52 or 4.3.27 configured with --enable-cxx. - - Note that Ice for Java is not compatible with version 4.3, therefore - if you intend to use Ice for Java with Berkeley DB, you must use - version 4.2.52 and the option --enable-java. +- Berkeley DB 4.3.28 configured with --enable-cxx. - OpenSSL 0.96 or 0.97 diff --git a/cpp/INSTALL.HP-UX b/cpp/INSTALL.HP-UX index ff7d2702d88..43e441caf2d 100644 --- a/cpp/INSTALL.HP-UX +++ b/cpp/INSTALL.HP-UX @@ -31,8 +31,8 @@ Third-party libraries Ice has dependencies on a number of third-party libraries: -- Berkeley DB 4.2.52 or 4.3.27 with C++ support enabled, and built - with a C++ compiler compatible with the one you are using. +- Berkeley DB 4.3.28 with C++ support enabled, and built with a + C++ compiler compatible with the one you are using. You can download the Berkeley DB source distribution from http://www.sleepycat.com/download @@ -53,10 +53,6 @@ Ice has dependencies on a number of third-party libraries: (plus --prefix=<dir> and/or --enable-java if you like) $ gmake - Note that Ice for Java is not compatible with version 4.3, therefore - if you intend to use Ice for Java with Berkeley DB, you must use - version 4.2.52 and the option --enable-java. - - OpenSSL 0.9.7, which can be downloaded from http://www.openssl.org We do not recommend to use the binary distribution available from diff --git a/cpp/INSTALL.LINUX b/cpp/INSTALL.LINUX index 5d73e83a9f5..a3578cdd9bc 100644 --- a/cpp/INSTALL.LINUX +++ b/cpp/INSTALL.LINUX @@ -22,15 +22,11 @@ Third-party libraries Ice has dependencies on a number of third-party libraries: -- Berkeley DB 4.2.52 or 4.3.27 configured with --enable-cxx. +- Berkeley DB 4.3.28 configured with --enable-cxx. You can download the Berkeley DB source distribution from http://www.sleepycat.com/download - Note that Ice for Java is not compatible with version 4.3, therefore - if you intend to use Ice for Java with Berkeley DB, you must use - version 4.2.52 and the option --enable-java. - If you are using RedHat 9 and do not want to use NPTL (New Posix Thread Library), set LD_ASSUME_KERNEL=2.4.1 before running configure. diff --git a/cpp/INSTALL.MACOSX b/cpp/INSTALL.MACOSX index 376b4077e3c..03a5254460f 100644 --- a/cpp/INSTALL.MACOSX +++ b/cpp/INSTALL.MACOSX @@ -20,15 +20,11 @@ Third-party libraries Ice has dependencies on a number of third-party libraries: -- Berkeley DB 4.2.52 or 4.3.27 configured with --enable-cxx. +- Berkeley DB 4.3.28 configured with --enable-cxx. You can download the Berkeley DB source distribution from http://www.sleepycat.com/download - Note that Ice for Java is not compatible with version 4.3, therefore - if you intend to use Ice for Java with Berkeley DB, you must use - version 4.2.52 and the option --enable-java. - - expat 1.9x. You can download expat from http://sourceforge.net/projects/expat/ diff --git a/cpp/INSTALL.SOLARIS b/cpp/INSTALL.SOLARIS index 757d600d6aa..7d977b5110d 100644 --- a/cpp/INSTALL.SOLARIS +++ b/cpp/INSTALL.SOLARIS @@ -36,13 +36,9 @@ Third-party libraries Ice has dependencies on a number of third-party libraries: -- Berkeley DB 4.2.52 or 4.3.27 configured with --enable-cxx, and built +- Berkeley DB 4.3.28 configured with --enable-cxx, and built with a C++ compiler compatible with the one you are using. - Note that Ice for Java is not compatible with version 4.3, therefore - if you intend to use Ice for Java with Berkeley DB, you must use - version 4.2.52 and the option --enable-java. - - expat 1.9x - OpenSSL 0.97 diff --git a/cpp/INSTALL.WINDOWS b/cpp/INSTALL.WINDOWS index 23946a77391..be1d37911f6 100644 --- a/cpp/INSTALL.WINDOWS +++ b/cpp/INSTALL.WINDOWS @@ -39,7 +39,7 @@ Third-party libraries Ice has dependencies on a number of third-party libraries: - STLport 4.5 or later (required for Visual C++ 6.0) -- Berkeley DB 4.2.52 +- Berkeley DB 4.3.28 - expat 1.9x - OpenSSL 0.96 or 0.97 - bzip2 1.0 diff --git a/cpp/src/Freeze/EvictorIteratorI.cpp b/cpp/src/Freeze/EvictorIteratorI.cpp index efc3cb26d37..fdc1ad7ee23 100644 --- a/cpp/src/Freeze/EvictorIteratorI.cpp +++ b/cpp/src/Freeze/EvictorIteratorI.cpp @@ -150,9 +150,16 @@ Freeze::EvictorIteratorI::nextBatch() } break; } - catch(const DbMemoryException& dx) + catch(const DbException& dx) { - handleMemoryException(dx, _key, dbKey); + if(dx.get_errno() == DB_BUFFER_SMALL) + { + handleMemoryException(dx, _key, dbKey); + } + else + { + throw dx; + } } } } diff --git a/cpp/src/Freeze/IndexI.cpp b/cpp/src/Freeze/IndexI.cpp index 1b6ee29b84e..e8d0cbc86e8 100644 --- a/cpp/src/Freeze/IndexI.cpp +++ b/cpp/src/Freeze/IndexI.cpp @@ -100,9 +100,16 @@ Freeze::IndexI::untypedFindFirst(const Key& bytes, Int firstN) const } break; // for(;;) } - catch(const DbMemoryException& dx) + catch(const DbException& dx) { - handleMemoryException(dx, pkey, pdbKey); + if(dx.get_errno() == DB_BUFFER_SMALL) + { + handleMemoryException(dx, pkey, pdbKey); + } + else + { + throw dx; + } } } } diff --git a/cpp/src/Freeze/MapI.cpp b/cpp/src/Freeze/MapI.cpp index 0766bc034d0..0bfbbd0b008 100644 --- a/cpp/src/Freeze/MapI.cpp +++ b/cpp/src/Freeze/MapI.cpp @@ -299,39 +299,6 @@ Freeze::IteratorHelperI::get(const Key*& key, const Value*& value) const throw DatabaseException(__FILE__, __LINE__); } } - catch(const ::DbMemoryException dx) - { - bool resizing = false; - if(dbKey.get_size() > dbKey.get_ulen()) - { - // - // Let's resize key - // - _key.resize(dbKey.get_size()); - initializeOutDbt(_key, dbKey); - resizing = true; - } - - if(dbValue.get_size() > dbValue.get_ulen()) - { - // - // Let's resize value - // - _value.resize(dbValue.get_size()); - initializeOutDbt(_value, dbValue); - resizing = true; - } - - if(!resizing) - { - // - // Real problem - // - DatabaseException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; - } - } catch(const ::DbDeadlockException& dx) { if(_tx != 0) @@ -345,9 +312,16 @@ Freeze::IteratorHelperI::get(const Key*& key, const Value*& value) const } catch(const ::DbException& dx) { - DatabaseException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; + if(dx.get_errno() == DB_BUFFER_SMALL) + { + handleMemoryException(dx, _key, dbKey, _value, dbValue); + } + else + { + DatabaseException ex(__FILE__, __LINE__); + ex.message = dx.what(); + throw ex; + } } } } @@ -409,26 +383,6 @@ Freeze::IteratorHelperI::get() const throw DatabaseException(__FILE__, __LINE__); } } - catch(const ::DbMemoryException dx) - { - if(dbKey.get_size() > dbKey.get_ulen()) - { - // - // Let's resize key - // - _key.resize(dbKey.get_size()); - initializeOutDbt(_key, dbKey); - } - else - { - // - // Real problem - // - DatabaseException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; - } - } catch(const ::DbDeadlockException& dx) { if(_tx != 0) @@ -442,9 +396,16 @@ Freeze::IteratorHelperI::get() const } catch(const ::DbException& dx) { - DatabaseException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; + if(dx.get_errno() == DB_BUFFER_SMALL) + { + handleMemoryException(dx, _key, dbKey); + } + else + { + DatabaseException ex(__FILE__, __LINE__); + ex.message = dx.what(); + throw ex; + } } } } diff --git a/cpp/src/Freeze/ObjectStore.cpp b/cpp/src/Freeze/ObjectStore.cpp index a8cc39c9079..00d244f0308 100644 --- a/cpp/src/Freeze/ObjectStore.cpp +++ b/cpp/src/Freeze/ObjectStore.cpp @@ -336,10 +336,6 @@ Freeze::ObjectStore::load(const Identity& ident) } break; // for(;;) } - catch(const DbMemoryException& dx) - { - handleMemoryException(dx, value, dbValue); - } catch(const DbDeadlockException&) { if(_evictor->deadlockWarning()) @@ -354,9 +350,14 @@ Freeze::ObjectStore::load(const Identity& ident) } catch(const DbException& dx) { - DatabaseException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; + if(dx.get_errno() == DB_BUFFER_SMALL) + { + handleMemoryException(dx, value, dbValue); + } + else + { + throw dx; + } } } diff --git a/cpp/src/Freeze/Util.cpp b/cpp/src/Freeze/Util.cpp index e3d86328e58..6df4de7b5f0 100644 --- a/cpp/src/Freeze/Util.cpp +++ b/cpp/src/Freeze/Util.cpp @@ -15,7 +15,7 @@ using namespace Ice; using namespace std; void -Freeze::handleMemoryException(const DbMemoryException& dx, Key& key, Dbt& dbKey) +Freeze::handleMemoryException(const DbException& dx, Key& key, Dbt& dbKey) { if(dbKey.get_size() > dbKey.get_ulen()) { @@ -40,7 +40,7 @@ Freeze::handleMemoryException(const DbMemoryException& dx, Key& key, Dbt& dbKey) } void -Freeze::handleMemoryException(const DbMemoryException& dx, Key& key, Dbt& dbKey, +Freeze::handleMemoryException(const DbException& dx, Key& key, Dbt& dbKey, Value& value, Dbt& dbValue) { bool resized = false; diff --git a/cpp/src/Freeze/Util.h b/cpp/src/Freeze/Util.h index caaf24bf229..3d972f5433e 100644 --- a/cpp/src/Freeze/Util.h +++ b/cpp/src/Freeze/Util.h @@ -49,10 +49,10 @@ initializeOutDbt(std::vector<Ice::Byte>& v, Dbt& dbt) } void -handleMemoryException(const DbMemoryException&, Key&, Dbt&); +handleMemoryException(const DbException&, Key&, Dbt&); void -handleMemoryException(const DbMemoryException&, Key&, Dbt&, Value&, Dbt&); +handleMemoryException(const DbException&, Key&, Dbt&, Value&, Dbt&); } |