class_docstr: Server-side holder for ``bokeh.application.Application`` plus any associated data.
  This holds data that's global to all sessions, while ``ServerSession`` holds
  data specific to an "instance" of the application.
class_docstr_tok: ["Server-side","holder","for","``","bokeh.application.Application","``","plus","any","associated","data",".","This","holds","data","that","'s","global","to","all","sessions",",","while","``","ServerSession","``","holds","data","specific","to","an","``","instance","''","of","the","application","."]
code: def run_unload_hook(self) -> None:
      try:
          self._application.on_server_unloaded(self.server_context)
      except Exception as e:
          log.error(
              f"Error in server unloaded hook {e!r}", exc_info=True
          )
  
imports: from __future__ import annotations
  import logging
  import weakref
  from typing import TYPE_CHECKING, Any, Awaitable, Callable, Iterable
  from tornado import gen
  from ..application.application import ServerContext, SessionContext
  from ..document import Document
  from ..protocol.exceptions import ProtocolError
  from ..util.token import get_token_payload
  from .session import ServerSession
label_desc: Use image node_id 8 for calling the ApplicationContext obj's underlying member method code with example usage: obj.run_unload_hook() without return types