axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Juergen Haeussler (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AXIS2C-626) client fires error on synchronous calls of longer duration
Date Thu, 28 Jun 2007 05:32:25 GMT

     [ https://issues.apache.org/jira/browse/AXIS2C-626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Juergen Haeussler updated AXIS2C-626:
-------------------------------------


We recently found the problem in the network_handler.c:
The windows API expects timeouts for sockets in milliseconds as a DWORD value (as you can
see in API documentation of setsockopt/SOL_SOCKET).
In the Axis code it was set to seconds by using a timeval struct:

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_network_handler_set_sock_option(const axutil_env_t *env, axis2_socket_t socket,
        int option, int value)
{
    if (option == SO_RCVTIMEO || option == SO_SNDTIMEO)
    {
	struct timeval tv;
	/* we deal with milliseconds */
	tv.tv_sec = value / 1000;
	tv.tv_usec = (value % 1000) * 1000;
        
        setsockopt(socket, SOL_SOCKET, option, (char*) &tv, sizeof(tv));
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

So we changed this method to the following code and now everything works well:

AXIS2_EXTERN axis2_status_t AXIS2_CALL
axutil_network_handler_set_sock_option(const axutil_env_t *env, axis2_socket_t socket,
        int option, int value)
{
    if (option == SO_RCVTIMEO || option == SO_SNDTIMEO)
    {
		#if defined(WIN32)
			DWORD tv = value; //windows expects milliseconds in a DWORD
		#else
			struct timeval tv;
			/* we deal with milliseconds */
			tv.tv_sec = value / 1000;
			tv.tv_usec = (value % 1000) * 1000;
		#endif
        
        setsockopt(socket, SOL_SOCKET, option, (char*) &tv, sizeof(tv));
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

Please transfer this change to the source repository that it will be included in subsequent
versions of Axis2/C.

Thanks

> client fires error on synchronous calls of longer duration
> ----------------------------------------------------------
>
>                 Key: AXIS2C-626
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-626
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/clientapi, core/transport, platforms/windows
>    Affects Versions: 1.0.0, 1.1.0
>         Environment: Win32, WS hostet by JBoss 4.2
>            Reporter: Juergen Haeussler
>            Priority: Blocker
>         Attachments: Auftragsverwaltung_liefereAuftraege.log
>
>
> we use the axis2/c library to implement a WS client that executes synchronous calls (via
axis2_svc_client_send_receive).
> When the webservice needs a little time to return the response (it is indeed under one
second), the axis2/c API fails with the following error:
> errorNr =  82
> errorText = Input stream is NULL in msg_ctx

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


Mime
View raw message