#!/usr/local/bin/perl

use strict;
use warnings;
use Sleepycat::DbXml;

#
# Example 9
#
# Create two XML Containers within a Berkeley DB environment,
# then within a Berkeley DB transaction add a document to
# each container.
#

eval
{
	my $dbenv = new DbEnv ;
	$dbenv->open(undef, Db::DB_CREATE | Db::DB_INIT_LOCK | Db::DB_INIT_LOG | Db::DB_INIT_MPOOL | Db::DB_INIT_TXN);
	my $txn = $dbenv->txn_begin;
	my $container1 = new XmlContainer($dbenv, "test1.dbxml");
	my $container2 = new XmlContainer($dbenv, "test2.dbxml");
	$container1->open($txn, Db::DB_CREATE);
	$container2->open($txn, Db::DB_CREATE);

	my $document = new XmlDocument ;
	$document->setContent(
	    "<book><title>Knowledge Discovery in Databases.</title></book>");
	$container1->putDocument($txn, $document);
	$container2->putDocument($txn, $document);
	$txn->commit;
	$container1->close;
	$container2->close;
	$container1->remove();
	$container2->remove();
	$dbenv->close;
};

if (my $e = catch std::exception)
{
	warn $e->what() . "\n";
}
elsif($@)
{
	warn $@;
}
