Reported by
John (1227543416|%O ago)
The binary download of OpenAMQ (stable edition) does not work on Windows 2008. However, a version just built from source with VS 2003 on Windows XP does.
The error I received was a socket error on the client and a rejection on the server/broker.
If this is at all important, I shall be happy to reproduce the error.
I can live with this "problem" as I have solved it.
Attachments:
No files attached to this page.
Comments
Who's following this issue?
Submitted by
John
Use one of these tags to say what kind of issue it is:
- issue - a fault in the software or the packaging or the documentation.
- change - a change or feature request.
Use one of these tags to say what state the issue is in:
- open - a new, open issue.
- closed - issue has been closed.
- rejected - the issue has been rejected.
Use one of these tags to say how urgent the issue is:
- fatal - the issue is stopping all work.
- urgent - it's urgent.
All open
87 - Zyre returns incomplete XML (26 Apr 2010 08:15) [open]
86 - SFL 'random(num)' macro is wrong in sfl.h (31 Mar 2010 09:23) [open]
85 - Zyre does not start on Solaris (23 Mar 2010 01:29) [open]
84 - OpenAMQ JMS - AMQTopic constructor use HEADER name and class instead of TOPIC (28 Jan 2010 17:04) [open]
83 - WireAPI: How to 'override' signal handlers? (14 Jan 2010 17:33) [open]
82 - Opf Classes Cannot Accept Default Values With Characte (06 Jan 2010 09:34) [open]
81 - AMQP Topic Exhange Routing (29 Dec 2009 00:21) [open]
80 - OpenAMQ reports malformed frame on 0-9-1 queue.unbind (20 Nov 2009 12:33) [open]
79 - AMQ Server crashing if subscribe topic is set as #.# (30 Oct 2009 06:11) [open]
78 - Error while publishing the messages faster (30 Oct 2009 05:57) [open]
77 - Tuning for latency (28 Oct 2009 16:47) [open]
76 - New user forum (28 Oct 2009 11:29) [change open]
74 - Simulaneous connect/disconnect from multiple threads crashes (03 Sep 2009 15:32) [open]
73 - Topic Exchange not sending a message to XXX.* (25 Aug 2009 21:10) [open]
72 - amq_content_basic_new() causes seg fault if not connected to broker (12 Aug 2009 23:50) [open]
71 - zyre bugs (06 Aug 2009 09:33) [open]
69 - OpenAMQ and Zyre (15 Jul 2009 11:27) [open]
68 - Change names of max and min source code macros (10 Jul 2009 16:52) [open]
67 - Server crash when multiple consumers ack on shared queue (26 Jun 2009 11:35) [open]
63 - Broker Crashing (14 May 2009 20:17) [open]
Most recent
88 - amq_console_agent crashes (28 Aug 2010 08:46) [closed]
87 - Zyre returns incomplete XML (26 Apr 2010 08:15) [open]
86 - SFL 'random(num)' macro is wrong in sfl.h (31 Mar 2010 09:23) [open]
85 - Zyre does not start on Solaris (23 Mar 2010 01:29) [open]
84 - OpenAMQ JMS - AMQTopic constructor use HEADER name and class instead of TOPIC (28 Jan 2010 17:04) [open]
83 - WireAPI: How to 'override' signal handlers? (14 Jan 2010 17:33) [open]
82 - Opf Classes Cannot Accept Default Values With Characte (06 Jan 2010 09:34) [open]
81 - AMQP Topic Exhange Routing (29 Dec 2009 00:21) [open]
80 - OpenAMQ reports malformed frame on 0-9-1 queue.unbind (20 Nov 2009 12:33) [open]
79 - AMQ Server crashing if subscribe topic is set as #.# (30 Oct 2009 06:11) [open]







I haven't been able to build version 1.3c2 on XP 32 using VS2003 SP1. I believe I followed the directions properly. Did you have to do anything special to get it to build?
I've been trying the 1.3 build on Windows and it fails in several places, mainly due to areas where MSVC is not C99 compliant. We'll have a new package that builds on Win32 asap.
Portfolio
Hello John,
I believe I have the same issue, as described in my post: http://lists.openamq.org/pipermail/openamq-dev/2009-January/001042.html
Could you share how you resolved your issue?
Thank you very much!
Thomas
Hi,
saw the note that only 5 year old version of MSVC++ is supported. I have '08 tried to build and of course it failed.
However the failures have to do with not finding binaries such as dos2unix and others. do I need a complete cygwin tool setup to attempt the build?
(the C sources it tried to build only generated warnings, but no errors). Also the build script appears to build debug by default. Where do I change that (because Og is specified)
sflcons.c(305) : warning C4996: '_snprintf': This function or variable may be un
safe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECUR
E_NO_WARNINGS. See online help for details.
c:\usr\local\MSVS9.0\VC\include\stdio.h(358) : see declaration of '_snpr
intf'
cl : Command line warning D9035 : option 'Og' has been deprecated and will be re
moved in a future release
cl : Command line warning D9002 : ignoring unknown option '/ML'
The MSVC packaging needs an update, indeed.
The build script calls a batch file c.bat, which you can modify to use the right settings. Send me any changes you find useful, and I'll incorporate them.
I think we'd probably want to make it work with MSVC'08 and drop support for earlier versions.
Portfolio
ok, thank you will do that.
If I have questions as I go alone - should I ask them on here?
(I saw that some IPV6 constants are not defined — probably because winsock2 is not included but not sure where the best place to make such mod. )
thanks,
Vlad
We use the Apache Portable Runtime (APR) to wrap all socket functions, so I guess IPv6 definitions would go in there. I assume APR supports IPv6 but have not checked.
I'd like to make OpenAMQ work with IPv6, right now it assumes IPv4 in a few places, but generally sockets are opaque objects managed by APR.
Portfolio
decided to do an overnight stint and see if I can finish it tonight.
Sofar making good progress.
Installed the latest apache runtime and apr-util, compiled everything in foreign directory including tests.
Everything in foreign compiled without any source code changes (probably new APR helped there).
basically the 3 big changes where
a)add new msvc91 into boomvs.bat
b)created new convert90.js (and added SaveAs function call)
c) in command line before building anything
invoke vcvars32.bat
set MSVCDIR=%VCINSTALLDIR%
set BOOM_MODEL=release,mt
So the above essentially updated the build system
(I also started changed MSVCDIR into VCINSTALL DIR
in all the boombuild.bat files but it was taking too much manual
work for me)
I can email the file changes as needed or when I am done.
Vlad
PS at the moment I am in:
Getting errors in icl and ipr..
icl_demo_scope.c
MSVCRT.lib(MSVCR90.dll) : error LNK2005: _malloc already defined in libcmt.lib(m
alloc.obj)
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; us
e /NODEFAULTLIB:library
icl_stats_examine.exe : fatal error LNK1169: one or more multiply defined symbol
s found
Link errors in icl_stats_examine.obj
boom E: [iCL]: 'c -q -li C:\usr\local\OpenAMQ-1.4a2\base-2.3\_install\include -l
l C:\usr\local\OpenAMQ-1.4a2\base-2.3\_install\lib -L icl_stats_examine' failed
- stop.
ok, I think I need some help with c.bat
the error I am getting with linking (see above)
has to do with the fact that a static version
of C runtime library is used (libcmt.lib),
and and in in probably most
of the other places a dynamic version of runtime libarary
is used (by default — it is msvcrt)
I do not quite understand how to address this,
I can try disabling it in c.bat — but not sure if this the right place either.
got passed linking problems. Actually generated some executables (the code generator gsl.exe and bunch of other including all unit test in icl). Took care of embedding manifests into executables as well (so no separate manifest
files are needed)
Having problems now with actual c-sources.
ipr_dir.c is failing in a very strange place just declaring a variable. The same declaration in a separate c file works fine.
icl_shortstr_t
copy_path;
I regenerated the file from icl - that of course did not help.
C:\usr\local\OpenAMQ-1.4a2\base-2.3\ipr>..\..\bin\c ipr_dir.c
Compiling ipr_dir.c…
ipr_dir.c
ipr_dir.c(683) : error C2275: 'icl_shortstr_t' : illegal use of this type as an
expression
c:\usr\local\OpenAMQ-1.4a2\include\icl.h(4715) : see declaration of 'icl
_shortstr_t'
ipr_dir.c(683) : error C2146: syntax error : missing ';' before identifier 'copy
_path'
The previous problem had to do with C99 compliance
basicall if source code is compiled as C, declaration of variables (or may be declrations with typdefed types) cannot be done anywhere but in the beginning of the function body.
In the particular case ipr_dir — I just changed the icl and things worked.
I am pretty far along now, and have many executabels and libraries generated.
However I think I reached a roadblock that I simply
will not be able to fix.
It has to do again with C99 compliance and I think the gsl code generator will have to change.
I came across
amq_client_session
and I am getting the same error
But the code causing it does not come from the icl fail
instead it is generated from amq_client.asl
And it looks like the declarations done right in the beginning
of functions — but they are not, because there is one or several macros.
For example, in the snipped below — code declaring
*content pointer does not compile (and if I try to compile with TP — meaning as C++, the erros are in the fact that memory allocation routines are are returning * void but it is being assigned to char* (and it is also generated code))
int
amq_client_session_wait (
amq_client_session_t * self, // Reference to object
int timeout // Timeout, in milliseconds
)
{
int
rc = 0; // Return code
#if (defined (BASE_ANIMATE) || defined (BASE_ANIMATE_AMQ_CLIENT_SESSION) || defined (BASE_ANIMATE_AMQ_CLIENT_SESSION_WAIT))
if (amq_client_session_animating)
icl_console_print ("<amq_client_session_wait_start"
#if (defined (BASE_THREADSAFE))
" thread=\"%pp\""
#endif
" self=\"%pp\""
" timeout=\"%i\""
"/>"
#if (defined (BASE_THREADSAFE))
, apr_os_thread_current ()
#endif
, self, timeout);
#endif
#if (defined (BASE_TRACE) || defined (BASE_TRACE_AMQ_CLIENT_SESSION) || defined (BASE_TRACE_AMQ_CLIENT_SESSION_WAIT))
icl_trace_record (NULL, amq_client_session_dump, 3);
#endif
#if (defined (BASE_STATS) || defined (BASE_STATS_AMQ_CLIENT_SESSION) || defined (BASE_STATS_AMQ_CLIENT_SESSION_WAIT))
icl_stats_inc ("amq_client_session_wait", &s_amq_client_session_wait_stats);
#endif
AMQ_CLIENT_SESSION_ASSERT_SANE (self);
This would be a good time to publish any pending chrono contents
amq_content_basic_t
*content;
So if somebody can help with this — I think I am pretty close
The OpenAMQ build process now supports VS2008. New packages are coming soon, meanwhile binaries are available on http://win.openamq.org.
Portfolio