Re: Memory leaks

2005-12-21 Thread Tomaz Rotovnik



Hi 
 
I posted similar question couple of weeks ago. 
I tried with tools that could detect memory leaks and I get hints about using 
noncompatible commands for allocating memory (using operator new for allocating 
and then free for dealocating). I checked the source code and I find no such 
cases. I think there was also detected memory leak in excerses XML parser. 

 
When I tested my code in 1 transactions, 
memory consumption first increased, but then a little bit dropped and stayed 
almost the same to the end of transactions.
 
Tomaz
 

  - Original Message - 
  From: 
  Stettler, Robert 
  To: Apache AXIS C User List 
  Sent: Wednesday, December 21, 2005 3:24 
  AM
  Subject: Memory leaks
  
  
  I am using 1.5 final.  It 
  seems to be leaking.  I am deleting objects returned by generated stubs 
  and I delete the Soap object when I am done with it.  Is there any other 
  clean up that is required?





The information contained in this e-mail is confidential and/or proprietary

to Capital One and/or its affiliates. The information transmitted herewith

is intended only for use by the individual or entity to which it is 

addressed.  If the reader of this message is not the intended recipient, 

you are hereby notified that any review, retransmission, dissemination, 

distribution, copying or other use of, or taking of any action in reliance 

upon this information is strictly prohibited. If you have received this 

communication in error, please contact the sender and delete the material 

from your computer.






Loading HTTPChannel.dll multiple times

2005-11-22 Thread Tomaz Rotovnik



Hi
 
I'm working on Axis for about 3 months. I already 
reported some problems and also receive solutions, so I would like to thanks for 
that. 
 
My next problem is somehow also connected 
with this issue: http://issues.apache.org/jira/browse/AXISCPP-657.
 
In my program I have callback function which is 
called by some other program. This callback function has declared Stub 
object, so it sends data (SOAP format) to the web server and waits for response. 
The skeleton was created by WSDL2WS tool. Callback function is 
called by different threads, so it can be called simultaneously. I looked 
through examples for multithreading task. So the Stub object must be created 
inside callback function, other way callback function could cause an 
error because in multithreading process the same Stub object could be accessed 
more than once in the same time. 
But when the Stub object is created 
inside callback function is also destroyed when the function returns. This means 
that HTTPChannel.dll will be called multiple times. 
 
Is it possible to avoid multiple calls of loading 
library in multithreaded environment?
 
Best regards
 
Tomaz Rotovnik
 


Memory Leak - solution

2005-11-01 Thread Tomaz Rotovnik



Hello
 
I would like to post some comments about memory 
handling with user defined parameters (whith those that are send to the web 
server and those that are received from the web server). In previous posts 
(see mail below) I already mentioned memory leak, because user defined 
parameters are never deleted. 
 
 
Reason why I can't deleted allocated memory was 
in compiler settings: I use setting "multithreaded run time library" 
instead of "multithreaded DLL run time library". I think this should 
be mentioned (or alerted) before users start developing their own examples. 
I spent one week to figure this out. If this is already mentioned then I 
apologize. 
 
Now I was able to delete xsd_string types, for an 
example:
 
setReturnAddPointsParameter::~setReturnAddPointsParameter(){  ... if(sBlpType 
!= NULL){   delete [] sBlpType; } sBlpType = 
NULL;
...
}
The problem was still with the xsd_double, 
xsd_int or similar types. I put delete statement in 
Axis_DeSerialize_setReturnAddPointsParameter method:
 
 
int 
Axis_DeSerialize_setReturnAddPointsParameter(setReturnAddPointsParameter* param, 
IWrapperSoapDeSerializer* pIWSDZ){
...
xsd__double * dAmount = NULL; if ((dAmount 
= pIWSDZ->getElementAsDouble( "dAmount",0)) != NULL){    
param->dAmount = *( dAmount );delete 
dAmount;    dAmount = NULL; }
...
}
 
The last thing was parameters of xsd_string type 
that are send to the web server. They are added with statement addParameter for 
an example:
 
m_pCall->addParameter((void*)Value1, "sMSISDN", 
XSD_STRING);
 
Inside axis_dll there is new allocation created for 
those types, but it is never deleted. I checked Param.cpp file and destructor 
statement:
 
Param::~Param 
(){...   
  case 
XSD_STRING:
 if 
(AxisEngine::m_bServer){delete 
[] 
const_cast(m_Value.pStrValue); }  break;   ...
} 
 
So allocated memory is only deleted when Axis is 
initialized as server. Why? With commenting this condition string data type is 
deleted with no memory leak.
Is this wrong?
 
Best regards
 
Tomaz Rotovnik
 
 
 
 
 
- Original Message - 
From: Tomaz 
Rotovnik 
To: Apache AXIS C User List 
Sent: Friday, October 28, 2005 5:57 PM
Subject: Memory Leak

Hi again
 
I'm trying to solve the problem with the memory 
leak on the client side of axis library. 
 
I've next function which is called in multithreaded 
way:
 
setReturnAddPointsParameter* pRAPP = NULL;MPBLPSoap 
pBLP_authorize(sMPG.strURL.c_str(), 
APTHTTP1_1);pBLP_authorize.Timeout(10);pRAPP = 
pBLP_authorize.AddPoints(1,string_number,double_value);
 
pRAPP is structure with next 
parameters:
xsd__string sBlpType;xsd__double dAmount;xsd__string 
lTransactionID;
The problem is how to delete allocated space for 
these parameters when I don't needed it any more. There is defined delete 
function
Axis_Delete_setReturnAddPointsParameter which is defined:
 
void 
Axis_Delete_setReturnAddPointsParameter(setReturnAddPointsParameter* param, bool 
bArray = false, int nSize=0){  if 
(bArray) delete [] 
param; else delete param;}
 
So I called this function when I want to delete 
allocated memory for parameters. This function calls destructor:
setReturnAddPointsParameter::~setReturnAddPointsParameter(){
}
 
which is empty. If I use statements delete or free 
inside destructor I get the following error "User breakpoint called from code at 
***". 
So I checked how are basic types defined 
(xsd_string, xsd_double). They are defined as 
classes and their destructors are empty. If I put delete statements into these 
destructors then the result structure pRAPP is empty, because parameters 
are deleted before they can be used (destructor is called after calling this 
method: xsd__stringSoapDeSerializer::getElementAsString (const AxisChar * 
pName, const AxisChar * pNamespace).  
 
So is it possible to delete allocated memory or is there a problem in design 
structure of axis library? I mean is it possible to delete allocated memory for 
basic type classes? Is solution in defining some extra methods which they have 
access to those classes and they include delete statement?
 
Best regards
 
Tomaz
 
 
 


Memory Leak

2005-10-28 Thread Tomaz Rotovnik



Hi again
 
I'm trying to solve the problem with the memory 
leak on the client side of axis library. 
 
I've next function which is called in multithreaded 
way:
 
setReturnAddPointsParameter* pRAPP = NULL;MPBLPSoap 
pBLP_authorize(sMPG.strURL.c_str(), 
APTHTTP1_1);pBLP_authorize.Timeout(10);pRAPP = 
pBLP_authorize.AddPoints(1,string_number,double_value);
 
pRAPP is structure with next 
parameters:
xsd__string sBlpType;xsd__double dAmount;xsd__string 
lTransactionID;
The problem is how to delete allocated space for 
these parameters when I don't needed it any more. There is defined delete 
function
Axis_Delete_setReturnAddPointsParameter which is defined:
 
void 
Axis_Delete_setReturnAddPointsParameter(setReturnAddPointsParameter* param, bool 
bArray = false, int nSize=0){  if 
(bArray) delete [] 
param; else delete param;}
 
So I called this function when I want to delete 
allocated memory for parameters. This function calls destructor:
setReturnAddPointsParameter::~setReturnAddPointsParameter(){
}
 
which is empty. If I use statements delete or free 
inside destructor I get the following error "User breakpoint called from code at 
***". 
So I checked how are basic types defined 
(xsd_string, xsd_double). They are defined as 
classes and their destructors are empty. If I put delete statements into these 
destructors then the result structure pRAPP is empty, because parameters 
are deleted before they can be used (destructor is called after calling this 
method: xsd__stringSoapDeSerializer::getElementAsString (const AxisChar * 
pName, const AxisChar * pNamespace).  
 
So is it possible to delete allocated memory or is there a problem in design 
structure of axis library? I mean is it possible to delete allocated memory for 
basic type classes? Is solution in defining some extra methods which they have 
access to those classes and they include delete statement?
 
Best regards
 
Tomaz
 
 
 


Re: Re: Memory Leak?

2005-10-27 Thread Tomaz Rotovnik



Hi Anders 
 
I checked the method Axis_Delete_setReturnAddPointsParameter and it deletes all the structure, 
but it is never called, so I put statement calling this method after I perform 
transaction. Anyway memory leak still exists. So it is really strange. I think 
I'll go to check how many times is "new" operator called when deserializing 
individual parameter.
 

pRAPP = 
pBLP_authorize.AddPoints(1,sTr.szMSISDN,sTr.dAmount);//data 
processing
Axis_Delete_setReturnAddPointsParameter(pRAPP);
 
void 
Axis_Delete_setReturnAddPointsParameter(setReturnAddPointsParameter* param, bool 
bArray = false, int nSize=0){    if 
(bArray)   delete [] 
param;    else   delete 
param;}
 
Best regards
 
Tomaz 
 
 
 
 
 
>> 
The correct way to destroy complex objects is probably to use> the static 
function Axis_Delete_setReturnAddPointsParameter(...)> which you can find 
in setReturnAddPointsParameter.cpp.>> I haven't been looking at 
XSD_DOUBLE etc but if you say that> these are created with new you are 
probably correct.>> /Anders>>>From: Tomaz 
Rotovnik <[EMAIL PROTECTED]>>>Reply-To: "Apache AXIS C User List" <axis-c-user@ws.apache.org>>>To: Apache AXIS C User List >><axis-c-user@ws.apache.org>,[EMAIL PROTECTED]>>Subject: Re: Memory Leak?>>Date: 
Thu, 27 Oct 2005 10:43:57 +0200>>>>Hi 
Anders>>>>I'm using Axis C client, but I suppose that the 
memory leaks are the same >>right? I already tried with putting delete 
statements into destructor >>classes but they are never called if I 
use free(pRAPP), where pRAPP is >>setReturnAddPointsParameter*. So 
should I use delete instead of free? I'm >>a little bit confused, 
because Management Guide about De-allocation >>Semantics talks about 
usage of free statements.>>>>In case of deserialazing 
received parameters from web server I think that >>statement 
"new"  is used also for allocating basic types XSD_DOUBLE or 
>>XSD_LONG. If is this true then this should be also deleted in 
destructor, >>right?>>>>Best 
regards>>>>Tomaz>>>>>>- 
Original Message - From: "Anders Eriksson" >><[EMAIL PROTECTED]>>>To: <axis-c-user@ws.apache.org>>>Sent: Thursday, October 27, 2005 10:01 
AM>>Subject: RE: Memory 
Leak?>>>>>>>>>>Hi 
Tomaz,>>>>>>I have been looking in to the memory leaks 
in the Axis C server>>>a bit.>>>>>>I 
found that in complex objects strings are not deleted. You 
can>>>add the delete statments in your 
setReturnAddPointsParameter>>>class 
destructor.>>>>>>Moreover there is a leak in in 
Apache1_3module (mod_axis.dll),>>>in ApacheTransport.cpp where 
m_pBuffers is not deleted.>>>>>>I have been requested 
to do a svn patch but as I am not>>>working on the lastest version 
I have not found the time to do>>>this. I will do it as soon as I 
can...>>>>>>/Anders>>>>>>>From: 
"Tomaz Rotovnik" <[EMAIL PROTECTED]>>>>>Reply-To: "Apache AXIS C User List" <axis-c-user@ws.apache.org>>>>>To: "Apache AXIS C User List" <axis-c-user@ws.apache.org>>>>>Subject: Memory Leak?>>>>Date: 
Wed, 26 Oct 2005 18:04:26 
+0200>>>>>>>>Hi>>>>>>>>I'm 
using axis 1.5 C++. When I tested my client (multithreaded) I found 
>>>>out that memory is growing with number of transactions. I 
read Axis C++ >>>>Memory Management Guide about De-allocation 
Semantics.>>>>>>>>For example WSDL2XML generated 
this parts of code>>>>>>>>Parameters that will 
be send over the web>>>>>>>>  
m_pCall->addParameter((void*)&Value0, "lTerminalID", 
XSD_LONG);>>>>  m_pCall->addParameter((void*)Value1, 
"sMSISDN", XSD_STRING);>>>>  
m_pCall->addParameter((void*)&Value2, "dAmount", 
XSD_DOUBLE);>>>>>>>>We expect next received 
parameters:>>>>>>>>xsd__string 
sBlpType;>>>>xsd__double dAmount;>>>>xsd__string 
lTransactionID;>>>>>>>>Where and How can I 
delete memory for this parameters?>>>>>>>>Return 
function is something like 
that>>>>>>>>MPBLPSoap::AddPoints(xsd__long 
Value0, xsd__string Value1, xsd__double 
>>>>Value2){>>>>...>>>>pReturn = 
(setReturnAddPointsParameter*)m_pCall->getCmplxObject((void*) 
>>>>Axis_DeSeriali

Re: Where to put AxisClient.dll?

2005-10-27 Thread Tomaz Rotovnik



Hi
 
You can also set Working directory in VS. Open menu 
Projects->Settings->Debug tab ->Working Directory
In that directory than put all dll's needed for the 
project.
 
Best regards
 
Tomaz
 

  - Original Message - 
  From: 
  Pico 
  Florin 
  To: Apache AXIS C User List 
  Sent: Thursday, October 27, 2005 3:58 
  PM
  Subject: Where to put 
  AxisClient.dll?
  
  Hi!
    I have a problem with my Axis C++ client. I cannot starting from 
  Visual C++ 6.0 because a message error is shown:
     "This application has failed to satrt because AxisClient.dll 
  was not found. Re-installing the application may fix the problem".
   Thank you,
      Florin
   
  
  
  How much free photo storage do you get? Store your 
  holiday snaps for FREE with Yahoo! Photos. Get 
  Yahoo! Photos


Re: Memory Leak?

2005-10-27 Thread Tomaz Rotovnik

Hi Anders

I'm using Axis C client, but I suppose that the memory leaks are the same 
right? I already tried with putting delete statements into destructor 
classes but they are never called if I use free(pRAPP), where pRAPP is 
setReturnAddPointsParameter*. So should I use delete instead of free? I'm a 
little bit confused, because Management Guide about De-allocation Semantics 
talks about usage of free statements.


In case of deserialazing received parameters from web server I think that 
statement "new"  is used also for allocating basic types XSD_DOUBLE or 
XSD_LONG. If is this true then this should be also deleted in destructor, 
right?


Best regards

Tomaz


- Original Message - 
From: "Anders Eriksson" <[EMAIL PROTECTED]>

To: 
Sent: Thursday, October 27, 2005 10:01 AM
Subject: RE: Memory Leak?




Hi Tomaz,

I have been looking in to the memory leaks in the Axis C server
a bit.

I found that in complex objects strings are not deleted. You can
add the delete statments in your setReturnAddPointsParameter
class destructor.

Moreover there is a leak in in Apache1_3module (mod_axis.dll),
in ApacheTransport.cpp where m_pBuffers is not deleted.

I have been requested to do a svn patch but as I am not
working on the lastest version I have not found the time to do
this. I will do it as soon as I can...

/Anders


From: "Tomaz Rotovnik" <[EMAIL PROTECTED]>
Reply-To: "Apache AXIS C User List" 
To: "Apache AXIS C User List" 
Subject: Memory Leak?
Date: Wed, 26 Oct 2005 18:04:26 +0200

Hi

I'm using axis 1.5 C++. When I tested my client (multithreaded) I found 
out that memory is growing with number of transactions. I read Axis C++ 
Memory Management Guide about De-allocation Semantics.


For example WSDL2XML generated this parts of code

Parameters that will be send over the web

 m_pCall->addParameter((void*)&Value0, "lTerminalID", XSD_LONG);
 m_pCall->addParameter((void*)Value1, "sMSISDN", XSD_STRING);
 m_pCall->addParameter((void*)&Value2, "dAmount", XSD_DOUBLE);

We expect next received parameters:

xsd__string sBlpType;
xsd__double dAmount;
xsd__string lTransactionID;

Where and How can I delete memory for this parameters?

Return function is something like that

MPBLPSoap::AddPoints(xsd__long Value0, xsd__string Value1, xsd__double 
Value2){

...
pReturn = (setReturnAddPointsParameter*)m_pCall->getCmplxObject((void*) 
Axis_DeSerialize_setReturnAddPointsParameter, (void*) 
Axis_Create_setReturnAddPointsParameter, (void*) 
Axis_Delete_setReturnAddPointsParameter,"AddPointsResult", 0);

...
}

and this is part of calling statement:

setReturnAddPointsParameter* pRAPP = NULL;
MPBLPSoap pBLP_authorize(sMPG.strURL.c_str(), APTHTTP1_1);
pBLP_authorize.Timeout(sMPG.iHTTPTimeoutSec);
pRAPP = pBLP_authorize.AddPoints(1,sTr.szMSISDN,sTr.dAmount);

After successful operation I call

free(pRAPP)

but unfortunately I still get memory leak. I checked with Trial version of 
IBM PurifyPlus and it suspects that memory leak exists because of 
unallocated parameters :


m_pCall->addParameter((void*)Value1, "sMSISDN", XSD_STRING);

xsd__string sBlpType;
xsd__double dAmount;
xsd__string lTransactionID;

I also checked what calling free do: It erases the pointers (they become 
undefined), so they are de-allocated right?


But memory is still growing with each transaction and Purify always shows 
on the same problem.



I also find out that new char is created when calling
m_pCall->addParameter((void*)Value1, "sMSISDN", XSD_STRING);
so when is this array deleted?

Any suggestions are welcome.

Tomaz


_
Senaste nytt från motormarknaden http://motor.msn.se/





Memory Leak?

2005-10-26 Thread Tomaz Rotovnik



Hi
 
I'm using axis 1.5 C++. When I tested my client (multithreaded) I found out that memory is 
growing with number of transactions. I read Axis C++ Memory Management Guide 
about De-allocation Semantics.
 
For example WSDL2XML generated this parts of 
code
 
Parameters that will be send over the 
web
 
 m_pCall->addParameter((void*)&Value0, 
"lTerminalID", XSD_LONG); m_pCall->addParameter((void*)Value1, 
"sMSISDN", XSD_STRING); m_pCall->addParameter((void*)&Value2, 
"dAmount", XSD_DOUBLE); 
We expect next received parameters:
 
xsd__string sBlpType;xsd__double 
dAmount;xsd__string lTransactionID;
Where and How can I delete memory for this 
parameters?
 
Return function is something like that
 
MPBLPSoap::AddPoints(xsd__long Value0, xsd__string 
Value1, xsd__double Value2){
...
pReturn = 
(setReturnAddPointsParameter*)m_pCall->getCmplxObject((void*) 
Axis_DeSerialize_setReturnAddPointsParameter, (void*) 
Axis_Create_setReturnAddPointsParameter, (void*) 
Axis_Delete_setReturnAddPointsParameter,"AddPointsResult", 
0);...
}
 
and this is part of calling statement:
 
setReturnAddPointsParameter* pRAPP = 
NULL;
MPBLPSoap pBLP_authorize(sMPG.strURL.c_str(), 
APTHTTP1_1);pBLP_authorize.Timeout(sMPG.iHTTPTimeoutSec);
pRAPP = 
pBLP_authorize.AddPoints(1,sTr.szMSISDN,sTr.dAmount);
 
After successful operation I call 
 
free(pRAPP)
 
but unfortunately I still get memory leak. I 
checked with Trial version of IBM PurifyPlus and it suspects that memory 
leak exists because of unallocated parameters :
 
m_pCall->addParameter((void*)Value1, "sMSISDN", 
XSD_STRING);
 
xsd__string sBlpType;xsd__double 
dAmount;xsd__string lTransactionID;
I also checked what calling free do: It erases 
the pointers (they become undefined), so they are de-allocated 
right?
 
But memory is still growing with each transaction 
and Purify always shows on the same problem.  

I also find out that new char is created when 
calling 
m_pCall->addParameter((void*)Value1, "sMSISDN", 
XSD_STRING);
so when is this array deleted?
 
Any suggestions are welcome.
 
Tomaz
 


Re: Axis is unrecovered when errors occurs

2005-10-25 Thread Tomaz Rotovnik



Hi
 
I take very long procedure to discover the problem. I 
compiled all libraries in debug mode and then start debugging with VSC++ 6.0. I 
also have the same question: How to see what is received in one step (printf or 
similar)?
 
If you forgot for example "<" or ">" (syntax 
error) you can also get the same error.
 
 

  - Original Message - 
  From: 
  Pico 
  Florin 
  To: Apache AXIS C User List 
  Sent: Tuesday, October 25, 2005 5:09 
  PM
  Subject: Re: Axis is unrecovered when 
  errors occurs
  
  Thank for you response. I have a question: how can I introspect the 
  response(meaning what is the returning content)? I want to see the 
  response content somehow. Ehat you indicated to me 
  (_responseHeader.getChars() works 
  fine until the client encounters that problem with "Cannot deserialize 
  the requested data" after that the response content is maybe changed(but 
  why?).
   
   Regards,
     Florin 
   
  Tomaz Rotovnik <[EMAIL PROTECTED]> 
  wrote:
  



I think the problem could be in requesting 
different parameters than those that are sent as response. I mean in 
(_responseHeader.getChars() you have defined something else that is realy 
returned.
 
Tomaz
 

  - Original Message - 
  From: 
  Pico 
  Florin 
  To: Apache AXIS C User List 
  Sent: Tuesday, October 25, 2005 3:59 
  PM
  Subject: Axis is unrecovered when 
  errors occurs
  
  Hi!  
  When AXIS C++ client is throwing the fallowing exception:
   
   Exception : Cannot deserialize the requested 
  element
   
  the next calls will throw an "Unknown exception has occured!". What 
  is interesting is that the client sends the message but when is 
  encountering the snippet:
   
  if (AXIS_SUCCESS == 
  m_pCall->checkMessage(_responseHeader.getChars(), 
  _serviceNamespace.getChars()))
   
   
  is throwing the "Unknown exception has occured!". All 
  the sent messages are throwing this exception. So, how can I recover the 
  client state in order to pass this exception?
   
  My AXIS client sends from time to time messages to SAP BC server.
   
   
  Thank you,
     Florin
  
   
   
   
   
   
  
  
  How much free photo storage do you get? Store your 
  holiday snaps for FREE with Yahoo! Photos. Get 
  Yahoo! Photos
  
  
  Yahoo! 
  Messenger NEW - crystal clear PC to PC calling 
  worldwide with voicemail 


Re: Axis is unrecovered when errors occurs

2005-10-25 Thread Tomaz Rotovnik



I think the problem could be in requesting different 
parameters than those that are sent as response. I mean in (_responseHeader.getChars() you have defined something else that is realy 
returned.
 
Tomaz
 

  - Original Message - 
  From: 
  Pico 
  Florin 
  To: Apache AXIS C User List 
  Sent: Tuesday, October 25, 2005 3:59 
  PM
  Subject: Axis is unrecovered when errors 
  occurs
  
  Hi!  
  When AXIS C++ client is throwing the fallowing exception:
   
   Exception : Cannot deserialize the requested 
  element
   
  the next calls will throw an "Unknown exception has occured!". What is 
  interesting is that the client sends the message but when is encountering the 
  snippet:
   
  if (AXIS_SUCCESS == 
  m_pCall->checkMessage(_responseHeader.getChars(), 
  _serviceNamespace.getChars()))
   
   
  is throwing the "Unknown exception has occured!". All the 
  sent messages are throwing this exception. So, how can I recover the client 
  state in order to pass this exception?
   
  My AXIS client sends from time to time messages to SAP BC server.
   
   
  Thank you,
     Florin
  
   
   
   
   
   
  
  
  How much free photo storage do you get? Store your 
  holiday snaps for FREE with Yahoo! Photos. Get 
  Yahoo! Photos


Re: DLOPEN FAILED ... parser library

2005-10-24 Thread Tomaz Rotovnik

Hi

I think I have the same problem. If you use original (you didn't compiled 
it) AxisXMLParserXerces.dll the name of xerces should be xerces-c_2_2_0.dll. 
Other way it is possible to get the following error. You can also try to 
compile  AxisXMLParserXerces.dll by yourself wih newer version of xerceses 
(2_7).


Hope this help

Best regards

Tomaz



- Original Message - 
From: "Christopher S. Johnson" <[EMAIL PROTECTED]>

To: 
Sent: Monday, October 24, 2005 9:36 PM
Subject: DLOPEN FAILED ... parser library



All -

While running my client side service I get the following error.  "DLOPEN
FAILED in loading parser library" I have added xerces to my windows path
and have the following dll's in the same dir as my exe.

AxisClient.dll
AxisClientC.dll
AxisXMLParserXerces.dll
HTTPChannel.dll
HTTPTransport.dll

Any help would be great.

Thanks.





Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-13 Thread Tomaz Rotovnik



Hi
 
Thank you for the response. I just want to say that using different libraries 
(AxisXMLParser.dll  - original, my release and my debug 
,  xerces-c_X_X) causes different behavior in loading HTTPChannel.dll 
library. I'm using only 1.5 version of AXIS. 
 
Only when I generated AxisXMLParser.dll 
library by myself  (compiled with VC++ 6.0) and using xerces-c_2_7.dll library I get correct behavior (HTTPChannel.dll library is loaded only once). In other 
cases (using original AxisXMLParser.dll which loads xerces-c_2_2) HTTPChannel.dll library is 
loaded for each axis instance.
 
Does anyone checked loading HTTPChannel.dll 
when using multithreaded client side of axis?
 
Best regards
 
Tomaz
 
 
 
- Original Message - 

  From: 
  John 
  Hawkins 
  To: Apache AXIS C User List 
  Sent: Thursday, October 13, 2005 12:40 
  PM
  Subject: Re: Why 
  "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?
  Hmm, not quite clear on what 
  you're saying here but if it helps I don't think we fixed the transport reload 
  issue until post 1.5 
  
    

  "Tomaz Rotovnik" <[EMAIL PROTECTED]> 

12/10/2005 18:38 

  
  

  Please respond 
  to"Apache AXIS C User 
List"
  

  
  

  To
"Apache AXIS C User 
  List" <axis-c-user@ws.apache.org> 

  

  cc

  

  Subject
Re: Why 
  "m_pCall->initialize(CPP_RPC_PROVIDER))" 
fails?

  
  

Hi   I tested again and I think I found the problem. First I used 
  my compiled version of AxisClient.dll with AxisXMLParser.dll allready provided 
  in axis version 1.5 + xerces-c_2_2_0. Each time I performed transaction, the 
  HTTPChannel.dll librariy was loaded again and again.   Then I used my 
  compilation of debug AxisXMLParser.dll with xerces-c_2_7. Debug 
  HTTPChannel.dll library was loaded only at the begining (when 
  Axis::initialize(false) was called).   If I use debug version of 
  AxisClient.dll and release version of AxisXMLParser.dll the release 
  HTTPChannel.dll librariy is loaded at each call again and again. 
    It is 
  very strange and also not logical for me.       - Original 
  Message - From: John 
  Hawkins To: Apache AXIS C User List Sent: Wednesday, 
  October 12, 2005 11:28 AM Subject: 
  Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails? 
  Hmm, I thought we'd got rid of this - 
  there is certainly a JIRA that was trying to address all these sorts of 
  issues.http://issues.apache.org/jira/browse/AXISCPP-657 Hmm, looks like it never had 
  any specific issues addressed in it ! Maybe you can use this JIRA to fix it 
  ? cheers, John. 



Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-12 Thread Tomaz Rotovnik




Hi
 
I tested again and I think I found the problem. 
First I used my compiled version of AxisClient.dll with AxisXMLParser.dll 
allready provided in axis version 1.5 + xerces-c_2_2_0. Each time I performed 
transaction, the HTTPChannel.dll librariy was loaded again and again.
 
Then I used my compilation of debug 
AxisXMLParser.dll with xerces-c_2_7. Debug HTTPChannel.dll library was 
loaded only at the begining (when Axis::initialize(false) was called).
 
If I use debug version of AxisClient.dll and 
release version of AxisXMLParser.dll the release HTTPChannel.dll librariy 
is loaded at each call again and again.
 
It is very strange and also not logical for 
me.
 
 
 
- Original Message - 
From: John Hawkins 

To: Apache AXIS C User List 
Sent: Wednesday, October 12, 2005 11:28 AM
Subject: Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" 
fails?
Hmm, I thought we'd got rid of 
this - there is certainly a JIRA that was trying to address all these sorts of 
issues.http://issues.apache.org/jira/browse/AXISCPP-657 Hmm, looks like it never had any specific issues 
addressed in it ! Maybe you can use this JIRA to fix it ? cheers, John. 


Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-11 Thread Tomaz Rotovnik

Hi

When I use multithreading on client side I found out that for each 
transaction HTTPChannel.dll library is loaded. Is this necessary? Why only 
this dll and not also AxisXMLParser and HTTPTransport?


Best Regards

Tomaz



Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-11 Thread Tomaz Rotovnik



Hi
 
I don't have problems with calling Axis::terminate(). But I call it after all Axis 
instances are already destroyed.
 
 

  - Original Message - 
  From: 
  Pico 
  Florin 
  To: Apache AXIS C User List 
  Sent: Tuesday, October 11, 2005 3:35 
  PM
  Subject: Re: Why 
  "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?
  
  Hi!
    Thank you Thomas. I seems to be more stable now. Regarding the 
  code
     Axis::terminate() I've used in my application(a task that from 
  time to time sends SOAP messages to SAP BC server) when destructor of the 
  client is called and an "Assertion failure exception"  is thrown in my 
  engine task. If I don't put this code then everything is allright...Therefore, 
  it is necessaru to use it? Is safety?
     Regards,
      Florin
  
  
  Yahoo! 
  Messenger NEW - crystal clear PC to PC calling 
  worldwide with voicemail 


Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-11 Thread Tomaz Rotovnik



Hi
 
You need to include Axis.hpp in the main 
file.
 
If I'm not wrong than you should call 
Axis::initialize(false); before you use axis objects. In my example I call 
this in my main loop before I created threads in which I created pBLP = new 
Soap(s.strURL.c_str(), APTHTTP1_1);
 
When all threads are finished than you call 
Axis::terminate() (I think).
 
 


  - Original Message - 
  From: 
  Pico 
  Florin 
  To: Apache AXIS C User List 
  Sent: Tuesday, October 11, 2005 2:16 
  PM
  Subject: Re: Why 
  "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?
  
  Hi!
    Thank you for your responses. I want to understand the 
  code
   
  Axis::initialize(false);
  What is the exactly snippet code? What should I include?
   
  Thank you,
   Florin
   
  
  
  To help you stay safe and secure online, we've 
  developed the all new Yahoo! 
  Security Centre.


Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-11 Thread Tomaz Rotovnik

Hi Samisa

Thank you for your notification. I didn't have that. I already tested that 
and it seems to be much more stable now. I still have some problems with 
stability under very difficult conditions (about 100 threads generated in 10 
seconds). I'll try to find the position in code where this happens.


Thank you

Tomaz



- Original Message - 
From: "Samisa Abeysinghe" <[EMAIL PROTECTED]>

To: "Apache AXIS C User List" 
Sent: Monday, October 10, 2005 3:51 PM
Subject: Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?



Tomaz Rotovnik wrote:



Samisa thank you for response.

I have right location of channel library dfined in "axiscpp.conf". When I 
run the program and calling one function every 300ms, it crashes 
(randomly) after some calls were done succesfully, but with the same 
error. Function is also synchronized (using mutex) so it can only be 
processed only one at the time.


So I think the problem is in loading library very often, but I don't how 
to solve the problem.


Well I happen to remember that there is one more thing that you should 
take note of when using threading.
In the main program, before you start threads, you got to initialize the 
Axis platform:

   Axis::initialize(false);
false here means that it is not server.

Have you done this already in your threaded client?

Thanks,
Samisa...



Best regards

Tomaz


- Original Message - From: "Samisa Abeysinghe" 
<[EMAIL PROTECTED]>

To: "Apache AXIS C User List" 
Sent: Saturday, October 08, 2005 12:25 AM
Subject: Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?



Tomaz Rotovnik wrote:


Hi
 I've the same problem. Couple of days ago I send question about safe 
threading on client side. When I start debugging I found out that call 
m_pCall->initialize(CPP_DOC_PROVIDER)) causes exception.
 Then I enable possibility (uncomment) to print out possible exceptions 
in function Call:initialize().

Exception that I get was: DLOPEN FAILED in loading channel library.



This basically means that the client cannot locate the channel library 
specified in axiscpp.conf.
Have a look at the axiscpp.conf to see what you have set as the location 
of the channel library. Then ensure that it is there.

You got to do the same for the parser library.

Thanks,
Samisa...

 I'm not sure yet if this exception was thrown by 
axis3\ChannelFactory.cpp file.

 Functions that are called are:
openConnection calls
setTransportProperty(CHANNEL_HTTP_DLL_NAME,...
HTTPTransport::setTransportProperty calls
   LoadChannelLibrary
 I repeat experiment (multiple calls on separately created Call 
objects) couple of times with same error report.

 Now I'm looking for solution.
 Could you check if the problem is same with your code?

- Original Message -
*From:* Pico Florin <mailto:[EMAIL PROTECTED]>
*To:* Apache AXIS C User List <mailto:axis-c-user@ws.apache.org>
*Sent:* Friday, October 07, 2005 3:53 PM
*Subject:* Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

Hi!

  I've tested my example in different ways of implementation. Some
of them fail on this snippet



if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER)) {
   return NULL;
 }


leading to :


"Unknown exception has occured". What are the reasons for this
failures? Just to know better how to avoid this situation.

 Thank you,

  Florin








How much free photo storage do you get? Store your holiday snaps
for FREE with Yahoo! Photos. *Get Yahoo! Photos*

<http://us.rd.yahoo.com/mail/uk/taglines/default/photos/*http://uk.photos.yahoo.com/>













Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-08 Thread Tomaz Rotovnik


Samisa thank you for response.

I have right location of channel library dfined in "axiscpp.conf". When I 
run the program and calling one function every 300ms, it crashes (randomly) 
after some calls were done succesfully, but with the same error. Function is 
also synchronized (using mutex) so it can only be processed only one at the 
time.


So I think the problem is in loading library very often, but I don't how to 
solve the problem.


Best regards

Tomaz


- Original Message - 
From: "Samisa Abeysinghe" <[EMAIL PROTECTED]>

To: "Apache AXIS C User List" 
Sent: Saturday, October 08, 2005 12:25 AM
Subject: Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?



Tomaz Rotovnik wrote:


Hi
 I've the same problem. Couple of days ago I send question about safe 
threading on client side. When I start debugging I found out that call 
m_pCall->initialize(CPP_DOC_PROVIDER)) causes exception.
 Then I enable possibility (uncomment) to print out possible exceptions 
in function Call:initialize().

Exception that I get was: DLOPEN FAILED in loading channel library.


This basically means that the client cannot locate the channel library 
specified in axiscpp.conf.
Have a look at the axiscpp.conf to see what you have set as the location 
of the channel library. Then ensure that it is there.

You got to do the same for the parser library.

Thanks,
Samisa...

 I'm not sure yet if this exception was thrown by 
axis3\ChannelFactory.cpp file.

 Functions that are called are:
openConnection calls
setTransportProperty(CHANNEL_HTTP_DLL_NAME,...
HTTPTransport::setTransportProperty calls
   LoadChannelLibrary
 I repeat experiment (multiple calls on separately created Call objects) 
couple of times with same error report.

 Now I'm looking for solution.
 Could you check if the problem is same with your code?

- Original Message -
*From:* Pico Florin <mailto:[EMAIL PROTECTED]>
*To:* Apache AXIS C User List <mailto:axis-c-user@ws.apache.org>
*Sent:* Friday, October 07, 2005 3:53 PM
*Subject:* Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

Hi!

  I've tested my example in different ways of implementation. Some
of them fail on this snippet



if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER)) {
   return NULL;
 }


leading to :


"Unknown exception has occured". What are the reasons for this
failures? Just to know better how to avoid this situation.

 Thank you,

  Florin







How much free photo storage do you get? Store your holiday snaps
for FREE with Yahoo! Photos. *Get Yahoo! Photos*

<http://us.rd.yahoo.com/mail/uk/taglines/default/photos/*http://uk.photos.yahoo.com/>








Re: Why "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?

2005-10-07 Thread Tomaz Rotovnik



Hi 
 
I've the same problem. Couple of days ago I send 
question about safe threading on client side. When I start debugging I found out 
that call m_pCall->initialize(CPP_DOC_PROVIDER)) causes 
exception.
 
Then I enable possibility (uncomment) to print 
out possible exceptions in function Call:initialize().
Exception that I get was: DLOPEN FAILED in loading 
channel library.
 
I'm not sure yet if this exception was thrown by 
axis3\ChannelFactory.cpp file.
 
Functions that are called are:
openConnection calls
setTransportProperty(CHANNEL_HTTP_DLL_NAME,...
    
HTTPTransport::setTransportProperty calls
   
LoadChannelLibrary
 
I repeat experiment (multiple calls on separately 
created Call objects) couple of times with same error report.
 
Now I'm looking for solution. 
 
Could you check if the problem is same with your 
code?
 

  - Original Message - 
  From: 
  Pico 
  Florin 
  To: Apache AXIS C User List 
  Sent: Friday, October 07, 2005 3:53 
  PM
  Subject: Why 
  "m_pCall->initialize(CPP_RPC_PROVIDER))" fails?
  
  Hi!
    I've tested my example in different ways of implementation. Some of 
  them fail on this snippet
   
   
  if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER)) 
  {   return NULL; }
   
  leading to :
   
  "Unknown exception has occured". What are the reasons for this failures? 
  Just to know better how to avoid this situation.
   Thank you,
    Florin
   
   
   
   
   
  
  
  How much free photo storage do you get? Store your 
  holiday snaps for FREE with Yahoo! Photos. Get 
  Yahoo! Photos


Safe threading - Client side

2005-10-05 Thread Tomaz Rotovnik



 
Hello
 
I'm looking for some information's about running 
multiple calls in client side of axis. I'm using axis version 1.5. The 
problem is that when I call function again before it returns (in 
different thread) it returns exception when calling invoke 
method.
 
In main loop there is call to create new 
object
 
pBLP = new Soap(s.strURL.c_str(), 
APTHTTP1_1);
 
and this instance is used each time when function 
"setConfirmTransaction" is called for example
 
pCT = 
pBLP->ConfirmTransaction(sTr.szAuthReference);
 
This calling part is implemented in callback 
function, which can be called many times (before we get receive from the 
server it can be called again (multiple threads)).
 
I hope someone could give me some possible 
solution. 
 
Thanks in advance
 
Tomaz
 
 
 
Here is example of "setConfirmTransaction" 
function
 
##
setConfirmTransaction* 
Soap::ConfirmTransaction(xsd__string 
Value0){ setConfirmTransaction* pReturn = NULL; const 
char* pcCmplxFaultName; pcCmplxFaultName = NULL;
 try{
 
 if (AXIS_SUCCESS != 
m_pCall->initialize(CPP_DOC_PROVIDER)) return 
pReturn; m_pCall->setTransportProperty(SOAPACTION_HEADER , "http://tempuri.org/ConfirmTransaction"); m_pCall->setSOAPVersion(SOAP_VER_1_1); m_pCall->setOperation("ConfirmTransaction", 
"http://tempuri.org/WebService"); includeSecure(); applyUserPreferences(); m_pCall->addParameter((void*)Value0, 
"lTransactionID", XSD_STRING);   if (AXIS_SUCCESS == 
m_pCall->invoke()) {    if(AXIS_SUCCESS == 
m_pCall->checkMessage("ConfirmTransactionResponse", "http://tempuri.org/WebService"))  {    
pReturn = (setConfirmTransaction*)m_pCall->getCmplxObject((void*) 
Axis_DeSerialize_setConfirmTransaction, 
(void*) Axis_Create_setConfirmTransaction, (void*) 
Axis_Delete_setConfirmTransaction,"ConfirmTransactionResult", 
0);  } } m_pCall->unInitialize(); return 
pReturn; } catch(AxisException& 
e) {..
 ###