Re: Qpid 0.22 spec file for SL 6.2

2013-11-27 Thread Andrew Stitcher
On Wed, 2013-11-27 at 14:16 +, Bruno Matos wrote:
> Hi,
> 
> I've changed the Qpid 0.22 spec file from FC18 to build RPMs for SL 6.2. 
> If someone need, they are in attachment, and the contents are:
>   * Final Qpid spec file for SL 6.2;
>   * Diff from original spec file;
>   * Patch to add -DNDEBUG to Gnu compiler.

I'd strongly recommend NOT patching the CMake system like this.

Instead in the spec file build using a Release or Release with Debug
Info setting.

So in the line you have

%cmake

use something like

%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo

[This will also set different optimisation options from the default.
Although I find it a little puzzling the SL6.2s rpmbuild dosn't already
set a Release build type in the %cmake macro - I'm pretty sure that
Fedora's macro does this]

> 
> The NDEBUG is needed because there is an assert in ACL plugin that kills 
> the Broker when a route is created between brokers with ACL policies 
> set. This may have been fixed in 0.24, at least I couldn't reproduce it 
> with Qpid 0.24 FC19 packages.
> 
> One problem that I know exists and I didn't solve has to do with 
> dependencies. The package qpid-cpp-client depends on 
> qpid-cpp-client-rdma and qpid-cpp-client-ssl because there are some 
> files being added to qpid-cpp-client that I think they shouldn't: 
> rdmaconnector.so and sslconnector.so. To solve this, however, it would 
> be necessary to change the way the amqpc.so is included.

I don't understand this: the dependencies are the other way around -
qpid-cpp-client-rdma & qpid-cpp-client-ssl depend on 
qpid-cpp-client.

The rdma and ssl subpackages just add those extra plugins to the client
library.

I think your problem is the %files line:

%{_libdir}/qpid/client/*

Since the only plugin included in the client package is amqpc.so this
could be just

%{_libdir}/qpid/client/amqpc.so

In any case any plugins shipped with qpid-cpp-client should be
individually enumerated in the files section because there are some
plugins that are not shipped in that package.

In fact I think this is simply a bug in the original spec file.

[In the 0.26 there is no separate amqpc or ssl module leaving only rdma
as a module so this will go away as an issue]

Andrew



-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



RE: QPid 0.14 messaging times

2013-11-27 Thread Steve Huston
This is a bit of a SWAG but you may be seeing effects of Nagle's algorithm. I 
believe the default for --tcp-nodelay changed to "on" sometime after your 
version. You may want to try that on both the client and broker side.

-Steve

> -Original Message-
> From: Toralf Lund [mailto:toralf.l...@pgs.com]
> Sent: Wednesday, November 27, 2013 9:26 AM
> To: users@qpid.apache.org
> Subject: QPid 0.14 messaging times
> 
> Hi.
> 
> I'm testing pretty standard (I think) request-response type setup for
> communication between two processes, using QPid 0.14 (AMQP 0.10).
> Messaging is implemented via a the C++ Messaging API, and the broker is
> qpidd from qpid-cpp-server. All running under CentOS 6.4. Messages are
> typically quite small - contents are often just 2-3 bytes, but there are 
> couple
> of headers as well.
> 
> Question: What sort of transfer times should I expect for my setup? When
> testing with all processes on the same machine, and a broker used
> exclusively for this purpose, I get a round-trip time of up to 80 ms, or 
> slightly
> more, which is a bit longer than I expected. Furthermore, closer inspection
> seems to reveal that I get either of the following 4
> scenarios:
> 
>  1. (Worst case) The request message takes around 40 ms to reach the
> "server", and the response 40 ms to get back to the client - for a
> total time of around 80 ms.
>  2. The request message takes around 40 ms, but the response is very
> fast, perhaps the transfer time is 1 ms or so. So the total time is
> 40 ms or so.
>  3. As above, only the other way around (fast request, slower response.)  4.
> The request and response are both very fast, giving nearly
> instantaneous feedback.
> 
> 2 and 3 are the most common of these.
> 
> So, is this as expected, or should I expect faster transfers? Where might the
> 40 ms come from?
> 
> I suppose I should provide some code here, but it will take a while to
> prepare, so I thought I might ask some general questions first...
> 
> As for QPid version, I'm using 0.14 simply because it seems to be the most
> recent available on standard software depositories for the system, but
> upgrading to a more recent release may of course be an option.
> 
> Thanks,
> 
> 
> - Toralf
> 
> 
> This e-mail, including any attachments and response string, may contain
> proprietary information which is confidential and may be legally privileged. 
> It
> is for the intended recipient only. If you are not the intended recipient or
> transmission error has misdirected this e-mail, please notify the author by
> return e-mail and delete this message and any attachment immediately. If
> you are not the intended recipient you must not use, disclose, distribute,
> forward, copy, print or rely on this e-mail in any way except as permitted by
> the author.

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



QPid 0.14 messaging times

2013-11-27 Thread Toralf Lund

Hi.

I'm testing pretty standard (I think) request-response type setup for 
communication between two processes, using QPid 0.14 (AMQP 0.10). 
Messaging is implemented via a the C++ Messaging API, and the broker is 
qpidd from qpid-cpp-server. All running under CentOS 6.4. Messages are 
typically quite small - contents are often just 2-3 bytes, but there are 
couple of headers as well.


Question: What sort of transfer times should I expect for my setup? When 
testing with all processes on the same machine, and a broker used 
exclusively for this purpose, I get a round-trip time of up to 80 ms, or 
slightly more, which is a bit longer than I expected. Furthermore, 
closer inspection seems to reveal that I get either of the following 4 
scenarios:


1. (Worst case) The request message takes around 40 ms to reach the
   "server", and the response 40 ms to get back to the client - for a
   total time of around 80 ms.
2. The request message takes around 40 ms, but the response is very
   fast, perhaps the transfer time is 1 ms or so. So the total time is
   40 ms or so.
3. As above, only the other way around (fast request, slower response.)
4. The request and response are both very fast, giving nearly
   instantaneous feedback.

2 and 3 are the most common of these.

So, is this as expected, or should I expect faster transfers? Where 
might the 40 ms come from?


I suppose I should provide some code here, but it will take a while to 
prepare, so I thought I might ask some general questions first...


As for QPid version, I'm using 0.14 simply because it seems to be the 
most recent available on standard software depositories for the system, 
but upgrading to a more recent release may of course be an option.


Thanks,


- Toralf


This e-mail, including any attachments and response string, may contain 
proprietary information which is confidential and may be legally privileged. It 
is for the intended recipient only. If you are not the intended recipient or 
transmission error has misdirected this e-mail, please notify the author by 
return e-mail and delete this message and any attachment immediately. If you 
are not the intended recipient you must not use, disclose, distribute, forward, 
copy, print or rely on this e-mail in any way except as permitted by the author.


Qpid 0.22 spec file for SL 6.2

2013-11-27 Thread Bruno Matos

Hi,

I've changed the Qpid 0.22 spec file from FC18 to build RPMs for SL 6.2. 
If someone need, they are in attachment, and the contents are:

 * Final Qpid spec file for SL 6.2;
 * Diff from original spec file;
 * Patch to add -DNDEBUG to Gnu compiler.

The NDEBUG is needed because there is an assert in ACL plugin that kills 
the Broker when a route is created between brokers with ACL policies 
set. This may have been fixed in 0.24, at least I couldn't reproduce it 
with Qpid 0.24 FC19 packages.


One problem that I know exists and I didn't solve has to do with 
dependencies. The package qpid-cpp-client depends on 
qpid-cpp-client-rdma and qpid-cpp-client-ssl because there are some 
files being added to qpid-cpp-client that I think they shouldn't: 
rdmaconnector.so and sslconnector.so. To solve this, however, it would 
be necessary to change the way the amqpc.so is included.


Tests and suggestions are welcome, I hope the spec file can be useful 
for someone else.


Regards.

--
Bruno Matos

diff --git a/qpid-0.22/cpp/src/CMakeLists.txt b/qpid-0.22/cpp/src/CMakeLists.txt
index 2a3cfcf..37c0ab5 100644
--- a/qpid-0.22/cpp/src/CMakeLists.txt
+++ b/qpid-0.22/cpp/src/CMakeLists.txt
@@ -287,6 +287,8 @@ if (CMAKE_COMPILER_IS_GNUCXX)
else (GCC_VERSION VERSION_EQUAL 4.1.2)
  set (HIDE_SYMBOL_FLAGS "-fvisibility=hidden")
endif (GCC_VERSION VERSION_EQUAL 4.1.2)
+
+   add_definitions("-DNDEBUG")
 endif (CMAKE_COMPILER_IS_GNUCXX)
 
 if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
# qpid-cpp

%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}

# The following macros are no longer used for installation but only for cleanup
%{!?ruby_sitelib: %global ruby_sitelib %(/usr/bin/ruby -rrbconfig  -e 'puts Config::CONFIG["sitelibdir"] ')}
%{!?ruby_sitearch: %global ruby_sitearch %(/usr/bin/ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')}

# LIBRARY VERSIONS
%global QPIDCOMMON_VERSION_INFO 5:0:0
%global QPIDTYPES_VERSION_INFO  3:0:2
%global QPIDBROKER_VERSION_INFO 5:0:0
%global QPIDCLIENT_VERSION_INFO 5:0:0
%global QPIDMESSAGING_VERSION_INFO  4:0:1
%global QMF_VERSION_INFO4:0:0
%global QMF2_VERSION_INFO   1:0:0
%global QMFENGINE_VERSION_INFO  4:0:0
%global QMFCONSOLE_VERSION_INFO 5:0:0
%global RDMAWRAP_VERSION_INFO   5:0:0
%global SSLCOMMON_VERSION_INFO  5:0:0

# Single var with all lib version params (except store) for make
%global LIB_VERSION_MAKE_PARAMS QPIDCOMMON_VERSION_INFO=%{QPIDCOMMON_VERSION_INFO} QPIDBROKER_VERSION_INFO=%{QPIDBROKER_VERSION_INFO} QPIDCLIENT_VERSION_INFO=%{QPIDCLIENT_VERSION_INFO} QPIDMESSAGING_VERSION_INFO=%{QPIDMESSAGING_VERSION_INFO} QMF_VERSION_INFO=%{QMF_VERSION_INFO} QMFENGINE_VERSION_INFO=%{QMFENGINE_VERSION_INFO} QMFCONSOLE_VERSION_INFO=%{QMFCONSOLE_VERSION_INFO} RDMAWRAP_VERSION_INFO=%{RDMAWRAP_VERSION_INFO} SSLCOMMON_VERSION_INFO=%{SSLCOMMON_VERSION_INFO}

Name:  qpid-cpp
Version:   0.22
Release:   3%{?dist}
Summary:   Libraries for Qpid C++ client applications
License:   ASL 2.0
URL:   http://qpid.apache.org

Source0:   http://www.apache.org/dist/qpid/%{version}/qpid-%{version}.tar.gz

BuildRequires: cmake
BuildRequires: boost-devel
BuildRequires: libtool
BuildRequires: doxygen
BuildRequires: pkgconfig
BuildRequires: ruby
BuildRequires: ruby-devel
BuildRequires: python
BuildRequires: python-devel
BuildRequires: perl
BuildRequires: perl-devel
BuildRequires: swig
BuildRequires: cyrus-sasl-devel
BuildRequires: cyrus-sasl-lib
BuildRequires: cyrus-sasl
BuildRequires: boost-program-options
BuildRequires: boost-filesystem
BuildRequires: libuuid-devel
%ifnarch s390 s390x %{arm}
BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel
%endif
BuildRequires: nss-devel
BuildRequires: nspr-devel
BuildRequires: xqilla-devel
BuildRequires: xerces-c-devel
BuildRequires: db4-devel
BuildRequires: db4-cxx
BuildRequires: libaio-devel


Patch2: 02-QPID-4826-Patch-Perl-bindings-memory-leak.patch
Patch3: 03-QPID-4843-Fixed-the-Perl-spout.pl-example.patch
Patch4: 04-QPID-4857-Fixed-passing-Perl-Message-to-C-code.patch
Patch5: 05-QPID-4885-C-examples-install-to-qpid-examples.patch
Patch6: 06-QPID-4889-Only-installs-the-Swig-descriptors-in-usr-.patch
Patch7: 07-QPID-4825-Add-SOVERSION-link-to-shared-libraries.patch
Patch8: 08-NO-JIRA-CXXFLAGS-NDEBUG.patch


%description

Run-time libraries for AMQP client applications developed using Qpid
C++. Clients exchange messages with an AMQP message broker using
the AMQP protocol.



%package -n qpid-cpp-client
Summary:   Libraries for Qpid C++ client applications

Requires:  boost
Requires:  chkconfig
Requires:  initscripts

%description -n qpid-cpp-client
Run