Server Busy dialog

  • Thread starter Thread starter komyak
  • Start date Start date
K

komyak

System: Windows XP pro, version 2002, service pack 2

My application uses out-of-proc atl server for doing some jobs.
This may take a time, sometimes up to 10 s.
The problem is: for for these "long" waitings popup dialog appears:

"Server busy. This action cannot be completed bacause the other
program is busy.
Choose 'Switch To' too activate the busy program and coorect the
problem.
'Switch To' 'Retry'".

The logic inside server is always the same, regardless long or short
jobs.

Any ideas how to avoid the problem or tune wait time for
client <-> server communication?

Thank you
Alexandre
 
System: Windows XP pro, version 2002, service pack 2

My application uses out-of-proc atl server for doing some jobs.
This may take a time, sometimes up to 10 s.
The problem is: for for these "long" waitings popup dialog appears:

"Server busy. This action cannot be completed bacause the other
program is busy.
Choose 'Switch To' too activate the busy program and coorect the
problem.
'Switch To' 'Retry'".

The logic inside server is always the same, regardless long or short
jobs.

Any ideas how to avoid the problem or tune wait time for
client <-> server communication?

What language and technology is your application written in? For example,
is it C++ using MFC?
 
avk said:
Yes. C++ & MFC

Then the following code in the InitInstance of your app should suppress
those:

COleMessageFilter* MsgFilter = NULL ;
MsgFilter = AfxOleGetMessageFilter();
if (MsgFilter)
{
MsgFilter->EnableBusyDialog(FALSE);
MsgFilter->EnableNotRespondingDialog(FALSE);
}
 
Then the following code in the InitInstance of your app should suppress
those:

COleMessageFilter* MsgFilter = NULL ;
MsgFilter = AfxOleGetMessageFilter();
if (MsgFilter)
{
MsgFilter->EnableBusyDialog(FALSE);
MsgFilter->EnableNotRespondingDialog(FALSE);}


Yes. Thank you.
But, to make it really work we should do like this:

MsgFilter = AfxOleGetMessageFilter();
if (MsgFilter)
{
MsgFilter->Revoke();
MsgFilter->EnableBusyDialog(FALSE);
MsgFilter->EnableNotRespondingDialog(FALSE);
MsgFilter->Register();
}
 
Back
Top