Starting and deleting a messaging engine affects the life cycle of its data store. Appropriate actions must be carried out on the data store.
When starting, a messaging engine performs checks on the tables that comprise the data store to determine whether they are suitable. If the tables do not exist, and the user has selected the Create tables option when configuring the messaging engine, the messaging engine attempts to create the tables. Otherwise, your database administrator must create the tables beforehand, using the DDL statements generated by the sibDDLGenerator command.
Make sure that the database that contains the data store is available before starting the messaging engine, or the server that is hosting the messaging engine. If the database is unavailable, the messaging engine cannot connect to the data store, fails to start, and might enter the stopped state. You must restart the application server to start the messaging engine.
The messaging engine tries
to connect for up to 15 minutes by default, before failing to start.
If you want to stop the database that contains the data store, ensure that the messaging engine is stopped first. If the messaging engine is running and has exclusive locks on the data store, stopping the database can cause the messaging engine to be in an inconsistent state, because the messaging engine might continue to run and accept work. The same behavior occurs if the database fails while the messaging engine is running.
You can configure the messaging engine
and its hosting server to shut down and restart when the database
connection is lost, to prevent such inconsistencies. To configure
this behavior, set the sib.msgstore.jdbcFailoverOnDBConnectionLoss
custom property on the messaging engine.
You can also tune your system to decrease the probability of the messaging engine failing to start before the database becomes available.