summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/DBI.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2001-09-17 22:04:17 +0000
committerMarc Laukien <marc@zeroc.com>2001-09-17 22:04:17 +0000
commit60f51d6688e98ed87d24e6e9d1f179ca5db8f07a (patch)
tree7c99579afb6e99ea7a76cc5e564db694bdc6d8aa /cpp/src/Freeze/DBI.cpp
parentfixes (diff)
downloadice-60f51d6688e98ed87d24e6e9d1f179ca5db8f07a.tar.bz2
ice-60f51d6688e98ed87d24e6e9d1f179ca5db8f07a.tar.xz
ice-60f51d6688e98ed87d24e6e9d1f179ca5db8f07a.zip
tons of fixes
Diffstat (limited to 'cpp/src/Freeze/DBI.cpp')
-rw-r--r--cpp/src/Freeze/DBI.cpp116
1 files changed, 76 insertions, 40 deletions
diff --git a/cpp/src/Freeze/DBI.cpp b/cpp/src/Freeze/DBI.cpp
index 4ea2d552ba0..fc8b1510083 100644
--- a/cpp/src/Freeze/DBI.cpp
+++ b/cpp/src/Freeze/DBI.cpp
@@ -11,6 +11,7 @@
#include <Freeze/DBI.h>
#include <Ice/Stream.h>
#include <sys/stat.h>
+#include <sstream>
using namespace std;
using namespace Ice;
@@ -31,7 +32,10 @@ Freeze::DBI::~DBI()
{
if (_db)
{
- _communicator->getLogger()->warning("database has not been closed");
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "\"" << _name << "\" has not been closed";
+ _communicator->getLogger()->warning(s.str());
}
}
@@ -47,8 +51,11 @@ Freeze::DBI::put(const std::string& key, const ::Ice::ObjectPtr& servant)
if(!_db)
{
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "\"" << _name << "\" has been closed";
DBException ex;
- ex.message = "Freeze::DB::open: database has been closed";
+ ex.message = s.str();
throw ex;
}
@@ -77,9 +84,11 @@ Freeze::DBI::put(const std::string& key, const ::Ice::ObjectPtr& servant)
ret = txn_begin(_dbenv, 0, &tid, 0);
if (ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "txn_begin: " << db_strerror(ret);
DBException ex;
- ex.message = "txn_begin: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
@@ -94,9 +103,11 @@ Freeze::DBI::put(const std::string& key, const ::Ice::ObjectPtr& servant)
ret = txn_commit(tid, 0);
if (ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "txn_commit: " << db_strerror(ret);
DBException ex;
- ex.message = "txn_commit: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
return; // We're done
@@ -110,9 +121,11 @@ Freeze::DBI::put(const std::string& key, const ::Ice::ObjectPtr& servant)
ret = txn_abort(tid);
if (ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "txn_abort: " << db_strerror(ret);
DBException ex;
- ex.message = "txn_abort: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
break; // Repeat
@@ -123,9 +136,11 @@ Freeze::DBI::put(const std::string& key, const ::Ice::ObjectPtr& servant)
//
// Error, run recovery
//
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "DB->put: " << db_strerror(ret);
DBException ex;
- ex.message = "DB->put: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
}
@@ -144,8 +159,11 @@ Freeze::DBI::get(const std::string& key)
if(!_db)
{
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "\"" << _name << "\" has been closed";
DBException ex;
- ex.message = "Freeze::DB::open: database has been closed";
+ ex.message = s.str();
throw ex;
}
@@ -204,12 +222,11 @@ Freeze::DBI::get(const std::string& key)
default:
{
- //
- // Error, run recovery
- //
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "DB->get: " << db_strerror(ret);
DBException ex;
- ex.message = "DB->get: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
}
@@ -227,8 +244,11 @@ Freeze::DBI::del(const std::string& key)
if(!_db)
{
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "\"" << _name << "\" has been closed";
DBException ex;
- ex.message = "Freeze::DB::open: database has been closed";
+ ex.message = s.str();
throw ex;
}
}
@@ -246,9 +266,11 @@ Freeze::DBI::close()
int ret = _db->close(_db, 0);
if(ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DB(\"" << _name << "\"): ";
+ s << "DB->close: " << db_strerror(ret);
DBException ex;
- ex.message = "DB->close: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
@@ -263,26 +285,26 @@ Freeze::DBEnvI::DBEnvI(const CommunicatorPtr& communicator, const PropertiesPtr&
_properties(properties),
_dbenv(0)
{
+ _directory = _properties->getProperty("Freeze.Directory");
+ if (_directory.empty())
+ {
+ _directory = ".";
+ }
+
int ret;
ret = db_env_create(&_dbenv, 0);
if (ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DBEnv(\"" << _directory << "\"): ";
+ s << "db_env_create: " << db_strerror(ret);
DBException ex;
- ex.message = "db_env_create: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
- _directory = _properties->getProperty("Freeze.Directory");
-
- const char* dir = 0;
- if (!_directory.empty())
- {
- dir = _directory.c_str();
- }
-
- ret = _dbenv->open(_dbenv, dir,
+ ret = _dbenv->open(_dbenv, _directory.c_str(),
DB_CREATE |
DB_INIT_LOCK |
DB_INIT_LOG |
@@ -293,9 +315,11 @@ Freeze::DBEnvI::DBEnvI(const CommunicatorPtr& communicator, const PropertiesPtr&
S_IRUSR | S_IWUSR);
if (ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DBEnv(\"" << _directory << "\"): ";
+ s << "DB_ENV->open: " << db_strerror(ret);
DBException ex;
- ex.message = "DB_ENV->open: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
}
@@ -304,7 +328,10 @@ Freeze::DBEnvI::~DBEnvI()
{
if (_dbenv)
{
- _communicator->getLogger()->warning("database environment object has not been closed");
+ ostringstream s;
+ s << "Freeze::DBEnv(\"" << _directory << "\"): ";
+ s << "\"" << _directory << "\" has not been closed";
+ _communicator->getLogger()->warning(s.str());
}
}
@@ -315,8 +342,11 @@ Freeze::DBEnvI::open(const string& name)
if(!_dbenv)
{
+ ostringstream s;
+ s << "Freeze::DBEnv(\"" << _directory << "\"): ";
+ s << "\"" << _directory << "\" has been closed";
DBException ex;
- ex.message = "Freeze::DBEnv::open: database environment has been closed";
+ ex.message = s.str();
throw ex;
}
@@ -332,18 +362,22 @@ Freeze::DBEnvI::open(const string& name)
ret = db_create(&db, _dbenv, 0);
if(ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DBEnv(\"" << _directory << "\"): ";
+ s << "db_create: " << db_strerror(ret);
DBException ex;
- ex.message = "db_create: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
ret = db->open(db, name.c_str(), 0, DB_BTREE, DB_CREATE | DB_THREAD, S_IRUSR | S_IWUSR);
if(ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DBEnv(\"" << _directory << "\"): ";
+ s << "DB->open: " << db_strerror(ret);
DBException ex;
- ex.message = "DB->open: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}
@@ -371,9 +405,11 @@ Freeze::DBEnvI::close()
int ret = _dbenv->close(_dbenv, 0);
if(ret != 0)
{
+ ostringstream s;
+ s << "Freeze::DBEnv(\"" << _directory << "\"): ";
+ s << "DB_ENV->close: " << db_strerror(ret);
DBException ex;
- ex.message = "DB_ENV->close: ";
- ex.message += db_strerror(ret);
+ ex.message = s.str();
throw ex;
}