View Issue Details

IDProjectCategoryView StatusLast Update
0002549SymmetricDSBugpublic2019-05-18 13:06
Reportergilles.riand Assigned To 
Prioritynormal 
Status confirmedResolutionopen 
Product Version3.7.31 
Summary0002549: Interbase Installation "key size too big"
DescriptionHi,

Impossible to install Symmetric-pro-3.7.31 due to a too large Key VARCHAR(512).

With a older version like 3.7.10 ==> "SYM_CHANNEL", Field CHANNEL_ID was only VARCHAR(128) !

Steps To ReproduceInstall SymmetricDS with a INTERBASE DATABASE.
Error on creating "SYM_CHANNEL_" ==> "CHANNEL_ID" VARCHAR(512) is too big for a primarykey.
Additional Information2016-04-06 08:53:49,601 INFO [server] [InterbaseSymmetricDialect] [qtp1164970305-26] Checking if SymmetricDS tables need created or altered
2016-04-06 08:53:50,152 INFO [server] [InterbaseSymmetricDialect] [qtp1164970305-26] There are SymmetricDS tables that needed altered
2016-04-06 08:53:50,157 INFO [server] [InterbaseSymmetricDialect] [qtp1164970305-26] DDL failed: DROP TABLE "SYM_CHANNEL_"
2016-04-06 08:53:50,197 WARN [server] [InterbaseSymmetricDialect] [qtp1164970305-26] DDL failed: CREATE TABLE "SYM_CHANNEL_"(
    "CHANNEL_ID" VARCHAR(512) NOT NULL,
    "PROCESSING_ORDER" INTEGER DEFAULT 1 NOT NULL,
    "MAX_BATCH_SIZE" INTEGER DEFAULT 1000 NOT NULL,
    "MAX_BATCH_TO_SEND" INTEGER DEFAULT 60 NOT NULL,
    "MAX_DATA_TO_ROUTE" INTEGER DEFAULT 100000 NOT NULL,
    "EXTRACT_PERIOD_MILLIS" INTEGER DEFAULT 0 NOT NULL,
    "ENABLED" SMALLINT DEFAULT 1 NOT NULL,
    "USE_OLD_DATA_TO_ROUTE" SMALLINT DEFAULT 1 NOT NULL,
    "USE_ROW_DATA_TO_ROUTE" SMALLINT DEFAULT 1 NOT NULL,
    "USE_PK_DATA_TO_ROUTE" SMALLINT DEFAULT 1 NOT NULL,
    "RELOAD_FLAG" SMALLINT DEFAULT 0 NOT NULL,
    "FILE_SYNC_FLAG" SMALLINT DEFAULT 0 NOT NULL,
    "CONTAINS_BIG_LOB" SMALLINT DEFAULT 0 NOT NULL,
    "BATCH_ALGORITHM" VARCHAR(200) DEFAULT 'default' NOT NULL,
    "DATA_LOADER_TYPE" VARCHAR(200) DEFAULT 'default' NOT NULL,
    "DESCRIPTION" VARCHAR(1020),
    "CREATE_TIME" TIMESTAMP,
    "LAST_UPDATE_BY" VARCHAR(200),
    "LAST_UPDATE_TIME" TIMESTAMP,
    PRIMARY KEY ("CHANNEL_ID")
)
2016-04-06 08:53:50,198 WARN [server] [JdbcSqlTemplate] [qtp1164970305-26] [interclient][interbase]unsuccessful metadata update
[interclient][interbase]key size too big for index RDB$PRIMARY71. Failed to execute: CREATE TABLE "SYM_CHANNEL_"(
    "CHANNEL_ID" VARCHAR(512) NOT NULL,
    "PROCESSING_ORDER" INTEGER DEFAULT 1 NOT NULL,
    "MAX_BATCH_SIZE" INTEGER DEFAULT 1000 NOT NULL,
    "MAX_BATCH_TO_SEND" INTEGER DEFAULT 60 NOT NULL,
    "MAX_DATA_TO_ROUTE" INTEGER DEFAULT 100000 NOT NULL,
    "EXTRACT_PERIOD_MILLIS" INTEGER DEFAULT 0 NOT NULL,
    "ENABLED" SMALLINT DEFAULT 1 NOT NULL,
    "USE_OLD_DATA_TO_ROUTE" SMALLINT DEFAULT 1 NOT NULL,
    "USE_ROW_DATA_TO_ROUTE" SMALLINT DEFAULT 1 NOT NULL,
    "USE_PK_DATA_TO_ROUTE" SMALLINT DEFAULT 1 NOT NULL,
    "RELOAD_FLAG" SMALLINT DEFAULT 0 NOT NULL,
    "FILE_SYNC_FLAG" SMALLINT DEFAULT 0 NOT NULL,
    "CONTAINS_BIG_LOB" SMALLINT DEFAULT 0 NOT NULL,
    "BATCH_ALGORITHM" VARCHAR(200) DEFAULT 'default' NOT NULL,
    "DATA_LOADER_TYPE" VARCHAR(200) DEFAULT 'default' NOT NULL,
    "DESCRIPTION" VARCHAR(1020),
    "CREATE_TIME" TIMESTAMP,
    "LAST_UPDATE_BY" VARCHAR(200),
    "LAST_UPDATE_TIME" TIMESTAMP,
    PRIMARY KEY ("CHANNEL_ID")
)
2016-04-06 08:53:50,199 ERROR [server] [AbstractSymmetricEngine] [qtp1164970305-26] An error occurred while starting SymmetricDS
org.jumpmind.db.sql.SqlException: [interclient][interbase]unsuccessful metadata update
[interclient][interbase]key size too big for index RDB$PRIMARY71
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:288)
    at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:279)
    at org.jumpmind.db.sql.JdbcSqlTemplate.execute(JdbcSqlTemplate.java:442)
    at org.jumpmind.db.sql.JdbcSqlTemplate.update(JdbcSqlTemplate.java:353)
    at org.jumpmind.db.sql.SqlScript.execute(SqlScript.java:107)
    at org.jumpmind.symmetric.db.AbstractSymmetricDialect.createOrAlterTablesIfNecessary(AbstractSymmetricDialect.java:456)
    at org.jumpmind.symmetric.db.AbstractSymmetricDialect.initTablesAndDatabaseObjects(AbstractSymmetricDialect.java:151)
    at org.jumpmind.symmetric.AbstractSymmetricEngine.setupDatabase(AbstractSymmetricEngine.java:405)
    at org.jumpmind.symmetric.AbstractSymmetricEngine.setup(AbstractSymmetricEngine.java:396)
    at org.jumpmind.symmetric.AbstractSymmetricEngine.start(AbstractSymmetricEngine.java:535)
    at org.jumpmind.symmetric.AbstractSymmetricEngine.start(AbstractSymmetricEngine.java:527)
    at org.jumpmind.symmetric.ClientSymmetricEngine.start(ClientSymmetricEngine.java:237)
    at org.jumpmind.symmetric.web.SymmetricEngineHolder.install(SymmetricEngineHolder.java:359)
    at com.jumpmind.symmetric.console.ui.a.b.a.s(AbstractWizardScreen.java:147)
    at com.jumpmind.symmetric.console.ui.a.b.o.q(SummaryScreen.java:22)
    at com.jumpmind.symmetric.console.ui.a.b.k$6.buttonClick(NodeSetupWizard.java:173)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
    at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:979)
    at com.vaadin.ui.Button.fireClick(Button.java:393)
    at com.vaadin.ui.Button$1.click(Button.java:57)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
    at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:287)
    at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:180)
    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:93)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1406)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:305)
    at com.jumpmind.symmetric.console.ui.AppServlet.service(AppServlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:499)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: [interclient][interbase]unsuccessful metadata update
[interclient][interbase]key size too big for index RDB$PRIMARY71
    at interbase.interclient.Statement.remote_EXECUTE_STATEMENT(Unknown Source)
Tagsdialect: interbase, install

Relationships

related to 0002044 acknowledgedchenson Startup failure with MySQL UTF8 database 

Activities

gilles.riand

2016-04-07 11:23

reporter   ~0000775

I think that it's not possible to use SymmetricDS with an interbase DATABASE in UTF8

admin

2016-04-07 12:17

administrator   ~0000776

I think MySQL has the same problem with "key too long" when using UTF-8. (See issue 2044.)

gilles.riand

2016-04-07 12:41

reporter   ~0000777

Hello

I'm in interbase XE Patch 5, My database is in UFT8 and the pagesize = 16384 (it's the max)

Now I progress a little. But I've still errors ....


2016-04-07 14:37:50,841 INFO [server] [InterbaseSymmetricDialect] [qtp170053310-15] DDL applied: CREATE INDEX "SYM_IDX_IB_IN_ERROR" ON "SYM_INCOMING_BATCH" ("ERROR_FLAG")
2016-04-07 14:37:50,851 WARN [server] [InterbaseSymmetricDialect] [qtp170053310-15] DDL failed: CREATE TABLE "SYM_INCOMING_ERROR"(
    "BATCH_ID" NUMERIC(18,0) NOT NULL,
    "NODE_ID" VARCHAR(50) NOT NULL,
    "FAILED_ROW_NUMBER" NUMERIC(18,0) NOT NULL,
    "FAILED_LINE_NUMBER" NUMERIC(18,0) DEFAULT 0 NOT NULL,
    "TARGET_CATALOG_NAME" VARCHAR(255),
    "TARGET_SCHEMA_NAME" VARCHAR(255),
    "TARGET_TABLE_NAME" VARCHAR(255) NOT NULL,
    "EVENT_TYPE" CHAR(1) NOT NULL,
    "BINARY_ENCODING" VARCHAR(10) DEFAULT 'HEX' NOT NULL,
    "COLUMN_NAMES" VARCHAR(4096) NOT NULL,
    "PK_COLUMN_NAMES" VARCHAR(4096) NOT NULL,
    "ROW_DATA" VARCHAR(4096),
    "OLD_DATA" VARCHAR(4096),
    "CUR_DATA" VARCHAR(4096),
    "RESOLVE_DATA" VARCHAR(4096),
    "RESOLVE_IGNORE" SMALLINT DEFAULT 0,
    "CONFLICT_ID" VARCHAR(50),
    "CREATE_TIME" TIMESTAMP,
    "LAST_UPDATE_BY" VARCHAR(50),
    "LAST_UPDATE_TIME" TIMESTAMP NOT NULL,
    PRIMARY KEY ("BATCH_ID", "NODE_ID", "FAILED_ROW_NUMBER")
)
2016-04-07 14:37:50,852 WARN [server] [JdbcSqlTemplate] [qtp170053310-15] interbase.interclient.IBException: [interclient][interbase]unsuccessful metadata update
[interclient][interbase]new record size of 68888 bytes is too big
[interclient][interbase]TABLE SYM_INCOMING_ERROR. Failed to execute: CREATE TABLE "SYM_INCOMING_ERROR"(
    "BATCH_ID" NUMERIC(18,0) NOT NULL,
    "NODE_ID" VARCHAR(50) NOT NULL,
    "FAILED_ROW_NUMBER" NUMERIC(18,0) NOT NULL,
    "FAILED_LINE_NUMBER" NUMERIC(18,0) DEFAULT 0 NOT NULL,
    "TARGET_CATALOG_NAME" VARCHAR(255),
    "TARGET_SCHEMA_NAME" VARCHAR(255),
    "TARGET_TABLE_NAME" VARCHAR(255) NOT NULL,
    "EVENT_TYPE" CHAR(1) NOT NULL,
    "BINARY_ENCODING" VARCHAR(10) DEFAULT 'HEX' NOT NULL,
    "COLUMN_NAMES" VARCHAR(4096) NOT NULL,
    "PK_COLUMN_NAMES" VARCHAR(4096) NOT NULL,
    "ROW_DATA" VARCHAR(4096),
    "OLD_DATA" VARCHAR(4096),
    "CUR_DATA" VARCHAR(4096),
    "RESOLVE_DATA" VARCHAR(4096),
    "RESOLVE_IGNORE" SMALLINT DEFAULT 0,
    "CONFLICT_ID" VARCHAR(50),
    "CREATE_TIME" TIMESTAMP,
    "LAST_UPDATE_BY" VARCHAR(50),
    "LAST_UPDATE_TIME" TIMESTAMP NOT NULL,
    PRIMARY KEY ("BATCH_ID", "NODE_ID", "FAILED_ROW_NUMBER")
)
2016-04-07 14:37:50,854 ERROR [server] [AbstractSymmetricEngine] [qtp170053310-15] An error occurred while starting SymmetricDS
org.jumpmind.db.sql.SqlException: interbase.interclient.IBException: [interclient][interbase]unsuccessful metadata update
[interclient][interbase]new record size of 68888 bytes is too big

admin

2016-04-07 12:46

administrator   ~0000778

I think ultimately, we need to reduce our column sizes for the PK columns to fix this problem.

However, in the meantime, you can work around it by controlling the schema yourself. First, set the parameter auto.config.database=false in your engine properties file. That will prevent it from creating the tables on its own. Then, get the table create script that it would normally run:

./symadmin export-sym-tables > create.sql

Edit the create.sql to adjust the PK columns to a smaller size. Run the script on your database to create the tables. Now you should be able to start SymmetricDS.

Issue History

Date Modified Username Field Change
2016-04-06 07:31 gilles.riand New Issue
2016-04-07 11:23 gilles.riand Note Added: 0000775
2016-04-07 12:17 admin Note Added: 0000776
2016-04-07 12:17 admin Relationship added related to 0002044
2016-04-07 12:41 gilles.riand Note Added: 0000777
2016-04-07 12:46 admin Note Added: 0000778
2019-04-29 12:59 elong Project SymmetricDS Pro => SymmetricDS
2019-04-29 12:59 elong Category Installation => General
2019-04-29 13:00 elong Tag Attached: dialect: interbase
2019-04-29 13:00 elong Tag Attached: install
2019-05-18 13:06 elong Status new => confirmed
2019-05-18 13:06 elong Category General => Bug