View Revisions: Issue #6901

Summary 0006901: Init of engine fails to query non-existent sym_parameter table on DB2 for i (AS400)
Revision 2025-05-22 12:44 by pbelov
Steps To Reproduce 1. Provision new database.
2. New installation of SymmetricDS 3.16.2
3. Create new engine file (TEST.properties) and specify database connection details.
4. Run command to create internal tables:
bin/symadmin create-sym-tables --engine TEST
Revision 2025-05-22 13:11 by pbelov
Steps To Reproduce The "new client joining existing replication" scenario:
1. Run an existing SymmetricDS service (registration server).
2. Provision new database on a client.
2. New installation of SymmetricDS 3.16.2 on a client
3. Start the SymmetricDS on a client.
4. Step through the Join Existing replication wizard:
  On the last step UI hangs while displaying "Installing Node..."
   Logs show Exception [SymmetricEngineHolder] [background-refresher-2] Failed to initialize engine


The "symadmin" scenario:
1. Provision new database.
2. New installation of SymmetricDS 3.16.2
3. Create new engine file (TEST.properties) and specify database connection details.
4. Run command to create internal tables:
bin/symadmin create-sym-tables --engine TEST
5. Observe the sqlException at org.jumpmind.symmetric.AbstractSymmetricEngine.init(AbstractSymmetricEngine.java:285)
Revision 2025-05-22 12:44 by pbelov
Description The init() method of AbstractSymmetricEngine fails when SYM_PARAMETER table hod not yet been created.

This crashes installation of a new engine, when joining existing (remote) replication server.

Also, this prevents users of the symadmin utility from creating new SymmetricDS tables on a new database endpoint.
Revision 2025-05-23 19:43 by elong
Description The init() method of AbstractSymmetricEngine fails when SYM_PARAMETER table has not yet been created. The sym_parameter table is found in another library, so it tries to query SYM_PARAMETER and gets an error about the table missing.

Also, this prevents users of the symadmin utility from creating new SymmetricDS tables on a new database endpoint.

The platform gets the default schema by checking which library is assigned to the user. If no library is assigned, then the lookup for SYM_PARAMETER table scans any library for the table. The workaround is to assign a library to the user. The platform should check "CURRENT SCHEMA" if the schema is blank, and warn about missing assignment.