Hi,
Thank you for your reply.
I do initialize and shutdown the library.
Here is the complete code.
int main(int argc AMQCPP_UNUSED, char* argv[] AMQCPP_UNUSED) {
activemq::library::ActiveMQCPP::initializeLibrary();
std::cout << "=====================================================\n";
std::cout << "Starting the example:" << std::endl;
std::cout << "-----------------------------------------------------\n";
while(true){
ConnectionFactory* connectionFactory(
ConnectionFactory::createCMSConnectionFactory(
"tcp://127.0.0.1:61616" )
);
Connection* connection = connectionFactory->createConnection();
connection->start();
connection->close();
delete connection;
connection = NULL;
delete connectionFactory;
connectionFactory = NULL;
Sleep(2000);
}
activemq::library::ActiveMQCPP::shutdownLibrary();
}
Regards,
diedie
Timothy Bish wrote:
>
> On Fri, 2010-01-15 at 00:32 -0800, diedie wrote:
>> Hi,
>>
>> I recently upgraded my cms library from 3.0 to 3.1(built using vs-2005),
>> and face some issues that handle leaks when reconnecting to server.
>>
>> So I wrote a simple testing program based on vs2005-activemq-example,
>> and found that it occurs even I just create the connection and close it.
>> Has any one encountered this before?
>> Or is there anything I should notice but missed?
>>
>> Any reply is appreciated.
>>
>>
>> Here is the code I wrote for testing.
>> ==============================
>> while(true){
>> ConnectionFactory* connectionFactory(
>> ConnectionFactory::createCMSConnectionFactory(
>> "tcp://127.0.0.1:61616"
>> )
>> );
>>
>> Connection* connection = connectionFactory->createConnection();
>> connection->start();
>> connection->close();
>> delete connection;
>> connection = NULL;
>> delete connectionFactory;
>> connectionFactory = NULL;
>> Sleep(2000);
>> }
>> =============================
>>
>> And following are the reports generated using DebugDiag.
>> It's strange that it leaks in different when I using different linking
>> method.
>>
>> Static Linking case :
>> Function msvcr80d!_beginthreadex+fd
>> Allocation type Thread handle(s)
>> Handle Count 816 handle(s)
>> Leak Probability 100%
>>
>> Call stack sample 1
>
> So far I have not found any leaks. Did your complete application
> include code to initialize and shutdown the ActiveMQ-CPP library, its
> not included in the snippet.
>
> Regards
> Tim.
>
>>
>> Handle 0x00001448 Allocation Time 00:05:26 since tracking started
>> Function Source Destination
>> msvcr80d!_beginthreadex+fd
>> f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 206
>> kernel32!CreateThread
>> vs2005_activemq_example!decaf::lang::Thread::start+13b
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\decaf\lang\thread.cpp
>> @ 378 msvcr80d!_beginthreadex
>> msvcr80d!_free_dbg+5d f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
>> @
>> 1222
>> msvcr80d!operator delete+c6
>> f:\dd\vctools\crt_bld\self_x86\crt\src\dbgdel.cpp @ 56
>> vs2005_activemq_example!activemq::transport::IOTransport::start+1de
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\iotransport.cpp
>> @ 166
>> vs2005_activemq_example!activemq::transport::TransportFilter::start+53
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\transportfilter.cpp
>> @ 90
>> vs2005_activemq_example!activemq::transport::correlator::ResponseCorrelator::start+113
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\correlator\responsecorrelator.cpp
>> @ 243
>> vs2005_activemq_example!activemq::core::ActiveMQConnection::ActiveMQConnection+21b
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\core\activemqconnection.cpp
>> @ 80
>> vs2005_activemq_example!activemq::core::ActiveMQConnectionFactory::createConnection+39c
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\core\activemqconnectionfactory.cpp
>> @ 143
>> vs2005_activemq_example!main+14a
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\examples\main.cpp @
>> 397
>> vs2005_activemq_example!mainCRTStartup+d
>> f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 414
>> kernel32!BaseProcessStart+23
>>
>> Dynamic Linking case :
>> Function
>> libactivemq_cpp_31_vc80_mt_d!decaf::internal::util::concurrent::ConditionImpl::create+a5
>>
>> Allocation type Semaphore handle(s)
>> Handle Count 2730 handle(s)
>> Leak Probability 100%
>>
>> Call stack sample 1
>>
>> Handle 0x00000784
>> Allocation Time 00:05:06 since tracking started
>> Function Source Destination
>> libactivemq_cpp_31_vc80_mt_d!decaf::internal::util::concurrent::ConditionImpl::create+a5
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\decaf\internal\util\concurrent\windows\conditionimpl.cpp
>> @ 47 kernel32!CreateSemaphoreA
>> libactivemq_cpp_31_vc80_mt_d!activemq::transport::tcp::TcpTransport::initialize+452
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\tcp\tcptransport.cpp
>> @ 129
>> libactivemq_cpp_31_vc80_mt_d!activemq::transport::tcp::TcpTransportFactory::doCreateComposite+12d
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\tcp\tcptransportfactory.cpp
>> @ 99
>> libactivemq_cpp_31_vc80_mt_d!activemq::transport::tcp::TcpTransportFactory::create+c1
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\transport\tcp\tcptransportfactory.cpp
>> @ 53
>> libactivemq_cpp_31_vc80_mt_d!activemq::core::ActiveMQConnectionFactory::createConnection+2df
>>
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\main\activemq\core\activemqconnectionfactory.cpp
>> @ 133
>> vs2005_activemq_example!main+168
>> e:\3rdparty\activemq\cms-3.1\activemq-cpp-library\src\examples\main.cpp @
>> 397
>> vs2005_activemq_example!mainCRTStartup+d
>> f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 414
>> kernel32!BaseProcessStart+23
>>
>
> --
> Tim Bish
> http://fusesource.com
> http://timbish.blogspot.com/
>
>
>
>
>
--
View this message in context:
http://old.nabble.com/Handle-leaks-using-CMS-3.1-tp27173352p27235982.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.