Client API problem

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Client API problem

Fan, Jan-fon

Hi,

I am using AXIS2C client api in my application to access web services which is developed with .NET.

The way that I send my request is as below:

 

    /* Send request */

    ret_node = axis2_svc_client_send_receive(svc_client, env, payload);

 

    if (ret_node)

    {

        axis2_char_t *om_str = NULL;

        om_str = axiom_node_to_string(ret_node, env);

        if (om_str)

            printf("\nReceived OM : %s\n", om_str);

        printf("\nclient invoke SUCCESSFUL!\n");

 

        AXIS2_FREE(env->allocator, om_str);

        ret_node = NULL;

    }

    else

    {

        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,

                        "Stub invoke FAILED: Error code:" " %d :: %s",

                        env->error->error_number,

                        AXIS2_ERROR_GET_MESSAGE(env->error));

        printf("client invoke FAILED!\n");

        }

 

I have 2 questions:

1. I send my requests in a loop. Inside the loop, I keep sending about 30 requests to the same web service. Sometime one or more requests would print out “client  invoke FAILED”. What could be the reason that causes this problem?

 

2. Sometime when I print out the result from server, it only contain partial information.

 

 

Really appreciate your help!

 

Jan-fon

 

 

Reply | Threaded
Open this post in threaded view
|

Re: Client API problem

Amir Mousavizadegan
For your first question, it seems to me you are losing a socket connection
or timeout on the connection to server, check your network. For your  second
problem, it  may be  is related to  drop of socket from first question.
thx
Amir
----- Original Message -----
From: "Fan, Jan-fon" <[hidden email]>
To: "Apache AXIS C User List" <[hidden email]>
Sent: Thursday, February 18, 2010 10:39 PM
Subject: Client API problem


Hi,
I am using AXIS2C client api in my application to access web services which
is developed with .NET.
The way that I send my request is as below:

    /* Send request */
    ret_node = axis2_svc_client_send_receive(svc_client, env, payload);

    if (ret_node)
    {
        axis2_char_t *om_str = NULL;
        om_str = axiom_node_to_string(ret_node, env);
        if (om_str)
            printf("\nReceived OM : %s\n", om_str);
        printf("\nclient invoke SUCCESSFUL!\n");

        AXIS2_FREE(env->allocator, om_str);
        ret_node = NULL;
    }
    else
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Stub invoke FAILED: Error code:" " %d :: %s",
                        env->error->error_number,
                        AXIS2_ERROR_GET_MESSAGE(env->error));
        printf("client invoke FAILED!\n");
        }

I have 2 questions:
1. I send my requests in a loop. Inside the loop, I keep sending about 30
requests to the same web service. Sometime one or more requests would print
out "client  invoke FAILED". What could be the reason that causes this
problem?

2. Sometime when I print out the result from server, it only contain partial
information.


Really appreciate your help!

Jan-fon



Reply | Threaded
Open this post in threaded view
|

RE: Client API problem

Fan, Jan-fon
Hi Amir,
To debug the partial return problem, I use WireShark to capture the traffic/packet on the network and find out the server does return the full content back to the client application, but for some reason, the client is not able to receive the complete content.
I am wondering if it relates to some buffer size that is not big enough for client to receive full returns.

Thanks,
Jan-fon

-----Original Message-----
From: Amir Mousavizadegan [mailto:[hidden email]]
Sent: Friday, February 19, 2010 6:20 AM
To: Apache AXIS C User List
Subject: Re: Client API problem

For your first question, it seems to me you are losing a socket connection
or timeout on the connection to server, check your network. For your  second
problem, it  may be  is related to  drop of socket from first question.
thx
Amir
----- Original Message -----
From: "Fan, Jan-fon" <[hidden email]>
To: "Apache AXIS C User List" <[hidden email]>
Sent: Thursday, February 18, 2010 10:39 PM
Subject: Client API problem


Hi,
I am using AXIS2C client api in my application to access web services which
is developed with .NET.
The way that I send my request is as below:

    /* Send request */
    ret_node = axis2_svc_client_send_receive(svc_client, env, payload);

    if (ret_node)
    {
        axis2_char_t *om_str = NULL;
        om_str = axiom_node_to_string(ret_node, env);
        if (om_str)
            printf("\nReceived OM : %s\n", om_str);
        printf("\nclient invoke SUCCESSFUL!\n");

        AXIS2_FREE(env->allocator, om_str);
        ret_node = NULL;
    }
    else
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Stub invoke FAILED: Error code:" " %d :: %s",
                        env->error->error_number,
                        AXIS2_ERROR_GET_MESSAGE(env->error));
        printf("client invoke FAILED!\n");
        }

I have 2 questions:
1. I send my requests in a loop. Inside the loop, I keep sending about 30
requests to the same web service. Sometime one or more requests would print
out "client  invoke FAILED". What could be the reason that causes this
problem?

2. Sometime when I print out the result from server, it only contain partial
information.


Really appreciate your help!

Jan-fon



Reply | Threaded
Open this post in threaded view
|

Re: Client API problem

Amir Mousavizadegan
I would  recommend to use TCPMON utility that comes with Axis/c and
redirect the port so you can capture the payload.
thx
----- Original Message -----
From: "Fan, Jan-fon" <[hidden email]>
To: "Apache AXIS C User List" <[hidden email]>
Sent: Saturday, February 20, 2010 5:16 AM
Subject: RE: Client API problem


Hi Amir,
To debug the partial return problem, I use WireShark to capture the
traffic/packet on the network and find out the server does return the full
content back to the client application, but for some reason, the client is
not able to receive the complete content.
I am wondering if it relates to some buffer size that is not big enough for
client to receive full returns.

Thanks,
Jan-fon

-----Original Message-----
From: Amir Mousavizadegan [mailto:[hidden email]]
Sent: Friday, February 19, 2010 6:20 AM
To: Apache AXIS C User List
Subject: Re: Client API problem

For your first question, it seems to me you are losing a socket connection
or timeout on the connection to server, check your network. For your  second
problem, it  may be  is related to  drop of socket from first question.
thx
Amir
----- Original Message -----
From: "Fan, Jan-fon" <[hidden email]>
To: "Apache AXIS C User List" <[hidden email]>
Sent: Thursday, February 18, 2010 10:39 PM
Subject: Client API problem


Hi,
I am using AXIS2C client api in my application to access web services which
is developed with .NET.
The way that I send my request is as below:

    /* Send request */
    ret_node = axis2_svc_client_send_receive(svc_client, env, payload);

    if (ret_node)
    {
        axis2_char_t *om_str = NULL;
        om_str = axiom_node_to_string(ret_node, env);
        if (om_str)
            printf("\nReceived OM : %s\n", om_str);
        printf("\nclient invoke SUCCESSFUL!\n");

        AXIS2_FREE(env->allocator, om_str);
        ret_node = NULL;
    }
    else
    {
        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
                        "Stub invoke FAILED: Error code:" " %d :: %s",
                        env->error->error_number,
                        AXIS2_ERROR_GET_MESSAGE(env->error));
        printf("client invoke FAILED!\n");
        }

I have 2 questions:
1. I send my requests in a loop. Inside the loop, I keep sending about 30
requests to the same web service. Sometime one or more requests would print
out "client  invoke FAILED". What could be the reason that causes this
problem?

2. Sometime when I print out the result from server, it only contain partial
information.


Really appreciate your help!

Jan-fon