You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2014/02/04 12:13:44 UTC
svn commit: r1564254 [1/3] - in /qpid/branches/java-broker-bdb-ha: ./ qpid/
qpid/cpp/ qpid/cpp/bindings/qpid/dotnet/ qpid/cpp/design_docs/
qpid/cpp/src/ qpid/cpp/src/qpid/ qpid/cpp/src/qpid/acl/
qpid/cpp/src/qpid/amqp_0_10/ qpid/cpp/src/qpid/broker/ qp...
Author: kwall
Date: Tue Feb 4 11:13:42 2014
New Revision: 1564254
URL: http://svn.apache.org/r1564254
Log:
NO-JIRA: Merge changes from the trunk in revisions 1562452:1564250 using
svn merge -r 1562452:1564250 https://svn.apache.org/repos/asf/qpid/trunk
Added:
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandlerObserver.h
- copied unchanged from r1564250, qpid/trunk/qpid/cpp/src/qpid/broker/SessionHandlerObserver.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/ErrorListener.h
- copied unchanged from r1564250, qpid/trunk/qpid/cpp/src/qpid/ha/ErrorListener.h
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/images/JMX-Connect-MBeans.png
- copied unchanged from r1564250, qpid/trunk/qpid/doc/book/src/java-broker/images/JMX-Connect-MBeans.png
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/images/JMX-Connect-Remote.png
- copied unchanged from r1564250, qpid/trunk/qpid/doc/book/src/java-broker/images/JMX-Connect-Remote.png
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/MessageInstance.java
- copied unchanged from r1564250, qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/MessageInstance.java
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/geronimo-servlet_3.0_spec-1.0.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/geronimo-servlet_3.0_spec-1.0.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-continuation-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-continuation-8.1.14.v20131031.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-http-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-http-8.1.14.v20131031.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-io-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-io-8.1.14.v20131031.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-security-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-security-8.1.14.v20131031.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-server-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-server-8.1.14.v20131031.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-servlet-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-servlet-8.1.14.v20131031.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-util-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-util-8.1.14.v20131031.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-websocket-8.1.14.v20131031.xml
- copied unchanged from r1564250, qpid/trunk/qpid/java/lib/poms/jetty-websocket-8.1.14.v20131031.xml
Removed:
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/geronimo-servlet_2.5_spec-1.2.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-continuation-7.6.10.v20130312.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-http-7.6.10.v20130312.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-io-7.6.10.v20130312.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-security-7.6.10.v20130312.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-server-7.6.10.v20130312.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-servlet-7.6.10.v20130312.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-util-7.6.10.v20130312.xml
qpid/branches/java-broker-bdb-ha/qpid/java/lib/poms/jetty-websocket-7.6.10.v20130312.xml
Modified:
qpid/branches/java-broker-bdb-ha/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/cpp/AMQP_1.0
qpid/branches/java-broker-bdb-ha/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1
qpid/branches/java-broker-bdb-ha/qpid/cpp/design_docs/broker-acl-work.txt
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/Exception.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclData.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclValidator.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/AclModule.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/DtxTimeout.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/HeadersExchange.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/QueueFactory.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/jrnl/wrfc.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/acl.py
qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/run_paged_queue_tests
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/cpp-broker/Security.xml
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Configuring-And-Managing-JMX.xml
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Ports.xml
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/commonEntities.xml
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/jms-client-0-8/JMS-Client-Examples.xml
qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/jms-client-0-8/JMS-Client-Understanding.xml
qpid/branches/java-broker-bdb-ha/qpid/java/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/java/amqp-1-0-client-websocket/pom.xml
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/Exchange.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntry.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryImpl.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ (props changed)
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ExchangeDestination.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/management-http/pom.xml
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
qpid/branches/java-broker-bdb-ha/qpid/java/broker-plugins/websocket/pom.xml
qpid/branches/java-broker-bdb-ha/qpid/java/build.deps
qpid/branches/java-broker-bdb-ha/qpid/java/ivy.nexus.xml
qpid/branches/java-broker-bdb-ha/qpid/java/ivy.retrieve.xml
qpid/branches/java-broker-bdb-ha/qpid/java/jca/build.xml
qpid/branches/java-broker-bdb-ha/qpid/java/jca/example/build-geronimo-properties.xml
qpid/branches/java-broker-bdb-ha/qpid/java/jca/pom.xml
qpid/branches/java-broker-bdb-ha/qpid/java/systests/src/main/java/org/apache/qpid/server/store/MessageStoreTest.java
qpid/branches/java-broker-bdb-ha/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py
qpid/branches/java-broker-bdb-ha/qpid/tools/src/py/qpidstore/janal.py
Propchange: qpid/branches/java-broker-bdb-ha/
------------------------------------------------------------------------------
Merged /qpid/trunk:r1562453-1564250
Propchange: qpid/branches/java-broker-bdb-ha/qpid/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid:r1562453-1564250
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/AMQP_1.0
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/AMQP_1.0?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/AMQP_1.0 (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/AMQP_1.0 Tue Feb 4 11:13:42 2014
@@ -164,7 +164,8 @@ warning is logged.
If the node is an exchange, then an outgoing link (i.e. messages to
travel out from broker) will cause a temporary, link-scoped queue to
be created on the broker and bound to the exchange. [See section on
-'Topics' below]
+'Topics' below]. The name of the queue will be of the form
+<container-id>_<link-name>.
Outgoing links may have a filter set on their source. The filters
currently supported by the broker are 'legacy-amqp-direct-binding',
@@ -272,7 +273,9 @@ trigger the establishment of the link. T
of ensuring their expectations will be met.
The 'shared' capability allows subscriptions from an exchange to be
-shared by multiple receivers.
+shared by multiple receivers. Where this is specified the subscription
+queue created takes the name of the link (and does not include the
+container id).
The 'durable' capability will be added if the queue or exchange
refered to by the source or target is durable. The 'queue' capability
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1 (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1 Tue Feb 4 11:13:42 2014
@@ -55,6 +55,10 @@
# - If a directory "looks like" is has already had CMake run in it
# then this script skips running CMake again.
#
+# * User chooses to include Proton or not.
+#
+# - Proton is included by having variable PROTON_ROOT reference the
+# directory where proton was installed.
#
# Prerequisites
#
@@ -143,6 +147,7 @@ $ErrorActionPreference='Stop'
#
$global:txtPath = '$env:PATH'
$global:txtQR = '$env:QPID_BUILD_ROOT'
+$global:txtPR = '$env:PROTON_ROOT'
$global:txtWH = 'Write-Host'
#############################
@@ -218,6 +223,37 @@ function SanityCheckBoostPath ($path=0)
#############################
+# SanityCheckProtonInstallPath
+# A path is a "proton install path" if it contains
+# both bin and include subdirectories.
+#
+function SanityCheckProtonInstallPath ($path=0)
+{
+ $result = $true
+ $displayPath = ""
+
+ if ($path -ne $null) {
+ $displayPath = $path
+
+ $toTest = ('include', 'bin')
+ foreach ($pattern in $toTest) {
+ $target = Join-Path $path $pattern
+ if (!(Test-Path -path $target)) {
+ $result = $false
+ }
+ }
+ } else {
+ $result = $false
+ }
+
+ if (! $result) {
+ Write-Host "The path ""$displayPath"" does not appear to be a Proton install root path."
+ }
+ $result
+}
+
+
+#############################
# SanityCheckBuildPath
# A path is a "build path" if it contains
# various subdirectories.
@@ -264,14 +300,16 @@ function WriteDotnetBindingSlnLauncherPs
[string] $nBits,
[string] $outfileName,
[string] $studioVersion,
- [string] $studioSubdir
+ [string] $studioSubdir,
+ [string] $protonRoot
)
$out = @("#
# Launch $slnName in $studioVersion $vsPlatform ($nBits-bit) environment
#
-$global:txtPath = ""$boostRoot\lib;$global:txtPath""
+$global:txtPath = ""$protonRoot\bin;$boostRoot\lib;$global:txtPath""
$global:txtQR = ""$buildRoot""
+$global:txtPR = ""$protonRoot""
$global:txtWH ""Launch $slnName in $studioVersion $vsPlatform ($nBits-bit) environment.""
$cppDir\bindings\qpid\dotnet\$vsSubdir\$slnName
")
@@ -328,7 +366,8 @@ function WriteDotnetBindingEnvSetupBat
[string] $outfileName,
[string] $studioVersion,
[string] $studioSubdir,
- [string] $cmakeLine
+ [string] $cmakeLine,
+ [string] $protonRoot
)
$out = @("@ECHO OFF
@@ -344,8 +383,9 @@ REM The solution was generated with cmak
REM $cmakeLine
ECHO %PATH% | FINDSTR /I boost > NUL
IF %ERRORLEVEL% EQU 0 ECHO WARNING: Boost is defined in your path multiple times!
-SET PATH=$boostRoot\lib;%PATH%
+SET PATH=$protonRoot\bin;$boostRoot\lib;%PATH%
SET QPID_BUILD_ROOT=$buildRoot
+SET PROTON_ROOT=$protonRoot
ECHO Environment set for $slnName $studioVersion $vsPlatform $nBits-bit development.
")
Write-Host " $buildRoot\$outfileName"
@@ -441,7 +481,7 @@ function SelectVisualStudioVersion {
SelectVisualStudioVersion
#############################
-# User dialog to get optional 32-bit boost and build paths
+# User dialog to get optional 32-bit boost, proton, and build paths
#
$boost32 = Select-Folder -message "Select 32-bit BOOST_ROOT folder for $global:vsVersion build. Press CANCEL to skip 32-bit processing."
@@ -456,6 +496,18 @@ if ($defined32) {
$make32 = $false
if ($defined32) {
+ $proton32folder = Select-Folder -message "Select 32-bit Proton install folder for $global:vsVersion build."
+
+ $found = ($proton32folder -ne $null) -and ($proton32folder -ne '')
+ if ($found) {
+ $found = SanityCheckProtonInstallPath $proton32folder
+ }
+ if ($found) {
+ $proton32cmake = """-DPROTON_ROOT=$proton32folder"""
+ } else {
+ $proton32cmake = ""
+ }
+
$build32 = Select-Folder -message "Select 32-bit QPID_BUILD_ROOT folder for $global:vsVersion build." -path $projRoot
$found = ($build32 -ne $null) -and ($build32 -ne '')
@@ -472,7 +524,7 @@ if ($defined32) {
}
#############################
-# User dialog to get optional 64-bit boost and build paths
+# User dialog to get optional 64-bit boost, proton, and build paths
#
$boost64 = Select-Folder -message "Select 64-bit BOOST_ROOT folder for $global:vsVersion build. Press CANCEL to skip 64-bit processing."
@@ -486,6 +538,18 @@ if ($defined64) {
$make64 = $false
if ($defined64) {
+ $proton64folder = Select-Folder -message "Select 64-bit Proton install folder for $global:vsVersion build."
+
+ $found = ($proton64folder -ne $null) -and ($proton64folder -ne '')
+ if ($found) {
+ $found = SanityCheckProtonInstallPath $proton64folder
+ }
+ if ($found) {
+ $proton64cmake = """-DPROTON_ROOT=$proton64folder"""
+ } else {
+ $proton64cmake = ""
+ }
+
$build64 = Select-Folder -message "Select 64-bit QPID_BUILD_ROOT folder for $global:vsVersion build." -path $projRoot
$found = ($build64 -ne $null) -and ($build64 -ne '')
@@ -508,10 +572,9 @@ if ($defined64) {
#
if ($make32) {
cd "$build32"
- Write-Host "Running 32-bit CMake in $build32 ..."
- $global:cmakeCommandLine32 = "CMake -G ""$global:cmakeGenerator"" ""-DBUILD_DOCS=No"" ""-DCMAKE_INSTALL_PREFIX=install_x86"" ""-DBoost_COMPILER=$global:cmakeCompiler"" ""-DBOOST_ROOT=$boost32"" $cppDir"
- Write-Host "$global:cmakeCommadLine32"
- CMake -G "$global:cmakeGenerator" "-DBUILD_DOCS=No" "-DCMAKE_INSTALL_PREFIX=install_x86" "-DBoost_COMPILER=$global:cmakeCompiler" "-DBOOST_ROOT=$boost32" $cppDir
+ $global:cmakeCommandLine32 = "CMake -G ""$global:cmakeGenerator"" ""-DBUILD_DOCS=No"" ""-DCMAKE_INSTALL_PREFIX=install_$build32"" ""-DBoost_COMPILER=$global:cmakeCompiler"" ""-DBOOST_ROOT=$boost32"" $proton32cmake $cppDir"
+ Write-Host "Running 32-bit CMake in $build32 : $global:cmakeCommandLine32"
+ CMake -G "$global:cmakeGenerator" "-DBUILD_DOCS=No" "-DCMAKE_INSTALL_PREFIX=install_$build32" "-DBoost_COMPILER=$global:cmakeCompiler" "-DBOOST_ROOT=$boost32" $proton32cmake $cppDir
} else {
Write-Host "Skipped 32-bit CMake."
}
@@ -522,9 +585,10 @@ if ($make32) {
if ($make64) {
cd "$build64"
Write-Host "Running 64-bit CMake in $build64"
- $global:cmakeCommandLine64 = "CMake -G ""$global:cmakeGenerator Win64"" ""-DBUILD_DOCS=No"" ""-DCMAKE_INSTALL_PREFIX=install_x64"" ""-DBoost_COMPILER=$global:cmakeCompiler"" ""-DBOOST_ROOT=$boost64"" $cppDir"
- Write-Host "$global:cmakeCommadLine64"
- CMake -G "$global:cmakeGenerator Win64" "-DBUILD_DOCS=No" "-DCMAKE_INSTALL_PREFIX=install_x64" "-DBoost_COMPILER=$global:cmakeCompiler" "-DBOOST_ROOT=$boost64" $cppDir
+ $global:cmakeCommandLine64 = "CMake -G ""$global:cmakeGenerator Win64"" ""-DBUILD_DOCS=No"" ""-DCMAKE_INSTALL_PREFIX=install_$build64"" ""-DBoost_COMPILER=$global:cmakeCompiler"" ""-DBOOST_ROOT=$boost64"" $proton64cmake $cppDir"
+ Write-Host $global:cmakeCommandLine64
+ Write-Host ""
+ CMake -G "$global:cmakeGenerator Win64" "-DBUILD_DOCS=No" "-DCMAKE_INSTALL_PREFIX=install_$build64" "-DBoost_COMPILER=$global:cmakeCompiler" "-DBOOST_ROOT=$boost64" $proton64cmake $cppDir
} else {
Write-Host "Skipped 64-bit CMake."
}
@@ -549,7 +613,8 @@ if ($defined32) {
-nBits "32" `
-outfileName "start-devenv-messaging-$global:vsSubdir-x86-32bit.ps1" `
-studioVersion "$global:vsVersion" `
- -studioSubdir "$global:vsSubdir"
+ -studioSubdir "$global:vsSubdir" `
+ -protonRoot "$proton32folder"
###########
@@ -577,7 +642,8 @@ if ($defined32) {
-outfileName "setenv-messaging-$global:vsSubdir-x86-32bit.bat" `
-studioVersion "$global:vsVersion" `
-studioSubdir "$global:vsSubdir" `
- -cmakeLine "$global:cmakeCommandLine32"
+ -cmakeLine "$global:cmakeCommandLine32" `
+ -protonRoot "$proton32folder"
} else {
Write-Host "Skipped writing 32-bit scripts."
@@ -615,7 +681,8 @@ if ($defined64) {
-psScriptName "start-devenv-messaging-$global:vsSubdir-x64-64bit.ps1" `
-outfileName "start-devenv-messaging-$global:vsSubdir-x64-64bit.bat" `
-studioVersion "$global:vsVersion" `
- -studioSubdir "$global:vsSubdir"
+ -studioSubdir "$global:vsSubdir" `
+ -protonRoot "$proton64folder"
###########
# Batch script (that you CALL from a command prompt)
@@ -629,7 +696,8 @@ if ($defined64) {
-outfileName "setenv-messaging-$global:vsSubdir-x64-64bit.bat" `
-studioVersion "$global:vsVersion" `
-studioSubdir "$global:vsSubdir" `
- -cmakeLine "$global:cmakeCommandLine64"
+ -cmakeLine "$global:cmakeCommandLine64" `
+ -protonRoot "$proton64folder"
} else {
Write-Host "Skipped writing 64-bit scripts."
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/design_docs/broker-acl-work.txt
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/design_docs/broker-acl-work.txt?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/design_docs/broker-acl-work.txt (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/design_docs/broker-acl-work.txt Tue Feb 4 11:13:42 2014
@@ -28,16 +28,20 @@ in memory and on disk.
* Add property limit settings to CREATE QUEUE Acl rules.
-User Option Acl Limit Property Units
---------------- ---------------------- ---------------
-qpid.max_size queuemaxsizelowerlimit bytes
- queuemaxsizeupperlimit bytes
-qpid.max_count queuemaxcountlowerlimit messages
- queuemaxcountupperlimit messages
-qpid.file_size filemaxsizelowerlimit pages (64Kb per page)
- filemaxsizeupperlimit pages (64Kb per page)
-qpid.file_count filemaxcountlowerlimit files
- filemaxcountupperlimit files
+User Option Acl Limit Property Units
+--------------- ---------------------- ---------------
+qpid.max_size queuemaxsizelowerlimit bytes
+ queuemaxsizeupperlimit bytes
+qpid.max_count queuemaxcountlowerlimit messages
+ queuemaxcountupperlimit messages
+qpid.file_size filemaxsizelowerlimit pages (64Kb per page)
+ filemaxsizeupperlimit pages (64Kb per page)
+qpid.file_count filemaxcountlowerlimit files
+ filemaxcountupperlimit files
+qpid.max_pages_loaded pageslowerlimit pages
+ pagesupperlimit pages
+qpid.page_factor pagefactorlowerlimit integer (multiple of the platform-defined page size)
+ pagefactorlowerlimit integer (multiple of the platform-defined page size)
* Change rule match behavior to accomodate limit settings
Propchange: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src:r1562453-1564250
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.cpp Tue Feb 4 11:13:42 2014
@@ -26,7 +26,7 @@
namespace qpid {
-DataDir::DataDir (std::string path) :
+DataDir::DataDir (const std::string& path) :
enabled (!path.empty ()),
dirPath (path)
{
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/DataDir.h Tue Feb 4 11:13:42 2014
@@ -42,11 +42,11 @@ class DataDir
public:
- QPID_COMMON_EXTERN DataDir (std::string path);
+ QPID_COMMON_EXTERN DataDir (const std::string& path);
QPID_COMMON_EXTERN ~DataDir ();
- bool isEnabled() { return enabled; }
- const std::string& getPath() { return dirPath; }
+ bool isEnabled() const { return enabled; }
+ const std::string& getPath() const { return dirPath; }
};
} // namespace qpid
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/Exception.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/Exception.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/Exception.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/Exception.cpp Tue Feb 4 11:13:42 2014
@@ -45,16 +45,20 @@ Exception::Exception(const std::string&
Exception::~Exception() throw() {}
-std::string Exception::getPrefix() const { return ""; }
+std::string Exception::getPrefix() const { return std::string(); }
std::string Exception::getMessage() const { return message; }
+namespace { const std::string COLON(": "); }
+
const char* Exception::what() const throw() {
// Construct the what string the first time it is needed.
if (whatStr.empty()) {
- whatStr = getPrefix();
- if (!whatStr.empty()) whatStr += ": ";
- whatStr += message;
+ if (message.compare(0, getPrefix().size(), getPrefix()) == 0 || // Already has prefix
+ getPrefix().empty()) // No prefix
+ whatStr = message;
+ else
+ whatStr = getPrefix() + COLON + message;
}
return whatStr.c_str();
}
Propchange: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/qpid/acl:r1562453-1564250
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclData.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclData.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclData.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclData.cpp Tue Feb 4 11:13:42 2014
@@ -160,6 +160,16 @@ bool AclData::lookupMatchRule(
// as rule's index.
propertyMapItr lookupParamItr;
switch (rulePropMapItr->first) {
+ case acl::SPECPROP_MAXPAGESLOWERLIMIT:
+ case acl::SPECPROP_MAXPAGESUPPERLIMIT:
+ lookupParamItr = params->find(PROP_MAXPAGES);
+ break;
+
+ case acl::SPECPROP_MAXPAGEFACTORLOWERLIMIT:
+ case acl::SPECPROP_MAXPAGEFACTORUPPERLIMIT:
+ lookupParamItr = params->find(PROP_MAXPAGEFACTOR);
+ break;
+
case acl::SPECPROP_MAXQUEUECOUNTUPPERLIMIT:
case acl::SPECPROP_MAXQUEUECOUNTLOWERLIMIT:
lookupParamItr = params->find(PROP_MAXQUEUECOUNT);
@@ -201,6 +211,8 @@ bool AclData::lookupMatchRule(
case acl::SPECPROP_MAXQUEUESIZEUPPERLIMIT:
case acl::SPECPROP_MAXFILECOUNTUPPERLIMIT:
case acl::SPECPROP_MAXFILESIZEUPPERLIMIT:
+ case acl::SPECPROP_MAXPAGESUPPERLIMIT:
+ case acl::SPECPROP_MAXPAGEFACTORUPPERLIMIT:
limitChecked &=
compareInt(
rulePropMapItr->first,
@@ -213,6 +225,8 @@ bool AclData::lookupMatchRule(
case acl::SPECPROP_MAXQUEUESIZELOWERLIMIT:
case acl::SPECPROP_MAXFILECOUNTLOWERLIMIT:
case acl::SPECPROP_MAXFILESIZELOWERLIMIT:
+ case acl::SPECPROP_MAXPAGESLOWERLIMIT:
+ case acl::SPECPROP_MAXPAGEFACTORLOWERLIMIT:
limitChecked &=
compareInt(
rulePropMapItr->first,
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclValidator.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclValidator.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclValidator.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/acl/AclValidator.cpp Tue Feb 4 11:13:42 2014
@@ -110,6 +110,22 @@ namespace acl {
boost::shared_ptr<PropertyType>(
new IntPropertyType(0,std::numeric_limits<int64_t>::max()))));
+ validators.insert(Validator(acl::SPECPROP_MAXPAGESLOWERLIMIT,
+ boost::shared_ptr<PropertyType>(
+ new IntPropertyType(0,std::numeric_limits<int64_t>::max()))));
+
+ validators.insert(Validator(acl::SPECPROP_MAXPAGESUPPERLIMIT,
+ boost::shared_ptr<PropertyType>(
+ new IntPropertyType(0,std::numeric_limits<int64_t>::max()))));
+
+ validators.insert(Validator(acl::SPECPROP_MAXPAGEFACTORLOWERLIMIT,
+ boost::shared_ptr<PropertyType>(
+ new IntPropertyType(0,std::numeric_limits<int64_t>::max()))));
+
+ validators.insert(Validator(acl::SPECPROP_MAXPAGEFACTORUPPERLIMIT,
+ boost::shared_ptr<PropertyType>(
+ new IntPropertyType(0,std::numeric_limits<int64_t>::max()))));
+
std::string policyTypes[] = {"ring", "self-destruct", "reject"};
std::vector<std::string> v(policyTypes, policyTypes + sizeof(policyTypes) / sizeof(std::string));
validators.insert(Validator(acl::SPECPROP_POLICYTYPE,
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp Tue Feb 4 11:13:42 2014
@@ -94,8 +94,7 @@ void SessionHandler::handleIn(AMQFrame&
}
}
catch(const SessionException& e) {
- QPID_LOG(error, "Execution exception: " << e.what());
- executionException(e.code, e.what()); // Let subclass handle this first.
+ executionException(e.code, e.what());
framing::AMQP_AllProxy::Execution execution(channel);
AMQMethodBody* m = f.getMethod();
SequenceNumber commandId;
@@ -105,16 +104,13 @@ void SessionHandler::handleIn(AMQFrame&
sendDetach();
}
catch(const ChannelException& e){
- QPID_LOG(error, "Channel exception: " << e.what());
- channelException(e.code, e.what()); // Let subclass handle this first.
+ channelException(e.code, e.what());
peer.detached(name, e.code);
}
catch(const ConnectionException& e) {
- QPID_LOG(error, "Connection exception: " << e.what());
connectionException(e.code, e.getMessage());
}
catch(const std::exception& e) {
- QPID_LOG(error, "Unexpected exception: " << e.what());
connectionException(connection::CLOSE_CODE_FRAMING_ERROR, e.what());
}
}
@@ -186,13 +182,14 @@ void SessionHandler::detach(const std::s
}
void SessionHandler::detached(const std::string& /*name*/, uint8_t code) {
- // Special case for detached: Don't check if we are
- // attached. Checking can lead to an endless game of "detached
- // tennis" on federated brokers.
awaitingDetached = false;
+ // Special case for detached: Don't throw if we are not attached. Doing so
+ // can lead to an endless game of "detached tennis" on federated brokers.
+ if (!getState()) return; // Already detached.
if (code != session::DETACH_CODE_NORMAL) {
sendReady = receiveReady = false;
- channelException(convert(code), "session.detached from peer.");
+ channelException(convert(code), Msg() << "Channel " << channel.get()
+ << " received session.detached from peer");
} else {
handleDetach();
}
Propchange: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/cpp/src/qpid/broker:r1562453-1564250
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/AclModule.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/AclModule.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/AclModule.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/AclModule.h Tue Feb 4 11:13:42 2014
@@ -77,6 +77,9 @@ namespace acl {
PROP_SCHEMAPACKAGE,
PROP_SCHEMACLASS,
PROP_POLICYTYPE,
+ PROP_PAGING,
+ PROP_MAXPAGES,
+ PROP_MAXPAGEFACTOR,
PROP_MAXQUEUESIZE,
PROP_MAXQUEUECOUNT,
PROP_MAXFILESIZE,
@@ -100,6 +103,7 @@ namespace acl {
SPECPROP_SCHEMAPACKAGE = PROP_SCHEMAPACKAGE,
SPECPROP_SCHEMACLASS = PROP_SCHEMACLASS,
SPECPROP_POLICYTYPE = PROP_POLICYTYPE,
+ SPECPROP_PAGING = PROP_PAGING,
SPECPROP_MAXQUEUESIZELOWERLIMIT,
SPECPROP_MAXQUEUESIZEUPPERLIMIT,
@@ -108,7 +112,11 @@ namespace acl {
SPECPROP_MAXFILESIZELOWERLIMIT,
SPECPROP_MAXFILESIZEUPPERLIMIT,
SPECPROP_MAXFILECOUNTLOWERLIMIT,
- SPECPROP_MAXFILECOUNTUPPERLIMIT };
+ SPECPROP_MAXFILECOUNTUPPERLIMIT,
+ SPECPROP_MAXPAGESLOWERLIMIT,
+ SPECPROP_MAXPAGESUPPERLIMIT,
+ SPECPROP_MAXPAGEFACTORLOWERLIMIT,
+ SPECPROP_MAXPAGEFACTORUPPERLIMIT };
// AclResult shared between ACL spec and ACL authorise interface
enum AclResult {
@@ -229,6 +237,9 @@ namespace acl {
if (str.compare("schemapackage") == 0) return PROP_SCHEMAPACKAGE;
if (str.compare("schemaclass") == 0) return PROP_SCHEMACLASS;
if (str.compare("policytype") == 0) return PROP_POLICYTYPE;
+ if (str.compare("paging") == 0) return PROP_PAGING;
+ if (str.compare("maxpages") == 0) return PROP_MAXPAGES;
+ if (str.compare("maxpagefactor") == 0) return PROP_MAXPAGEFACTOR;
if (str.compare("maxqueuesize") == 0) return PROP_MAXQUEUESIZE;
if (str.compare("maxqueuecount") == 0) return PROP_MAXQUEUECOUNT;
if (str.compare("maxfilesize") == 0) return PROP_MAXFILESIZE;
@@ -249,6 +260,9 @@ namespace acl {
case PROP_SCHEMAPACKAGE: return "schemapackage";
case PROP_SCHEMACLASS: return "schemaclass";
case PROP_POLICYTYPE: return "policytype";
+ case PROP_PAGING: return "paging";
+ case PROP_MAXPAGES: return "maxpages";
+ case PROP_MAXPAGEFACTOR: return "maxpagefactor";
case PROP_MAXQUEUESIZE: return "maxqueuesize";
case PROP_MAXQUEUECOUNT: return "maxqueuecount";
case PROP_MAXFILESIZE: return "maxfilesize";
@@ -270,6 +284,7 @@ namespace acl {
if (str.compare("schemapackage") == 0) return SPECPROP_SCHEMAPACKAGE;
if (str.compare("schemaclass") == 0) return SPECPROP_SCHEMACLASS;
if (str.compare("policytype") == 0) return SPECPROP_POLICYTYPE;
+ if (str.compare("paging") == 0) return SPECPROP_PAGING;
if (str.compare("queuemaxsizelowerlimit") == 0) return SPECPROP_MAXQUEUESIZELOWERLIMIT;
if (str.compare("queuemaxsizeupperlimit") == 0) return SPECPROP_MAXQUEUESIZEUPPERLIMIT;
if (str.compare("queuemaxcountlowerlimit") == 0) return SPECPROP_MAXQUEUECOUNTLOWERLIMIT;
@@ -278,6 +293,10 @@ namespace acl {
if (str.compare("filemaxsizeupperlimit") == 0) return SPECPROP_MAXFILESIZEUPPERLIMIT;
if (str.compare("filemaxcountlowerlimit") == 0) return SPECPROP_MAXFILECOUNTLOWERLIMIT;
if (str.compare("filemaxcountupperlimit") == 0) return SPECPROP_MAXFILECOUNTUPPERLIMIT;
+ if (str.compare("pageslowerlimit") == 0) return SPECPROP_MAXPAGESLOWERLIMIT;
+ if (str.compare("pagesupperlimit") == 0) return SPECPROP_MAXPAGESUPPERLIMIT;
+ if (str.compare("pagefactorlowerlimit") == 0) return SPECPROP_MAXPAGEFACTORLOWERLIMIT;
+ if (str.compare("pagefactorupperlimit") == 0) return SPECPROP_MAXPAGEFACTORUPPERLIMIT;
// Allow old names in ACL file as aliases for newly-named properties
if (str.compare("maxqueuesize") == 0) return SPECPROP_MAXQUEUESIZEUPPERLIMIT;
if (str.compare("maxqueuecount") == 0) return SPECPROP_MAXQUEUECOUNTUPPERLIMIT;
@@ -297,6 +316,7 @@ namespace acl {
case SPECPROP_SCHEMAPACKAGE: return "schemapackage";
case SPECPROP_SCHEMACLASS: return "schemaclass";
case SPECPROP_POLICYTYPE: return "policytype";
+ case SPECPROP_PAGING: return "paging";
case SPECPROP_MAXQUEUESIZELOWERLIMIT: return "queuemaxsizelowerlimit";
case SPECPROP_MAXQUEUESIZEUPPERLIMIT: return "queuemaxsizeupperlimit";
case SPECPROP_MAXQUEUECOUNTLOWERLIMIT: return "queuemaxcountlowerlimit";
@@ -305,6 +325,10 @@ namespace acl {
case SPECPROP_MAXFILESIZEUPPERLIMIT: return "filemaxsizeupperlimit";
case SPECPROP_MAXFILECOUNTLOWERLIMIT: return "filemaxcountlowerlimit";
case SPECPROP_MAXFILECOUNTUPPERLIMIT: return "filemaxcountupperlimit";
+ case SPECPROP_MAXPAGESLOWERLIMIT: return "pageslowerlimit";
+ case SPECPROP_MAXPAGESUPPERLIMIT: return "pagesupperlimit";
+ case SPECPROP_MAXPAGEFACTORLOWERLIMIT: return "pagefactorlowerlimit";
+ case SPECPROP_MAXPAGEFACTORUPPERLIMIT: return "pagefactorupperlimit";
default: assert(false); // should never get here
}
return "";
@@ -381,6 +405,9 @@ namespace acl {
p4->insert(PROP_EXCLUSIVE);
p4->insert(PROP_AUTODELETE);
p4->insert(PROP_POLICYTYPE);
+ p4->insert(PROP_PAGING);
+ p4->insert(PROP_MAXPAGES);
+ p4->insert(PROP_MAXPAGEFACTOR);
p4->insert(PROP_MAXQUEUESIZE);
p4->insert(PROP_MAXQUEUECOUNT);
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.cpp Tue Feb 4 11:13:42 2014
@@ -217,7 +217,9 @@ Broker::Broker(const Broker::Options& co
store(new NullMessageStore),
acl(0),
dataDir(conf.noDataDir ? std::string() : conf.dataDir),
- pagingDir(conf.pagingDir),
+ pagingDir(!conf.pagingDir.empty() ? conf.pagingDir :
+ dataDir.isEnabled() ? dataDir.getPath() + Options::DEFAULT_PAGED_QUEUE_DIR :
+ std::string() ),
queues(this),
exchanges(this),
links(this),
@@ -385,11 +387,6 @@ Broker::Broker(const Broker::Options& co
}
}
-std::string Broker::getPagingDirectoryPath()
-{
- return pagingDir.isEnabled() ? pagingDir.getPath() : dataDir.getPath();
-}
-
void Broker::declareStandardExchange(const std::string& name, const std::string& type)
{
bool storeEnabled = store.get() != NULL;
@@ -1304,6 +1301,9 @@ std::pair<boost::shared_ptr<Queue>, bool
params.insert(make_pair(acl::PROP_EXCLUSIVE, owner ? _TRUE : _FALSE));
params.insert(make_pair(acl::PROP_AUTODELETE, settings.autodelete ? _TRUE : _FALSE));
params.insert(make_pair(acl::PROP_POLICYTYPE, settings.getLimitPolicy()));
+ params.insert(make_pair(acl::PROP_PAGING, settings.paging ? _TRUE : _FALSE));
+ params.insert(make_pair(acl::PROP_MAXPAGES, boost::lexical_cast<string>(settings.maxPages)));
+ params.insert(make_pair(acl::PROP_MAXPAGEFACTOR, boost::lexical_cast<string>(settings.pageFactor)));
params.insert(make_pair(acl::PROP_MAXQUEUECOUNT, boost::lexical_cast<string>(settings.maxDepth.getCount())));
params.insert(make_pair(acl::PROP_MAXQUEUESIZE, boost::lexical_cast<string>(settings.maxDepth.getSize())));
params.insert(make_pair(acl::PROP_MAXFILECOUNT, boost::lexical_cast<string>(settings.maxFileCount)));
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/Broker.h Tue Feb 4 11:13:42 2014
@@ -38,6 +38,7 @@
#include "qpid/broker/System.h"
#include "qpid/broker/ConsumerFactory.h"
#include "qpid/broker/ConnectionObservers.h"
+#include "qpid/broker/SessionHandlerObserver.h"
#include "qpid/broker/BrokerObservers.h"
#include "qpid/management/Manageable.h"
#include "qpid/sys/ConnectionCodec.h"
@@ -86,6 +87,7 @@ class Broker : public sys::Runnable, pub
struct Options : public qpid::Options {
static const std::string DEFAULT_DATA_DIR_LOCATION;
static const std::string DEFAULT_DATA_DIR_NAME;
+ static const std::string DEFAULT_PAGED_QUEUE_DIR;
QPID_BROKER_EXTERN Options(const std::string& name="Broker Options");
@@ -178,6 +180,7 @@ class Broker : public sys::Runnable, pub
DataDir dataDir;
DataDir pagingDir;
ConnectionObservers connectionObservers;
+ SessionHandlerObservers sessionHandlerObservers;
BrokerObservers brokerObservers;
QueueRegistry queues;
@@ -237,11 +240,11 @@ class Broker : public sys::Runnable, pub
ExchangeRegistry& getExchanges() { return exchanges; }
LinkRegistry& getLinks() { return links; }
DtxManager& getDtxManager() { return dtxManager; }
- DataDir& getDataDir() { return dataDir; }
+ const DataDir& getDataDir() { return dataDir; }
+ const DataDir& getPagingDir() { return pagingDir; }
Options& getOptions() { return config; }
ProtocolRegistry& getProtocolRegistry() { return protocolRegistry; }
ObjectFactoryRegistry& getObjectFactoryRegistry() { return objectFactory; }
- std::string getPagingDirectoryPath();
void setExpiryPolicy(const boost::intrusive_ptr<ExpiryPolicy>& e) { expiryPolicy = e; }
boost::intrusive_ptr<ExpiryPolicy> getExpiryPolicy() { return expiryPolicy; }
@@ -360,6 +363,7 @@ class Broker : public sys::Runnable, pub
ConsumerFactories& getConsumerFactories() { return consumerFactories; }
ConnectionObservers& getConnectionObservers() { return connectionObservers; }
+ SessionHandlerObservers& getSessionHandlerObservers() { return sessionHandlerObservers; }
BrokerObservers& getBrokerObservers() { return brokerObservers; }
/** Properties to be set on outgoing link connections */
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/DtxTimeout.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/DtxTimeout.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/DtxTimeout.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/DtxTimeout.cpp Tue Feb 4 11:13:42 2014
@@ -21,6 +21,7 @@
#include "qpid/broker/DtxTimeout.h"
#include "qpid/broker/DtxManager.h"
#include "qpid/sys/Time.h"
+#include "qpid/log/Statement.h"
using namespace qpid::broker;
@@ -31,5 +32,6 @@ DtxTimeout::DtxTimeout(uint32_t _timeout
void DtxTimeout::fire()
{
+ QPID_LOG(debug, "DTX transaction timeouted, XID=" << xid << ", timeout=" << timeout);
mgr.timedout(xid);
}
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/HeadersExchange.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/HeadersExchange.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/HeadersExchange.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/HeadersExchange.cpp Tue Feb 4 11:13:42 2014
@@ -302,7 +302,12 @@ void HeadersExchange::route(Deliverable&
if (p.get()) {
for (std::vector<BoundKey>::const_iterator i = p->begin(); i != p->end(); ++i) {
if (match(i->args, msg.getMessage())) {
- b->push_back(i->binding);
+ /* check if a binding tothe same queue has not been already added to b */
+ std::vector<boost::shared_ptr<qpid::broker::Exchange::Binding> >::iterator bi = b->begin();
+ while ((bi != b->end()) && ((*bi)->queue != i->binding->queue))
+ ++bi;
+ if (bi == b->end())
+ b->push_back(i->binding);
}
}
}
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.cpp Tue Feb 4 11:13:42 2014
@@ -91,13 +91,16 @@ PagedQueue::PagedQueue(const std::string
: name(name_), pageSize(file.getPageSize()*factor), maxLoaded(m), protocols(p), offset(0), loaded(0), version(0),
expiryPolicy(e)
{
- path = file.open(name, directory);
- QPID_LOG(debug, "PagedQueue[" << path << "]");
+ if (directory.empty()) {
+ throw qpid::Exception(QPID_MSG("Cannot create paged queue: No paged queue directory specified"));
+ }
+ file.open(name, directory);
+ QPID_LOG(debug, "PagedQueue[" << name << "]");
}
PagedQueue::~PagedQueue()
{
- file.close(path);
+ file.close();
}
size_t PagedQueue::size()
@@ -133,7 +136,7 @@ bool PagedQueue::deleted(const QueueCurs
void PagedQueue::publish(const Message& added)
{
if (encodedSize(added) > pageSize) {
- QPID_LOG(error, "Message is larger than page size for queue " << name << ", backed by " << path);
+ QPID_LOG(error, "Message is larger than page size for queue " << name);
throw qpid::framing::PreconditionFailedException(QPID_MSG("Message is larger than page size for queue " << name));
}
Used::reverse_iterator i = used.rbegin();
@@ -143,7 +146,7 @@ void PagedQueue::publish(const Message&
}
//used is empty or last page is full, need to add a new page
if (!newPage(added.getSequence()).add(added)) {
- QPID_LOG(error, "Could not add message to paged queue " << name << ", backed by " << path);
+ QPID_LOG(error, "Could not add message to paged queue " << name);
throw qpid::Exception(QPID_MSG("Could not add message to paged queue " << name));
}
}
@@ -388,14 +391,14 @@ void PagedQueue::load(Page& page)
}
page.load(file, protocols, expiryPolicy);
++loaded;
- QPID_LOG(debug, "PagedQueue[" << path << "] loaded page, " << loaded << " pages now loaded");
+ QPID_LOG(debug, "PagedQueue[" << name << "] loaded page, " << loaded << " pages now loaded");
}
void PagedQueue::unload(Page& page)
{
page.unload(file);
--loaded;
- QPID_LOG(debug, "PagedQueue[" << path << "] unloaded page, " << loaded << " pages now loaded");
+ QPID_LOG(debug, "PagedQueue[" << name << "] unloaded page, " << loaded << " pages now loaded");
}
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/PagedQueue.h Tue Feb 4 11:13:42 2014
@@ -79,7 +79,6 @@ class PagedQueue : public Messages {
qpid::sys::MemoryMappedFile file;
std::string name;
- std::string path;
const size_t pageSize;
const uint maxLoaded;
ProtocolRegistry& protocols;
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/QueueFactory.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/QueueFactory.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/QueueFactory.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/QueueFactory.cpp Tue Feb 4 11:13:42 2014
@@ -76,8 +76,10 @@ boost::shared_ptr<Queue> QueueFactory::c
QPID_LOG(warning, "Cannot create paged queue without broker context");
} else if (!qpid::sys::MemoryMappedFile::isSupported()) {
QPID_LOG(warning, "Cannot create paged queue; memory mapped file support not available on this platform");
+ } else if ( !broker->getPagingDir().isEnabled() ) {
+ QPID_LOG(warning, "Cannot create paged queue; no paging directory enabled");
} else {
- queue->messages = std::auto_ptr<Messages>(new PagedQueue(name, broker->getPagingDirectoryPath(),
+ queue->messages = std::auto_ptr<Messages>(new PagedQueue(name, broker->getPagingDir().getPath(),
settings.maxPages ? settings.maxPages : 4,
settings.pageFactor ? settings.pageFactor : 1,
broker->getProtocolRegistry(), broker->getExpiryPolicy()));
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.cpp Tue Feb 4 11:13:42 2014
@@ -33,11 +33,35 @@ using namespace framing;
using namespace std;
using namespace qpid::sys;
+namespace {
+class DefaultErrorListener : public SessionHandler::ErrorListener {
+ public:
+ void connectionException(framing::connection::CloseCode code, const std::string& msg) {
+ QPID_LOG(error, "Connection exception: " << framing::createConnectionException(code, msg).what());
+ }
+ void channelException(framing::session::DetachCode code, const std::string& msg) {
+ QPID_LOG(error, "Channel exception: " << framing::createChannelException(code, msg).what());
+ }
+ void executionException(framing::execution::ErrorCode code, const std::string& msg) {
+ QPID_LOG(error, "Execution exception: " << framing::createSessionException(code, msg).what());
+ }
+ void incomingExecutionException(framing::execution::ErrorCode code, const std::string& msg) {
+ QPID_LOG(debug, "Incoming execution exception: " << framing::createSessionException(code, msg).what());
+ }
+ void detach() {}
+
+ private:
+};
+}
+
SessionHandler::SessionHandler(amqp_0_10::Connection& c, ChannelId ch)
: qpid::amqp_0_10::SessionHandler(&c.getOutput(), ch),
connection(c),
- proxy(out)
-{}
+ proxy(out),
+ errorListener(boost::shared_ptr<ErrorListener>(new DefaultErrorListener()))
+{
+ c.getBroker().getSessionHandlerObservers().newSessionHandler(*this);
+}
SessionHandler::~SessionHandler()
{
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/SessionHandler.h Tue Feb 4 11:13:42 2014
@@ -21,7 +21,7 @@
* under the License.
*
*/
-
+#include "qpid/broker/BrokerImportExport.h"
#include "qpid/amqp_0_10/SessionHandler.h"
#include "qpid/broker/SessionHandler.h"
#include "qpid/framing/AMQP_ClientProxy.h"
@@ -76,8 +76,8 @@ class SessionHandler : public qpid::amqp
SessionState* getSession() { return session.get(); }
const SessionState* getSession() const { return session.get(); }
- amqp_0_10::Connection& getConnection();
- const amqp_0_10::Connection& getConnection() const;
+ QPID_BROKER_EXTERN amqp_0_10::Connection& getConnection();
+ QPID_BROKER_EXTERN const amqp_0_10::Connection& getConnection() const;
framing::AMQP_ClientProxy& getProxy() { return proxy; }
const framing::AMQP_ClientProxy& getProxy() const { return proxy; }
@@ -86,7 +86,7 @@ class SessionHandler : public qpid::amqp
void attached(const std::string& name);//used by 'pushing' inter-broker bridges
void attachAs(const std::string& name);//used by 'pulling' inter-broker bridges
- void setErrorListener(boost::shared_ptr<ErrorListener> e) { errorListener = e; }
+ QPID_BROKER_EXTERN void setErrorListener(boost::shared_ptr<ErrorListener> e) { errorListener = e; }
// Called by SessionAdapter
void incomingExecutionException(framing::execution::ErrorCode, const std::string& msg);
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/posix/BrokerDefaults.cpp Tue Feb 4 11:13:42 2014
@@ -27,6 +27,7 @@ namespace broker {
const std::string Broker::Options::DEFAULT_DATA_DIR_LOCATION("/tmp");
const std::string Broker::Options::DEFAULT_DATA_DIR_NAME("/.qpidd");
+const std::string Broker::Options::DEFAULT_PAGED_QUEUE_DIR("/pq");
std::string
Broker::Options::getHome() {
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/broker/windows/BrokerDefaults.cpp Tue Feb 4 11:13:42 2014
@@ -27,6 +27,7 @@ namespace broker {
const std::string Broker::Options::DEFAULT_DATA_DIR_LOCATION("\\TEMP");
const std::string Broker::Options::DEFAULT_DATA_DIR_NAME("\\QPIDD.DATA");
+const std::string Broker::Options::DEFAULT_PAGED_QUEUE_DIR("\\PQ");
std::string
Broker::Options::getHome() {
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp Tue Feb 4 11:13:42 2014
@@ -172,34 +172,29 @@ Variant::Map asMapVoid(const Variant& va
}
} // namespace
-// Listens for errors on the bridge session.
-class BrokerReplicator::ErrorListener : public SessionHandler::ErrorListener {
+// Report errors on the broker replication session.
+class BrokerReplicator::ErrorListener : public broker::SessionHandler::ErrorListener {
public:
- ErrorListener(const std::string& lp, BrokerReplicator& br) :
- logPrefix(lp), brokerReplicator(br) {}
+ ErrorListener(const std::string& logPrefix_) : logPrefix(logPrefix_) {}
- void connectionException(framing::connection::CloseCode, const std::string& msg) {
- QPID_LOG(error, logPrefix << "Connection error: " << msg);
+ void connectionException(framing::connection::CloseCode code, const std::string& msg) {
+ QPID_LOG(error, logPrefix << framing::createConnectionException(code, msg).what());
}
- void channelException(framing::session::DetachCode, const std::string& msg) {
- QPID_LOG(error, logPrefix << "Channel error: " << msg);
+ void channelException(framing::session::DetachCode code, const std::string& msg) {
+ QPID_LOG(error, logPrefix << framing::createChannelException(code, msg).what());
}
- void executionException(framing::execution::ErrorCode, const std::string& msg) {
- QPID_LOG(error, logPrefix << "Execution error: " << msg);
+ void executionException(framing::execution::ErrorCode code, const std::string& msg) {
+ QPID_LOG(error, logPrefix << framing::createSessionException(code, msg).what());
}
-
- void incomingExecutionException(
- framing::execution::ErrorCode, const std::string& msg) {
- QPID_LOG(error, logPrefix << "Incoming execution error: " << msg);
+ void incomingExecutionException(framing::execution::ErrorCode code, const std::string& msg) {
+ QPID_LOG(error, logPrefix << "Incoming " << framing::createSessionException(code, msg).what());
}
-
void detach() {
QPID_LOG(debug, logPrefix << "Session detached.");
}
private:
std::string logPrefix;
- BrokerReplicator& brokerReplicator;
};
/** Keep track of queues or exchanges during the update process to solve 2
@@ -328,8 +323,7 @@ void BrokerReplicator::initialize() {
boost::bind(&BrokerReplicator::connected, shared_from_this(), _1, _2)
);
assert(result.second);
- result.first->setErrorListener(
- boost::shared_ptr<ErrorListener>(new ErrorListener(logPrefix, *this)));
+ result.first->setErrorListener(boost::shared_ptr<ErrorListener>(new ErrorListener(logPrefix)));
broker.getConnectionObservers().add(shared_from_this());
}
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.cpp Tue Feb 4 11:13:42 2014
@@ -33,6 +33,7 @@
#include "qpid/broker/BrokerObserver.h"
#include "qpid/broker/Connection.h"
#include "qpid/broker/Queue.h"
+#include "qpid/broker/SessionHandlerObserver.h"
#include "qpid/framing/FieldTable.h"
#include "qpid/framing/FieldValue.h"
#include "qpid/log/Statement.h"
@@ -87,12 +88,54 @@ class ExpectedBackupTimerTask : public s
Primary& primary;
};
+class PrimaryErrorListener : public broker::SessionHandler::ErrorListener {
+ public:
+ PrimaryErrorListener(const std::string& logPrefix_) : logPrefix(logPrefix_) {}
+
+ void connectionException(framing::connection::CloseCode code, const std::string& msg) {
+ QPID_LOG(debug, logPrefix << framing::createConnectionException(code, msg).what());
+ }
+ void channelException(framing::session::DetachCode code, const std::string& msg) {
+ QPID_LOG(debug, logPrefix << framing::createChannelException(code, msg).what());
+ }
+ void executionException(framing::execution::ErrorCode code, const std::string& msg) {
+ QPID_LOG(debug, logPrefix << framing::createSessionException(code, msg).what());
+ }
+ void incomingExecutionException(framing::execution::ErrorCode code, const std::string& msg) {
+ QPID_LOG(debug, logPrefix << "Incoming " << framing::createSessionException(code, msg).what());
+ }
+ void detach() {
+ QPID_LOG(debug, logPrefix << "Session detached.");
+ }
+
+ private:
+ std::string logPrefix;
+};
+
+class PrimarySessionHandlerObserver : public broker::SessionHandlerObserver {
+ public:
+ PrimarySessionHandlerObserver(const std::string& logPrefix)
+ : errorListener(new PrimaryErrorListener(logPrefix)) {}
+ void newSessionHandler(broker::SessionHandler& sh) {
+ BrokerInfo info;
+ // Suppress error logging for backup connections
+ // TODO aconway 2014-01-31: Be more selective, suppress only expected errors?
+ if (ha::ConnectionObserver::getBrokerInfo(sh.getConnection(), info)) {
+ sh.setErrorListener(errorListener);
+ }
+ }
+ private:
+ boost::shared_ptr<PrimaryErrorListener> errorListener;
+};
+
+
} // namespace
Primary::Primary(HaBroker& hb, const BrokerInfo::Set& expect) :
haBroker(hb), membership(hb.getMembership()),
logPrefix("Primary: "), active(false),
replicationTest(hb.getSettings().replicateDefault.get()),
+ sessionHandlerObserver(new PrimarySessionHandlerObserver(logPrefix)),
queueLimits(logPrefix)
{
// Note that at this point, we are still rejecting client connections.
@@ -124,6 +167,8 @@ Primary::Primary(HaBroker& hb, const Bro
}
brokerObserver.reset(new PrimaryBrokerObserver(*this));
haBroker.getBroker().getBrokerObservers().add(brokerObserver);
+ haBroker.getBroker().getSessionHandlerObservers().add(sessionHandlerObserver);
+
checkReady(); // Outside lock
// Allow client connections
@@ -134,6 +179,7 @@ Primary::Primary(HaBroker& hb, const Bro
Primary::~Primary() {
if (timerTask) timerTask->cancel();
haBroker.getBroker().getBrokerObservers().remove(brokerObserver);
+ haBroker.getBroker().getSessionHandlerObservers().remove(sessionHandlerObserver);
haBroker.getObserver()->reset();
}
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/Primary.h Tue Feb 4 11:13:42 2014
@@ -42,6 +42,7 @@ class Queue;
class Connection;
class ConnectionObserver;
class BrokerObserver;
+class SessionHandlerObserver;
class TxBuffer;
class DtxBuffer;
}
@@ -152,6 +153,7 @@ class Primary : public Role
BackupMap backups;
boost::shared_ptr<broker::ConnectionObserver> connectionObserver;
boost::shared_ptr<broker::BrokerObserver> brokerObserver;
+ boost::shared_ptr<broker::SessionHandlerObserver> sessionHandlerObserver;
boost::intrusive_ptr<sys::TimerTask> timerTask;
ReplicaMap replicas;
TxMap txMap;
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp Tue Feb 4 11:13:42 2014
@@ -98,7 +98,8 @@ PrimaryTxObserver::PrimaryTxObserver(
replicationTest(hb.getSettings().replicateDefault.get()),
txBuffer(tx),
id(true),
- exchangeName(TRANSACTION_REPLICATOR_PREFIX+id.str())
+ exchangeName(TRANSACTION_REPLICATOR_PREFIX+id.str()),
+ empty(true)
{
logPrefix = "Primary transaction "+shortStr(id)+": ";
@@ -149,6 +150,7 @@ void PrimaryTxObserver::enqueue(const Qu
if (replicationTest.useLevel(*q) == ALL) { // Ignore unreplicated queues.
QPID_LOG(trace, logPrefix << "Enqueue: " << LogMessageId(*q, m));
checkState(SENDING, "Too late for enqueue");
+ empty = false;
enqueues[q] += m.getReplicationId();
txQueue->deliver(TxEnqueueEvent(q->getName(), m.getReplicationId()).message());
txQueue->deliver(m);
@@ -162,12 +164,9 @@ void PrimaryTxObserver::dequeue(
checkState(SENDING, "Too late for dequeue");
if (replicationTest.useLevel(*q) == ALL) { // Ignore unreplicated queues.
QPID_LOG(trace, logPrefix << "Dequeue: " << LogMessageId(*q, pos, id));
+ empty = false;
txQueue->deliver(TxDequeueEvent(q->getName(), id).message());
}
- else {
- QPID_LOG(warning, logPrefix << "Dequeue skipped, queue not replicated: "
- << LogMessageId(*q, pos, id));
- }
}
namespace {
@@ -221,8 +220,10 @@ void PrimaryTxObserver::commit() {
}
void PrimaryTxObserver::rollback() {
- QPID_LOG(debug, logPrefix << "Rollback");
Mutex::ScopedLock l(lock);
+ // Don't bleat about rolling back empty transactions, this happens all the time
+ // when a session closes and rolls back its outstanding transaction.
+ if (!empty) QPID_LOG(debug, logPrefix << "Rollback");
if (state != ENDED) {
txQueue->deliver(TxRollbackEvent().message());
end(l);
@@ -287,7 +288,6 @@ void PrimaryTxObserver::txPrepareFailEve
void PrimaryTxObserver::cancel(const ReplicatingSubscription& rs) {
Mutex::ScopedLock l(lock);
types::Uuid backup = rs.getBrokerInfo().getSystemId();
- QPID_LOG(debug, logPrefix << "Backup disconnected: " << backup);
// Normally the backup should be completed before it is cancelled.
if (completed(backup, l)) error(backup, "Unexpected disconnect:", l);
// Break the pointer cycle if backups have completed and we are done with txBuffer.
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h Tue Feb 4 11:13:42 2014
@@ -55,8 +55,9 @@ class Primary;
* A TxReplicator on the backup replicates the tx-queue and creates
* a TxBuffer on the backup equivalent to the one on the primary.
*
- * Also observes the tx-queue for prepare-complete messages and
- * subscription cancellations.
+ * Creates an exchange to receive prepare-ok/prepare-fail messages from backups.
+ *
+ * Monitors for tx-queue subscription cancellations.
*
* THREAD SAFE: called in user connection thread for TX events,
* and in backup connection threads for prepare-completed events
@@ -122,6 +123,7 @@ class PrimaryTxObserver : public broker:
QueueIdsMap enqueues;
UuidSet backups; // All backups of transaction.
UuidSet incomplete; // Incomplete backups (not yet responded to prepare)
+ bool empty; // True if the transaction is empty - no enqueues/dequeues.
};
}} // namespace qpid::ha
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.cpp Tue Feb 4 11:13:42 2014
@@ -73,17 +73,26 @@ void QueueReplicator::copy(ExchangeRegis
registry.eachExchange(boost::bind(&pushIfQr, boost::ref(result), _1));
}
+// Debug log expected exceptions on queue replicator, check incoming execution
+// exceptions for "deleted on primary" conditions.
class QueueReplicator::ErrorListener : public SessionHandler::ErrorListener {
public:
ErrorListener(const boost::shared_ptr<QueueReplicator>& qr)
: queueReplicator(qr), logPrefix(qr->logPrefix) {}
- void connectionException(framing::connection::CloseCode, const std::string&) {}
- void channelException(framing::session::DetachCode, const std::string&) {}
- void executionException(framing::execution::ErrorCode, const std::string&) {}
-
- void incomingExecutionException(ErrorCode e, const std::string& msg) {
- queueReplicator->incomingExecutionException(e, msg);
+ void connectionException(framing::connection::CloseCode code, const std::string& msg) {
+ QPID_LOG(debug, logPrefix << framing::createConnectionException(code, msg).what());
+ }
+ void channelException(framing::session::DetachCode code, const std::string& msg) {
+ QPID_LOG(debug, logPrefix << framing::createChannelException(code, msg).what());
+ }
+ void executionException(framing::execution::ErrorCode code, const std::string& msg) {
+ QPID_LOG(debug, logPrefix << framing::createSessionException(code, msg).what());
+ }
+ void incomingExecutionException(ErrorCode code, const std::string& msg) {
+ if (!queueReplicator->deletedOnPrimary(code, msg))
+ QPID_LOG(error, logPrefix << "Incoming "
+ << framing::createSessionException(code, msg).what());
}
void detach() {
QPID_LOG(debug, logPrefix << "Session detached");
@@ -197,20 +206,25 @@ void QueueReplicator::disconnect() {
// Called from Queue::destroyed()
void QueueReplicator::destroy() {
+ QPID_LOG(debug, logPrefix << "Destroyed");
boost::shared_ptr<Bridge> bridge2; // To call outside of lock
{
Mutex::ScopedLock l(lock);
if (!queue) return; // Already destroyed
- QPID_LOG(debug, logPrefix << "Destroyed");
bridge2 = bridge; // call close outside the lock.
- // Need to drop shared pointers to avoid pointer cycles keeping this in memory.
- queue.reset();
- bridge.reset();
- getBroker()->getExchanges().destroy(getName());
+ destroy(l);
}
if (bridge2) bridge2->close(); // Outside of lock, avoid deadlock.
}
+void QueueReplicator::destroy(Mutex::ScopedLock&) {
+ // Need to drop shared pointers to avoid pointer cycles keeping this in memory.
+ queue.reset();
+ bridge.reset();
+ getBroker()->getExchanges().destroy(getName());
+}
+
+
// Called in a broker connection thread when the bridge is created.
// Note: called with the Link lock held.
void QueueReplicator::initializeBridge(Bridge& bridge, SessionHandler& sessionHandler_) {
@@ -306,18 +320,19 @@ void QueueReplicator::idEvent(const stri
nextId = decodeStr<IdEvent>(data).id;
}
-void QueueReplicator::incomingExecutionException(ErrorCode e, const std::string& msg) {
+bool QueueReplicator::deletedOnPrimary(ErrorCode e, const std::string& msg) {
if (e == ERROR_CODE_NOT_FOUND || e == ERROR_CODE_RESOURCE_DELETED) {
// If the queue is destroyed at the same time we are subscribing, we may
// get a not-found or resource-deleted exception before the
// BrokerReplicator gets the queue-delete event. Shut down the bridge by
// calling destroy(), we can let the BrokerReplicator delete the queue
// when the queue-delete arrives.
- QPID_LOG(debug, logPrefix << "Deleted on primary: " << msg);
+ QPID_LOG(debug, logPrefix << "Deleted on primary: "
+ << framing::createSessionException(e, msg).what());
destroy();
+ return true;
}
- else
- QPID_LOG(error, logPrefix << "Incoming execution exception: " << msg);
+ return false;
}
// Unused Exchange methods.
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/QueueReplicator.h Tue Feb 4 11:13:42 2014
@@ -46,11 +46,13 @@ class HaBroker;
class Settings;
/**
- * Exchange created on a backup broker to replicate a queue on the primary.
+ * Exchange created on a backup broker to receive replicated messages and
+ * replication events from a queue on the primary. It subscribes to the primary
+ * queue via a ReplicatingSubscription on the primary by passing special
+ * arguments to the subscribe command.
*
- * Puts replicated messages on the local queue, handles dequeue events.
- * Creates a ReplicatingSubscription on the primary by passing special
- * arguments to the consume command.
+ * It puts replicated messages on the local replica queue and handles dequeue
+ * events by removing local messages.
*
* THREAD SAFE: Called in different connection threads.
*/
@@ -74,7 +76,7 @@ class QueueReplicator : public broker::E
void disconnect(); // Called when we are disconnected from the primary.
- std::string getType() const;
+ virtual std::string getType() const;
void route(broker::Deliverable&);
@@ -101,7 +103,9 @@ class QueueReplicator : public broker::E
void initialize(); // Called as part of create()
virtual void deliver(const broker::Message&);
+
virtual void destroy(); // Called when the queue is destroyed.
+ virtual void destroy(sys::Mutex::ScopedLock&);
sys::Mutex lock;
HaBroker& haBroker;
@@ -124,8 +128,7 @@ class QueueReplicator : public broker::E
void dequeueEvent(const std::string& data, sys::Mutex::ScopedLock&);
void idEvent(const std::string& data, sys::Mutex::ScopedLock&);
- void incomingExecutionException(framing::execution::ErrorCode e,
- const std::string& msg);
+ bool deletedOnPrimary(framing::execution::ErrorCode e, const std::string& msg);
std::string logPrefix;
std::string bridgeName;
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.cpp Tue Feb 4 11:13:42 2014
@@ -87,7 +87,7 @@ TxReplicator::TxReplicator(
QueueReplicator(hb, txQueue, link),
store(hb.getBroker().hasStore() ? &hb.getBroker().getStore() : 0),
channel(link->nextChannel()),
- ended(false),
+ empty(true), ended(false),
dequeueState(hb.getBroker().getQueues())
{
string id(getTxId(txQueue->getName()));
@@ -151,6 +151,7 @@ void TxReplicator::enqueue(const string&
decodeStr(data, e);
QPID_LOG(trace, logPrefix << "Enqueue: " << e);
enq = e;
+ empty = false;
}
void TxReplicator::dequeue(const string& data, sys::Mutex::ScopedLock&) {
@@ -163,6 +164,7 @@ void TxReplicator::dequeue(const string&
// prepared, then they are all receieved before the prepare event.
// We collect the events here so we can do a single scan of the queue in prepare.
dequeueState.add(e);
+ empty = false;
}
void TxReplicator::DequeueState::add(const TxDequeueEvent& event) {
@@ -227,7 +229,9 @@ void TxReplicator::commit(const string&,
void TxReplicator::rollback(const string&, sys::Mutex::ScopedLock& l) {
if (!txBuffer) return;
- QPID_LOG(debug, logPrefix << "Rollback");
+ // Don't bleat about rolling back empty transactions, this happens all the time
+ // when a session closes and rolls back its outstanding transaction.
+ if (!empty) QPID_LOG(debug, logPrefix << "Rollback");
if (context.get()) store->abort(*context);
txBuffer->rollback();
end(l);
@@ -255,15 +259,12 @@ void TxReplicator::end(sys::Mutex::Scope
}
// Called when the tx queue is deleted.
-void TxReplicator::destroy() {
- {
- sys::Mutex::ScopedLock l(lock);
- if (!ended) {
- QPID_LOG(error, logPrefix << "Destroyed prematurely, rollback.");
- rollback(string(), l);
- }
+void TxReplicator::destroy(sys::Mutex::ScopedLock& l) {
+ if (!ended) {
+ if (!empty) QPID_LOG(error, logPrefix << "Destroyed prematurely, rollback");
+ rollback(string(), l);
}
- QueueReplicator::destroy();
+ QueueReplicator::destroy(l);
}
}} // namespace qpid::ha
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/ha/TxReplicator.h Tue Feb 4 11:13:42 2014
@@ -67,7 +67,8 @@ class TxReplicator : public QueueReplica
// QueueReplicator overrides
void route(broker::Deliverable& deliverable);
- void destroy();
+ using QueueReplicator::destroy;
+ void destroy(sys::Mutex::ScopedLock&);
protected:
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/StorePlugin.cpp Tue Feb 4 11:13:42 2014
@@ -45,7 +45,7 @@ struct StorePlugin : public Plugin {
Broker* broker = dynamic_cast<Broker*>(&target);
if (!broker) return;
store.reset(new MessageStoreImpl(broker));
- DataDir& dataDir = broker->getDataDir ();
+ const DataDir& dataDir = broker->getDataDir ();
if (options.storeDir.empty ())
{
if (!dataDir.isEnabled ())
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/jrnl/wrfc.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/jrnl/wrfc.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/jrnl/wrfc.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/legacystore/jrnl/wrfc.cpp Tue Feb 4 11:13:42 2014
@@ -125,7 +125,8 @@ wrfc::enq_threshold(const u_int32_t enq_
u_int32_t fwd_dblks = subm_dblks + enq_dsize_dblks + _enq_cap_offs_dblks;
u_int16_t findex = _fc_index;
fcntl* fcp = _curr_fc;
- bool in_use = false;
+ bool in_use = false; // at least one file contains an enqueued record
+ bool overwrite = false; // reached the original journal file we started with
while (fwd_dblks && !(findex != _fc_index && fcp->enqcnt()))
{
fwd_dblks -= fwd_dblks > _fsize_dblks ? _fsize_dblks : fwd_dblks;
@@ -133,12 +134,13 @@ wrfc::enq_threshold(const u_int32_t enq_
{
if (++findex == _lpmp->num_jfiles())
findex = 0;
+ overwrite |= findex == _fc_index;
fcp = _lpmp->get_fcntlp(findex);
}
in_use |= fcp->enqcnt() > 0;
}
// Return true if threshold exceeded
- return findex != _fc_index && in_use;
+ return (findex != _fc_index && in_use) || overwrite;
}
bool wrfc::wr_reset()
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/StorePlugin.cpp Tue Feb 4 11:13:42 2014
@@ -46,7 +46,7 @@ struct StorePlugin : public Plugin {
Broker* broker = dynamic_cast<Broker*>(&target);
if (!broker) return;
store.reset(new MessageStoreImpl(broker));
- DataDir& dataDir = broker->getDataDir ();
+ const DataDir& dataDir = broker->getDataDir ();
if (options.storeDir.empty ())
{
if (!dataDir.isEnabled ())
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp Tue Feb 4 11:13:42 2014
@@ -95,11 +95,17 @@ bool SenderContext::send(const qpid::mes
return true;
} else {
deliveries.push_back(Delivery(nextId++));
- Delivery& delivery = deliveries.back();
- delivery.encode(MessageImplAccess::get(message), address, setToOnSend);
- delivery.send(sender, unreliable);
- *out = &delivery;
- return true;
+ try {
+ Delivery& delivery = deliveries.back();
+ delivery.encode(MessageImplAccess::get(message), address, setToOnSend);
+ delivery.send(sender, unreliable);
+ *out = &delivery;
+ return true;
+ } catch (const std::exception& e) {
+ deliveries.pop_back();
+ --nextId;
+ throw SendError(e.what());
+ }
}
} else {
return false;
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/store/ms-clfs/MSSqlClfsProvider.cpp Tue Feb 4 11:13:42 2014
@@ -370,7 +370,7 @@ MSSqlClfsProvider::earlyInitialize(Plugi
// Check the store dir option; if not specified, need to
// grab the broker's data dir.
if (options.storeDir.empty()) {
- DataDir& dir = store->getBroker()->getDataDir();
+ const DataDir& dir = store->getBroker()->getDataDir();
if (dir.isEnabled()) {
options.storeDir = dir.getPath();
}
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h?rev=1564254&r1=1564253&r2=1564254&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h Tue Feb 4 11:13:42 2014
@@ -38,11 +38,11 @@ class MemoryMappedFile {
/**
* Opens a file that can be mapped by region into memory
*/
- QPID_COMMON_EXTERN std::string open(const std::string& name, const std::string& directory);
+ QPID_COMMON_EXTERN void open(const std::string& name, const std::string& directory);
/**
* Closes and removes the file that can be mapped by region into memory
*/
- QPID_COMMON_EXTERN void close(const std::string& path);
+ QPID_COMMON_EXTERN void close();
/**
* Returns the page size
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org