Hello to all, I'm trying to setup a replication scenario with a server Firebird 2.5 on CentOS 6.5 64bit, the master database will be there and some windows clients will work locally and synchronize with master database.
Log output will be written to ../logs/symmetric.log [startup] - AbstractCommandLauncher - Option: name=engine, value={corp-000} [startup] - AbstractCommandLauncher - Option: name=port, value={8080} [startup] - SymmetricWebServer - About to start SymmetricDS web server on port 8080 [startup] - / - Initializing Spring root WebApplicationContext [corp-000] - FirebirdSymmetricDialect - The DbDialect being used is org.jumpmind.symmetric.db.firebird.FirebirdSymmetricDialect [corp-000] - ExtensionPointManager - Found 7 extension points that will be registered [corp-000] - AbstractSymmetricEngine - Initializing SymmetricDS database [corp-000] - FirebirdSymmetricDialect - Checking if SymmetricDS tables need created or altered [startup] - / - Initializing Spring FrameworkServlet 'rest' [startup] - SymmetricWebServer - Starting JMX HTTP console on port 8081 [startup] - SymmetricWebServer - Joining the web server main thread
HttpAdaptor version 3.0.1 started on port 8081 [corp-000] - AbstractSymmetricEngine - An error occurred while starting SymmetricDS
org.jumpmind.db.sql.SqlException: GDS Exception. 335544343. invalid request BLR at offset 62
function SYM_ESCAPE is not defined
No message for code 335544932 found.
at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:288)
at org.jumpmind.db.platform.firebird.FirebirdJdbcSqlTemplate.translate(FirebirdJdbcSqlTemplate.java:59)
at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:279)
at org.jumpmind.db.sql.JdbcSqlTemplate.execute(JdbcSqlTemplate.java:417)
at org.jumpmind.db.sql.JdbcSqlTemplate.queryForObject(JdbcSqlTemplate.java:136)
at org.jumpmind.db.sql.AbstractSqlTemplate.queryForInt(AbstractSqlTemplate.java:71)
at org.jumpmind.symmetric.db.firebird.FirebirdSymmetricDialect.createRequiredDatabaseObjects(FirebirdSymmetricDialect.java:70)
at org.jumpmind.symmetric.db.AbstractSymmetricDialect.initTablesAndDatabaseObjects(AbstractSymmetricDialect.java:152)
at org.jumpmind.symmetric.AbstractSymmetricEngine.setupDatabase(AbstractSymmetricEngine.java:365)
at org.jumpmind.symmetric.AbstractSymmetricEngine.setup(AbstractSymmetricEngine.java:356)
at org.jumpmind.symmetric.AbstractSymmetricEngine.start(AbstractSymmetricEngine.java:495)
at org.jumpmind.symmetric.AbstractSymmetricEngine.start(AbstractSymmetricEngine.java:487)
at org.jumpmind.symmetric.web.SymmetricEngineHolder$EngineStarter.run(SymmetricEngineHolder.java:428)
Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544343. invalid request BLR at offset 62
function SYM_ESCAPE is not defined
No message for code 335544932 found.
at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:147)
at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:46)
at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:92)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:890)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:845)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:838)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:314)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313)
at org.jumpmind.db.sql.JdbcSqlTemplate$1.execute(JdbcSqlTemplate.java:142)
at org.jumpmind.db.sql.JdbcSqlTemplate.execute(JdbcSqlTemplate.java:415)
... 9 more [corp-000] - AbstractSymmetricEngine - SymmetricDS: type=server, name=corp-000, version=3.5.21, groupId=corp, externalId=000, databaseName=Firebird 2.50LI-V2.5.2.26539 Firebird 2.5/tcp (pip, databaseVersion=2.5, driverName=Jaybird JCA/JDBC driver, driverVersion=2.1
Sounds like the SYM_ESCAPE function is not working, can I avoid using this function and use REPLACE instead?
I've downloaded the source code but I don't know where to change nor how to deploy it after.
Thanks in advance for any help you could provide.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think the sym_udf.so we package is 32-bit, so you would need to recompile it for 64-bit. There is a README.txt in databases/firebird on how to compile it. We really should package the 64-bit version also.
The Firebird code is in symmetric-client project in org.jumpmind.symmetric.db.firebird package in FirebirdSymmetricDialect and FirebirdTriggerTemplate. It looks like it doesn't use the SYM_ESCAPE function, but it does use the SYM_HEX function for encoding BLOBs. It does actually use the REPLACE function instead. I've forgotten the history now, but I think both Firebird and Interbase use the SYM_UDF.so/dll, and the SYM_ESCAPE is still needed for Interbase. Someone entered an issue to support Firebird 1.x, so we would need the function in that case. It wants the external functions installed during startup, so it's going to complain about SYM_HEX anyway. Maybe we should make that a warning on Firbird instead, since you might not even sync a BLOB.
Hello to all, I'm trying to setup a replication scenario with a server Firebird 2.5 on CentOS 6.5 64bit, the master database will be there and some windows clients will work locally and synchronize with master database.
I've setup the master properties:
db.driver=org.firebirdsql.jdbc.FBDriver
db.url=jdbc:firebirdsql:localhost:/var/lib/firebird/data/karampini/paidiatreio.fdb
db.user=sysdba
db.password=masterkey
registration.url=
sync.url=http://localhost:8080/sync/corp-000
group.id=corp
external.id=000
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
and when I tried to start the server:
../bin/sym --engine corp-000 --port 8080
I obtained this:
Log output will be written to ../logs/symmetric.log
[startup] - AbstractCommandLauncher - Option: name=engine, value={corp-000}
[startup] - AbstractCommandLauncher - Option: name=port, value={8080}
[startup] - SymmetricWebServer - About to start SymmetricDS web server on port 8080
[startup] - / - Initializing Spring root WebApplicationContext
[corp-000] - FirebirdSymmetricDialect - The DbDialect being used is org.jumpmind.symmetric.db.firebird.FirebirdSymmetricDialect
[corp-000] - ExtensionPointManager - Found 7 extension points that will be registered
[corp-000] - AbstractSymmetricEngine - Initializing SymmetricDS database
[corp-000] - FirebirdSymmetricDialect - Checking if SymmetricDS tables need created or altered
[startup] - / - Initializing Spring FrameworkServlet 'rest'
[startup] - SymmetricWebServer - Starting JMX HTTP console on port 8081
[startup] - SymmetricWebServer - Joining the web server main thread
HttpAdaptor version 3.0.1 started on port 8081
[corp-000] - AbstractSymmetricEngine - An error occurred while starting SymmetricDS
org.jumpmind.db.sql.SqlException: GDS Exception. 335544343. invalid request BLR at offset 62
function SYM_ESCAPE is not defined
No message for code 335544932 found.
at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:288)
at org.jumpmind.db.platform.firebird.FirebirdJdbcSqlTemplate.translate(FirebirdJdbcSqlTemplate.java:59)
at org.jumpmind.db.sql.AbstractSqlTemplate.translate(AbstractSqlTemplate.java:279)
at org.jumpmind.db.sql.JdbcSqlTemplate.execute(JdbcSqlTemplate.java:417)
at org.jumpmind.db.sql.JdbcSqlTemplate.queryForObject(JdbcSqlTemplate.java:136)
at org.jumpmind.db.sql.AbstractSqlTemplate.queryForInt(AbstractSqlTemplate.java:71)
at org.jumpmind.symmetric.db.firebird.FirebirdSymmetricDialect.createRequiredDatabaseObjects(FirebirdSymmetricDialect.java:70)
at org.jumpmind.symmetric.db.AbstractSymmetricDialect.initTablesAndDatabaseObjects(AbstractSymmetricDialect.java:152)
at org.jumpmind.symmetric.AbstractSymmetricEngine.setupDatabase(AbstractSymmetricEngine.java:365)
at org.jumpmind.symmetric.AbstractSymmetricEngine.setup(AbstractSymmetricEngine.java:356)
at org.jumpmind.symmetric.AbstractSymmetricEngine.start(AbstractSymmetricEngine.java:495)
at org.jumpmind.symmetric.AbstractSymmetricEngine.start(AbstractSymmetricEngine.java:487)
at org.jumpmind.symmetric.web.SymmetricEngineHolder$EngineStarter.run(SymmetricEngineHolder.java:428)
Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544343. invalid request BLR at offset 62
function SYM_ESCAPE is not defined
No message for code 335544932 found.
at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:147)
at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:46)
at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:92)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:890)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:845)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:838)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:314)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313)
at org.jumpmind.db.sql.JdbcSqlTemplate$1.execute(JdbcSqlTemplate.java:142)
at org.jumpmind.db.sql.JdbcSqlTemplate.execute(JdbcSqlTemplate.java:415)
... 9 more
[corp-000] - AbstractSymmetricEngine - SymmetricDS: type=server, name=corp-000, version=3.5.21, groupId=corp, externalId=000, databaseName=Firebird 2.50LI-V2.5.2.26539 Firebird 2.5/tcp (pip, databaseVersion=2.5, driverName=Jaybird JCA/JDBC driver, driverVersion=2.1
Sounds like the SYM_ESCAPE function is not working, can I avoid using this function and use REPLACE instead?
I've downloaded the source code but I don't know where to change nor how to deploy it after.
Thanks in advance for any help you could provide.
I think the sym_udf.so we package is 32-bit, so you would need to recompile it for 64-bit. There is a README.txt in databases/firebird on how to compile it. We really should package the 64-bit version also.
The Firebird code is in symmetric-client project in org.jumpmind.symmetric.db.firebird package in FirebirdSymmetricDialect and FirebirdTriggerTemplate. It looks like it doesn't use the SYM_ESCAPE function, but it does use the SYM_HEX function for encoding BLOBs. It does actually use the REPLACE function instead. I've forgotten the history now, but I think both Firebird and Interbase use the SYM_UDF.so/dll, and the SYM_ESCAPE is still needed for Interbase. Someone entered an issue to support Firebird 1.x, so we would need the function in that case. It wants the external functions installed during startup, so it's going to complain about SYM_HEX anyway. Maybe we should make that a warning on Firbird instead, since you might not even sync a BLOB.
I entered this issue to improve the Firebird dialect: http://www.symmetricds.org/issues/view.php?id=1741