summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/INSTALL.AIX7
-rw-r--r--cpp/INSTALL.FREEBSD6
-rw-r--r--cpp/INSTALL.HP-UX8
-rw-r--r--cpp/INSTALL.LINUX6
-rw-r--r--cpp/INSTALL.MACOSX6
-rw-r--r--cpp/INSTALL.SOLARIS6
-rw-r--r--cpp/INSTALL.WINDOWS2
-rw-r--r--cpp/src/Freeze/EvictorIteratorI.cpp11
-rw-r--r--cpp/src/Freeze/IndexI.cpp11
-rw-r--r--cpp/src/Freeze/MapI.cpp79
-rw-r--r--cpp/src/Freeze/ObjectStore.cpp15
-rw-r--r--cpp/src/Freeze/Util.cpp4
-rw-r--r--cpp/src/Freeze/Util.h4
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&);
}