because our previous SLES Version does not support required apr-version, we used the ActiveMQ C++ Client 2.2.6, which was compiled to a shared object/library and called by a cobol application (via CALL). This combination works fine.
Actually we updated our SLES and a higher apr-version now is supported. So we tried to use a higher-version of the ActiveMQ C++ Client (e.g. 3.0 and 3.7.1), which we compiled to a shared object for calling via a cobol application, too.
Calling the new version now causes a segmentation fault, the ActiveMQ shared object crashes on initialization, before any command is executed.
We think it deals with loading/initialising the activemq library (activemq::library; ActiveMQCPP::initializeLibrary()), because it is new since version 3.0.0. Another point is we reduced our ActiveMQ shared object to only print a line. This certainly works. Adding the command activemq::library; ActiveMQCPP::initializeLibrary() causes the identicall segfault.
Bizarrely calling the identical shared object from a C++ application works.
We don't understand why calling the ActiveMQ shared object doens't work from cobol, however it works calling from a C++ application. With a release <=2.2.6 both call variations working.
We hope you have any ideas for let us understand this issue or to give us some advice for solving this problem.
Thanks in regards!