db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dag Wanvik <dag.wan...@oracle.com>
Subject Re: NetworkServerControl.ping() does not return when port is blocked
Date Wed, 10 Apr 2013 12:27:45 GMT
Hi,

Probably https://issues.apache.org/jira/browse/DERBY-4701. You could
vote to get it fixed.

Thanks,
Dag

On 10.04.2013 03:38, Al Eridani wrote:
>
> At the start of our application, we use a call to
> NetworkServerControl.ping() to verify that Derby is up.
>
> We expect an exception to be thrown if the ping call fails and we try
> 40 times every half second before giving up.
>
> It has reported to me that when port 1527 is blocked by packet
> filters, that call never returns or it takes a long time, maybe.
>
> Is there something I can do to get ping to return normally or throw an
> exception quickly?
>
> We are using Derby 10.9.1.0 with the following non-default configuration
>
> datasource.className=org.apache.derby.jdbc.ClientDataSource
> datasource.createDatabase=create
> datasource.databaseName=/some/directory
> datasource.portNumber=1527
> datasource.serverName=some.server.name <http://some.server.name>
> datasource.user=someuser
>
> The basic code is
>
>     ClientDataSource cds = (ClientDataSource) dataSource;
>     String serverName = cds.getServerName();
>     int serverPort = cds.getPortNumber();
>
>     InetAddress inetAddr = InetAddress.getByName(serverName);
>     networkServerControl = new NetworkServerControl(inetAddr, serverPort);
>     networkServerControl.start(null);
>
>     for (int i = 0; i < 40; i++) {
>       try {
>     networkServerControl.ping();
>       } catch (Exception e) {
>     try {
>       // Sleep for 1/2 second.
>     } catch (InterruptedException ie) {
>       break;
>     }
>       }
>     }
>


Mime
View raw message