Return-Path: Delivered-To: apmail-ws-axis-c-dev-archive@www.apache.org Received: (qmail 26569 invoked from network); 25 Jan 2005 07:59:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 25 Jan 2005 07:59:49 -0000 Received: (qmail 54915 invoked by uid 500); 25 Jan 2005 07:59:48 -0000 Delivered-To: apmail-ws-axis-c-dev-archive@ws.apache.org Received: (qmail 54894 invoked by uid 500); 25 Jan 2005 07:59:48 -0000 Mailing-List: contact axis-c-dev-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: List-Id: "Apache AXIS C Developers List" Reply-To: "Apache AXIS C Developers List" Delivered-To: mailing list axis-c-dev@ws.apache.org Received: (qmail 54874 invoked by uid 99); 25 Jan 2005 07:59:48 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of samisa.abeysinghe@gmail.com designates 64.233.184.199 as permitted sender) Received: from wproxy.gmail.com (HELO wproxy.gmail.com) (64.233.184.199) by apache.org (qpsmtpd/0.28) with ESMTP; Mon, 24 Jan 2005 23:59:48 -0800 Received: by wproxy.gmail.com with SMTP id 68so371532wra for ; Mon, 24 Jan 2005 23:59:45 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding; b=TUeBL2jQpIwHqt04zjynZOHzV0x6dlZE92PnzXTW2nimCiCLqL4xYY25D9QQnDdXc1lzsimbQPvwNk6PmEUlHmS08uH0Bdl8PsENYiw44pFTcJykRMO00b3l3TeZXCWEEKbxTf98jb1JKk1KHgTMs2+yroyEZBtx41TMrA3dcTQ= Received: by 10.54.39.9 with SMTP id m9mr191460wrm; Mon, 24 Jan 2005 23:59:45 -0800 (PST) Received: by 10.54.28.40 with HTTP; Mon, 24 Jan 2005 23:59:45 -0800 (PST) Message-ID: Date: Tue, 25 Jan 2005 07:59:45 +0000 From: Samisa Abeysinghe Reply-To: Samisa Abeysinghe To: Apache AXIS C Developers List Subject: ChannelFactory::LoadChannelLibrary is called for each method call on Stub Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hi, It looks to me that the above mentioned method is called for each method invocation. This is because we have m_pTransport->setTransportProperty( CHANNEL_HTTP_DLL_NAME, pcChannelHTTPLibraryPath); inside Call::openConnection() and this is called by Call::initialize() which is always called when a method is invoked. The code works OK, but the problem is in case of performance. 1. A Channel object is created for every method invocation 2. Because of 1 above, we always have to create a new connection 3. 2 above violates Connection-keep-alive in HTTP/1.1 In axis2 transport, we had the featurer, where the connection to service is re-established iff the URL changes, thus re-using the same connection for subsequent invocations in case of HTTP/1.1 Because of the channel loading mechanism, it is a but though to do the same in case of axis3. But I think if we conditionnaly invoke m_pTransport->setTransportProperty( CHANNEL_HTTP_DLL_NAME, pcChannelHTTPLibraryPath); if and only if pcChannelHTTPLibraryPath has changed, then we could increase the efficancy. Using something like: if( !strcmp(pcChannelHTTPLibraryPath, pcOldChannelHTTPLibraryPath) { m_pTransport->setTransportProperty( CHANNEL_HTTP_DLL_NAME, pcChannelHTTPLibraryPath); } If we change this, the connection related stuff will work as axis2 as we used the same code here in axis3. I did not change any code in CVS because I am not sure if the above would have any side effects or any other related concerns. Thoughts please. Thanks, Samisa...