为什么Spring或C3p0没有清理C3P0线程?

时间:2015-08-12 03:26:31

标签: java spring tomcat memory-leaks c3p0

类似于我的问题Spring Tomcat C3P0PooledConnectionPoolManager creates a memory leak我希望了解为什么Spring或C3P0本身没有清理它在关机时创建的线程?

我在Tomcat中获得以下日志

int main(int argc, char *argv[])
{
//initialize socket and structure
int socket_info;
struct sockaddr_in server;
char incoming_message[100];

    //create socket
    socket_info = socket(AF_INET, SOCK_DGRAM, 0);
    if (socket_info == -1) {
    printf("Could not create socket");
    }

    //assign values
    server.sin_addr.s_addr = inet_addr("172.21.8.179");
    server.sin_family = AF_INET;
    server.sin_port = htons( 1100 );

    //checks connection
    if (bind(socket_info, (struct sockaddr *)&server, sizeof(server)) < 0) {
    perror("Connection error");
       return 1;
    }
    puts("Bind");

    //Receive an incoming message
if( recv(socket_info, incoming_message, sizeof(incoming_message), 0) < 0) {      
puts("Received failed");
    return 1;
    }
    puts("Message received");
    puts(incoming_message);

server.sin_addr.s_addr = inet_addr("172.21.8.178");

if (connect(socket_info, (struct sockaddr *)&server, sizeof(server)) < 0) {
    perror("Connection error");
     return 1;
    }
    puts("Connected");

//Sends message back
char message[100];

printf("Input Message: ");
fgets(message, 100, stdin);

if(send(socket_info, message, strlen(message), 0) <0) {        
perror("Send failed");
    return 1;
    }
    puts("Message Sent");

close(socket_info);
}

我对解决方案不感兴趣,因为我已经有基于这些线程的工作解决方案

Hibernate4 + c3p0 + Derby - Memory Leak on Tomcat stop or web application reload

Tomcat Guice/JDBC Memory Leak

To prevent a memory leak, the JDBC Driver has been forcibly unregistered

我只是想明白为什么Spring没有关闭它。谢谢

0 个答案:

没有答案