Home Server
New Blog Posts: Merging Reports - Part 1 and Part 2

Problems with server if it encounters a error.

edited February 2004 in Server
Is it normal that when the server encounters an error it completelly stops
working, not even respoiding to demands of other clients ?

2 Cases.

In my server i'm using a Explorer, adjusted with security on the Folder and
Item tables depeding on the user that access the server. It is working fine,
but at a given moment i made a adjustment to the database and made a mistake
on the permissions. When accessing the server it reported an error, what was
normal, but afterwards i granted the priviliges again but the server didn't
take any new connections anymore.

Second case, in one of my reports i'm having troubles with TeeChart's
(another case that is alreay at support), but when this error occurs after
having published the report, not only that report crashes (what would be
'normal') but the server is dead.

Kind Regards

Comments

  • edited February 2004

    There is no way for the RB Server to know which exceptions are truly fatal
    to the server application and which are not. By design, exceptions that
    descend from EReportBuilderError result in the thread being terminated on
    the server and the exception being sent back to the client. Other threads in
    the server continue to operate. Other exceptions are considered fatal. This
    result in the server application haulting. If you are running the server
    within the context of RB Services, then is will be restarted automatically.
    This can take some time, it is not instantaneous.

    ReportBuilder converts many common exceptions to EReportBuilderError (or
    descendant Exception classes of EReportBuilderError). Errors loading
    reports, errors connecting to a database, etc.

    If you have custom server code that is executing, you can do the same. Use a
    try...except to trap exceptions and re-raise them as EReportBuilderError
    descendant classes that you define.



    1. Declare a custom exception class: EmyServerError

    uses
    ppTypes;

    type
    EmyServerError = class(EReportBuilderError);

    implementation

    2. Convert desired exceptions to EmyServerError

    try
    {some code}
    except on E: EStreamError do
    raise EmyServerError.Create(E.Message);

    end;







    --
    Nard Moseley
    Digital Metaphors
    http://www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.