Subject | Problems with shut down he database engine on SuperServer |
---|---|
Author | dominik.grudzinski |
Post date | 2006-08-18T10:03:21Z |
Hello.
I have problems with shutdown the database on SuperServer.
Server freeze during SuperServer shutdown and
I have messages in log:
WAITING FOR SHUTDOWN!
WAITING FOR SHUTDOWN!
.....
On ClassicServer everything work correctly.
Any suggestions?
I work on Firebird 2.0
That's my code:
void FBConnImpl::shutdownDB(const string& fdbname) {
char spb[300], *p = spb;
unsigned long options;
*p++ = isc_action_svc_properties;
*p++ = isc_spb_dbname;
ADD_SPB_LENGTH(p,fdbname.length());
strcpy(p,fdbname.c_str());
p+=fdbname.length();
*p++=isc_spb_prp_shutdown_db;
options=0; //timeout
ADD_SPB_NUMERIC(p, options);
ISC_STATUS status[20];
try
{
isc_service_start(status, &_svcHandle, NULL,
static_cast<unsigned short>(p - spb),spb);
if ( !_isStatusOk(status) ) _handleError(status);
}
catch( DbException& )
{
if (_svcHandle)
isc_service_detach(status, &_svcHandle);
throw;
}
}
Regards
Dominik Grudzinski
I have problems with shutdown the database on SuperServer.
Server freeze during SuperServer shutdown and
I have messages in log:
WAITING FOR SHUTDOWN!
WAITING FOR SHUTDOWN!
.....
On ClassicServer everything work correctly.
Any suggestions?
I work on Firebird 2.0
That's my code:
void FBConnImpl::shutdownDB(const string& fdbname) {
char spb[300], *p = spb;
unsigned long options;
*p++ = isc_action_svc_properties;
*p++ = isc_spb_dbname;
ADD_SPB_LENGTH(p,fdbname.length());
strcpy(p,fdbname.c_str());
p+=fdbname.length();
*p++=isc_spb_prp_shutdown_db;
options=0; //timeout
ADD_SPB_NUMERIC(p, options);
ISC_STATUS status[20];
try
{
isc_service_start(status, &_svcHandle, NULL,
static_cast<unsigned short>(p - spb),spb);
if ( !_isStatusOk(status) ) _handleError(status);
}
catch( DbException& )
{
if (_svcHandle)
isc_service_detach(status, &_svcHandle);
throw;
}
}
Regards
Dominik Grudzinski